courthive-components 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/team-logos/index.d.ts +9 -0
- package/dist/components/burstChart/burstChart.d.ts +108 -0
- package/dist/components/burstChart/matchUpTransform.d.ts +11 -0
- package/dist/components/burstChart/textHelpers.d.ts +11 -0
- package/dist/components/button/barButton.d.ts +1 -0
- package/dist/components/button/cvaButton.d.ts +8 -0
- package/dist/components/button/dropDownButton.d.ts +5 -0
- package/dist/components/categories/ageCategory/ageCategory.d.ts +54 -0
- package/dist/components/categories/ageCategory/ageCategoryLogic.d.ts +55 -0
- package/dist/components/categories/category/category.d.ts +47 -0
- package/dist/components/composition-editor/compositionEditor.d.ts +6 -0
- package/dist/components/composition-editor/compositionEditorStore.d.ts +24 -0
- package/dist/components/composition-editor/compositionEditorTypes.d.ts +37 -0
- package/dist/components/composition-editor/compositionPreview.d.ts +2 -0
- package/dist/components/composition-editor/scaleConstants.d.ts +7 -0
- package/dist/components/composition-editor/sections/displaySection.d.ts +3 -0
- package/dist/components/composition-editor/sections/fieldBuilders.d.ts +20 -0
- package/dist/components/composition-editor/sections/layoutSection.d.ts +3 -0
- package/dist/components/composition-editor/sections/participantSection.d.ts +3 -0
- package/dist/components/composition-editor/sections/placeholderSection.d.ts +3 -0
- package/dist/components/composition-editor/sections/scaleSection.d.ts +3 -0
- package/dist/components/composition-editor/sections/scoreSection.d.ts +3 -0
- package/dist/components/composition-editor/sections/sectionBuilder.d.ts +8 -0
- package/dist/components/composition-editor/sections/themeSection.d.ts +3 -0
- package/dist/components/composition-editor/styles.d.ts +26 -0
- package/dist/components/controlBar/controlBar.d.ts +11 -0
- package/dist/components/controlBar/toggleOverlay.d.ts +3 -0
- package/dist/components/courts/courts.d.ts +7 -0
- package/dist/components/courts/index.d.ts +1 -0
- package/dist/components/drawer/drawer.d.ts +14 -0
- package/dist/components/flightProfile/flightProfileLogic.d.ts +51 -0
- package/dist/components/flightProfile/flightProfileNew.d.ts +34 -0
- package/dist/components/flightProfile/getFlightProfileFormItems.d.ts +13 -0
- package/dist/components/flightProfile/getFlightProfileFormRelationships.d.ts +1 -0
- package/dist/components/forms/createMultiSelect.d.ts +34 -0
- package/dist/components/forms/renderButtons.d.ts +3 -0
- package/dist/components/forms/renderField.d.ts +7 -0
- package/dist/components/forms/renderForm.d.ts +1 -0
- package/dist/components/forms/renderMenu.d.ts +3 -0
- package/dist/components/forms/renderValidator.d.ts +113 -0
- package/dist/components/forms/styles.d.ts +0 -0
- package/dist/components/generateRound.d.ts +6 -0
- package/dist/components/inline-scoring/engineToMatchUp.d.ts +6 -0
- package/dist/components/inline-scoring/index.d.ts +5 -0
- package/dist/components/inline-scoring/inlineScoringFooter.d.ts +18 -0
- package/dist/components/inline-scoring/inlineScoringManager.d.ts +49 -0
- package/dist/components/inline-scoring/inlineScoringTypes.d.ts +40 -0
- package/dist/components/inline-scoring/renderInlineMatchUp.d.ts +27 -0
- package/dist/components/interactive-scoring/buildInteractiveScoringShell.d.ts +28 -0
- package/dist/components/interactive-scoring/index.d.ts +2 -0
- package/dist/components/interactive-scoring/types.d.ts +60 -0
- package/dist/components/matchUpFormat/matchUpFormat.d.ts +81 -0
- package/dist/components/matchUpFormat/matchUpFormatLogic.d.ts +112 -0
- package/dist/components/modal/cmodal.d.ts +30 -0
- package/dist/components/modal/cmodalStyles.d.ts +8 -0
- package/dist/components/modal/compositionEditorModal.d.ts +46 -0
- package/dist/components/modal/generateTeamsModal.d.ts +26 -0
- package/dist/components/modal/mockParticipants.d.ts +91 -0
- package/dist/components/modal/scheduleCellConfigModal.d.ts +44 -0
- package/dist/components/modal/selectItem.d.ts +24 -0
- package/dist/components/notes-toolbar/notesToolbar.d.ts +20 -0
- package/dist/components/policy-catalog/controller/policyCatalogControl.d.ts +18 -0
- package/dist/components/policy-catalog/domain/catalogProjections.d.ts +11 -0
- package/dist/components/policy-catalog/domain/policyDefaults.d.ts +26 -0
- package/dist/components/policy-catalog/domain/utils.d.ts +4 -0
- package/dist/components/policy-catalog/editors/ranking/domain/emptyRankingPolicy.d.ts +2 -0
- package/dist/components/policy-catalog/editors/ranking/domain/rankingProjections.d.ts +32 -0
- package/dist/components/policy-catalog/editors/ranking/index.d.ts +9 -0
- package/dist/components/policy-catalog/editors/ranking/rankingPointsEditorControl.d.ts +27 -0
- package/dist/components/policy-catalog/editors/ranking/rankingPointsEditorPanel.d.ts +8 -0
- package/dist/components/policy-catalog/editors/ranking/rankingPointsEditorStore.d.ts +53 -0
- package/dist/components/policy-catalog/editors/ranking/sections/aggregationSection.d.ts +6 -0
- package/dist/components/policy-catalog/editors/ranking/sections/bonusPointsRow.d.ts +6 -0
- package/dist/components/policy-catalog/editors/ranking/sections/metadataSection.d.ts +6 -0
- package/dist/components/policy-catalog/editors/ranking/sections/perWinPointsRow.d.ts +6 -0
- package/dist/components/policy-catalog/editors/ranking/sections/positionPointsTable.d.ts +6 -0
- package/dist/components/policy-catalog/editors/ranking/sections/profileCard.d.ts +6 -0
- package/dist/components/policy-catalog/editors/ranking/sections/qualityWinSection.d.ts +6 -0
- package/dist/components/policy-catalog/editors/ranking/sections/scopeBadges.d.ts +2 -0
- package/dist/components/policy-catalog/editors/ranking/sections/scopeEditor.d.ts +6 -0
- package/dist/components/policy-catalog/editors/ranking/styles.d.ts +25 -0
- package/dist/components/policy-catalog/editors/ranking/types.d.ts +146 -0
- package/dist/components/policy-catalog/editors/scheduling/domain/schedulingProjections.d.ts +5 -0
- package/dist/components/policy-catalog/editors/scheduling/domain/schedulingValidation.d.ts +2 -0
- package/dist/components/policy-catalog/editors/scheduling/index.d.ts +11 -0
- package/dist/components/policy-catalog/editors/scheduling/schedulingEditorControl.d.ts +26 -0
- package/dist/components/policy-catalog/editors/scheduling/schedulingEditorPanel.d.ts +6 -0
- package/dist/components/policy-catalog/editors/scheduling/schedulingEditorStore.d.ts +32 -0
- package/dist/components/policy-catalog/editors/scheduling/sections/averageTimesSection.d.ts +6 -0
- package/dist/components/policy-catalog/editors/scheduling/sections/dailyLimitsSection.d.ts +6 -0
- package/dist/components/policy-catalog/editors/scheduling/sections/defaultTimesSection.d.ts +6 -0
- package/dist/components/policy-catalog/editors/scheduling/sections/formatTimeRow.d.ts +22 -0
- package/dist/components/policy-catalog/editors/scheduling/sections/modificationFlagsSection.d.ts +6 -0
- package/dist/components/policy-catalog/editors/scheduling/sections/recoveryTimesSection.d.ts +6 -0
- package/dist/components/policy-catalog/editors/scheduling/styles.d.ts +27 -0
- package/dist/components/policy-catalog/editors/scheduling/types.d.ts +65 -0
- package/dist/components/policy-catalog/engine/policyCatalogStore.d.ts +25 -0
- package/dist/components/policy-catalog/index.d.ts +22 -0
- package/dist/components/policy-catalog/types.d.ts +57 -0
- package/dist/components/policy-catalog/ui/editorShell.d.ts +11 -0
- package/dist/components/policy-catalog/ui/jsonEditor.d.ts +5 -0
- package/dist/components/policy-catalog/ui/policyCatalogLayout.d.ts +6 -0
- package/dist/components/policy-catalog/ui/policyCatalogPanel.d.ts +10 -0
- package/dist/components/policy-catalog/ui/styles.d.ts +28 -0
- package/dist/components/popover/tipster.d.ts +14 -0
- package/dist/components/print-composition-editor/printCompositionEditor.d.ts +2 -0
- package/dist/components/print-composition-editor/printCompositionEditorTypes.d.ts +77 -0
- package/dist/components/renderSchematicStructure/index.d.ts +4 -0
- package/dist/components/renderSchematicStructure/renderSchematicMatchUp.d.ts +26 -0
- package/dist/components/renderSchematicStructure/renderSchematicRound.d.ts +15 -0
- package/dist/components/renderSchematicStructure/renderSchematicStructure.d.ts +12 -0
- package/dist/components/renderStructure/isLuckyDraw.d.ts +9 -0
- package/dist/components/renderStructure/renderAddress.d.ts +5 -0
- package/dist/components/renderStructure/renderCenterInfo.d.ts +10 -0
- package/dist/components/renderStructure/renderContainer.d.ts +4 -0
- package/dist/components/renderStructure/renderFlag.d.ts +6 -0
- package/dist/components/renderStructure/renderFrill.d.ts +10 -0
- package/dist/components/renderStructure/renderGameScore.d.ts +3 -0
- package/dist/components/renderStructure/renderIndividual.d.ts +12 -0
- package/dist/components/renderStructure/renderMatchUp.d.ts +14 -0
- package/dist/components/renderStructure/renderParticipant.d.ts +11 -0
- package/dist/components/renderStructure/renderParticipantDetail.d.ts +7 -0
- package/dist/components/renderStructure/renderParticipantInput.d.ts +10 -0
- package/dist/components/renderStructure/renderPersonAttribute.d.ts +6 -0
- package/dist/components/renderStructure/renderRound.d.ts +17 -0
- package/dist/components/renderStructure/renderRoundHeader.d.ts +8 -0
- package/dist/components/renderStructure/renderScale.d.ts +8 -0
- package/dist/components/renderStructure/renderSchedule.d.ts +5 -0
- package/dist/components/renderStructure/renderSeeding.d.ts +6 -0
- package/dist/components/renderStructure/renderSide.d.ts +9 -0
- package/dist/components/renderStructure/renderSideScore.d.ts +16 -0
- package/dist/components/renderStructure/renderStatusPill.d.ts +3 -0
- package/dist/components/renderStructure/renderStructure.d.ts +13 -0
- package/dist/components/renderStructure/renderTeam.d.ts +5 -0
- package/dist/components/renderStructure/renderTeamLogo.d.ts +4 -0
- package/dist/components/renderStructure/renderTick.d.ts +3 -0
- package/dist/components/schedule-page/controller/schedulePageControl.d.ts +21 -0
- package/dist/components/schedule-page/domain/activeStrip.d.ts +72 -0
- package/dist/components/schedule-page/domain/matchUpCatalogProjections.d.ts +4 -0
- package/dist/components/schedule-page/domain/scheduleIssues.d.ts +2 -0
- package/dist/components/schedule-page/domain/utils.d.ts +5 -0
- package/dist/components/schedule-page/engine/schedulePageStore.d.ts +36 -0
- package/dist/components/schedule-page/index.d.ts +28 -0
- package/dist/components/schedule-page/types.d.ts +221 -0
- package/dist/components/schedule-page/ui/activeStrip.d.ts +46 -0
- package/dist/components/schedule-page/ui/courtGridSlot.d.ts +8 -0
- package/dist/components/schedule-page/ui/dateStrip.d.ts +5 -0
- package/dist/components/schedule-page/ui/inspectorPanel.d.ts +2 -0
- package/dist/components/schedule-page/ui/issuesPanel.d.ts +2 -0
- package/dist/components/schedule-page/ui/matchUpCard.d.ts +5 -0
- package/dist/components/schedule-page/ui/matchUpCatalog.d.ts +11 -0
- package/dist/components/schedule-page/ui/scheduleCellTypeAhead.d.ts +23 -0
- package/dist/components/schedule-page/ui/scheduleGridCell.d.ts +8 -0
- package/dist/components/schedule-page/ui/schedulePageLayout.d.ts +18 -0
- package/dist/components/schedule-page/ui/styles.d.ts +41 -0
- package/dist/components/scheduling-profile/controller/schedulingProfileControl.d.ts +14 -0
- package/dist/components/scheduling-profile/domain/catalogProjections.d.ts +16 -0
- package/dist/components/scheduling-profile/domain/dndApply.d.ts +2 -0
- package/dist/components/scheduling-profile/domain/issueIndex.d.ts +2 -0
- package/dist/components/scheduling-profile/domain/profileProjections.d.ts +6 -0
- package/dist/components/scheduling-profile/domain/utils.d.ts +7 -0
- package/dist/components/scheduling-profile/domain/validateProfile.d.ts +13 -0
- package/dist/components/scheduling-profile/engine/profileStore.d.ts +27 -0
- package/dist/components/scheduling-profile/index.d.ts +25 -0
- package/dist/components/scheduling-profile/types.d.ts +197 -0
- package/dist/components/scheduling-profile/ui/cardPopover.d.ts +11 -0
- package/dist/components/scheduling-profile/ui/dateStrip.d.ts +5 -0
- package/dist/components/scheduling-profile/ui/inspectorPanel.d.ts +2 -0
- package/dist/components/scheduling-profile/ui/issuesPanel.d.ts +5 -0
- package/dist/components/scheduling-profile/ui/roundCard.d.ts +12 -0
- package/dist/components/scheduling-profile/ui/roundCatalog.d.ts +8 -0
- package/dist/components/scheduling-profile/ui/schedulingProfileLayout.d.ts +15 -0
- package/dist/components/scheduling-profile/ui/styles.d.ts +46 -0
- package/dist/components/scheduling-profile/ui/venueBoard.d.ts +7 -0
- package/dist/components/scorecard/index.d.ts +2 -0
- package/dist/components/scorecard/renderScorecard.d.ts +26 -0
- package/dist/components/scoring/approaches/dialPadApproach.d.ts +2 -0
- package/dist/components/scoring/approaches/dialPadLogic.d.ts +12 -0
- package/dist/components/scoring/approaches/dynamicSetsApproach.d.ts +2 -0
- package/dist/components/scoring/approaches/freeScoreApproach.d.ts +2 -0
- package/dist/components/scoring/approaches/inlineScoringApproach.d.ts +2 -0
- package/dist/components/scoring/config.d.ts +28 -0
- package/dist/components/scoring/index.d.ts +6 -0
- package/dist/components/scoring/logic/dynamicSetsLogic.d.ts +124 -0
- package/dist/components/scoring/scoringModal.d.ts +2 -0
- package/dist/components/scoring/types.d.ts +60 -0
- package/dist/components/scoring/utils/scoreFormatters.d.ts +12 -0
- package/dist/components/scoring/utils/scoreValidator.d.ts +16 -0
- package/dist/components/scoring/utils/setExpansionLogic.d.ts +24 -0
- package/dist/components/temporal-grid/controller/temporalGridControl.d.ts +137 -0
- package/dist/components/temporal-grid/controller/viewProjections.d.ts +220 -0
- package/dist/components/temporal-grid/engine/viewState.d.ts +34 -0
- package/dist/components/temporal-grid/index.d.ts +18 -0
- package/dist/components/temporal-grid/timeline/CourtTimeline.d.ts +77 -0
- package/dist/components/temporal-grid/timeline/InteractionManager.d.ts +59 -0
- package/dist/components/temporal-grid/timeline/ItemRenderer.d.ts +35 -0
- package/dist/components/temporal-grid/timeline/RowLayout.d.ts +38 -0
- package/dist/components/temporal-grid/timeline/TimeAxis.d.ts +41 -0
- package/dist/components/temporal-grid/timeline/TimeScale.d.ts +106 -0
- package/dist/components/temporal-grid/timeline/types.d.ts +124 -0
- package/dist/components/temporal-grid/ui/blockPopover.d.ts +29 -0
- package/dist/components/temporal-grid/ui/courtAvailabilityModal.d.ts +29 -0
- package/dist/components/temporal-grid/ui/modernTimePicker.d.ts +46 -0
- package/dist/components/temporal-grid/ui/statsBar.d.ts +21 -0
- package/dist/components/temporal-grid/ui/temporalGrid.d.ts +149 -0
- package/dist/components/temporal-grid/ui/viewToolbar.d.ts +37 -0
- package/dist/components/topology-builder/controller/topologyBuilderControl.d.ts +19 -0
- package/dist/components/topology-builder/domain/feedRounds.d.ts +42 -0
- package/dist/components/topology-builder/domain/generateDrawFromTopology.d.ts +16 -0
- package/dist/components/topology-builder/domain/playoffProfilesCache.d.ts +16 -0
- package/dist/components/topology-builder/domain/previewGenerator.d.ts +9 -0
- package/dist/components/topology-builder/domain/templates.d.ts +2 -0
- package/dist/components/topology-builder/domain/topologyToDrawOptions.d.ts +6 -0
- package/dist/components/topology-builder/domain/topologyValidator.d.ts +8 -0
- package/dist/components/topology-builder/engine/topologyStore.d.ts +30 -0
- package/dist/components/topology-builder/index.d.ts +23 -0
- package/dist/components/topology-builder/types.d.ts +59 -0
- package/dist/components/topology-builder/ui/edgeEditor.d.ts +7 -0
- package/dist/components/topology-builder/ui/nodeEditor.d.ts +9 -0
- package/dist/components/topology-builder/ui/structureCard.d.ts +39 -0
- package/dist/components/topology-builder/ui/toolbar.d.ts +15 -0
- package/dist/components/topology-builder/ui/topologyBuilderLayout.d.ts +7 -0
- package/dist/components/topology-builder/ui/topologyCanvas.d.ts +10 -0
- package/dist/components/validators/numericRange.d.ts +1 -0
- package/dist/components/validators/numericValidator.d.ts +1 -0
- package/dist/compositions/compositions.d.ts +2 -0
- package/dist/compositions/lineHeights.d.ts +5 -0
- package/dist/compositions/resolvePublishedComposition.d.ts +12 -0
- package/dist/constants/matchUpFormats.d.ts +34 -0
- package/dist/courthive-components.css +1 -1
- package/dist/courthive-components.es.js +803 -626
- package/dist/courthive-components.umd.js +4 -4
- package/dist/data/componentConstants.d.ts +1 -0
- package/dist/data/generateEventData.d.ts +15 -0
- package/dist/data/generateMatchUps.d.ts +25 -0
- package/dist/helpers/createTypeAhead.d.ts +14 -0
- package/dist/helpers/drawStateManager.d.ts +91 -0
- package/dist/helpers/getAttr.d.ts +4 -0
- package/dist/helpers/typeOf.d.ts +4 -0
- package/dist/index.d.ts +80 -4006
- package/dist/styles/centerInfoStyle.d.ts +6 -0
- package/dist/styles/containerStyle.d.ts +1 -0
- package/dist/styles/flagStyle.d.ts +3 -0
- package/dist/styles/getChevronStyle.d.ts +4 -0
- package/dist/styles/getLinkStyle.d.ts +25 -0
- package/dist/styles/getMatchUpStyle.d.ts +4 -0
- package/dist/styles/getSelectedMatchUpStyle.d.ts +1 -0
- package/dist/styles/groupNameStyle.d.ts +1 -0
- package/dist/styles/groupSeparatorStyle.d.ts +4 -0
- package/dist/styles/matchUpContainerStyle.d.ts +1 -0
- package/dist/styles/participantDetailStyle.d.ts +1 -0
- package/dist/styles/participantStyle.d.ts +17 -0
- package/dist/styles/pillStyle.d.ts +3 -0
- package/dist/styles/resultStyles.d.ts +4 -0
- package/dist/styles/roundContainerStyle.d.ts +1 -0
- package/dist/styles/roundHeaderStyle.d.ts +1 -0
- package/dist/styles/roundStyle.d.ts +3 -0
- package/dist/styles/scaleStyle.d.ts +3 -0
- package/dist/styles/schedulingStyle.d.ts +1 -0
- package/dist/styles/scoreStyles.d.ts +9 -0
- package/dist/styles/scoreWrapperStyle.d.ts +4 -0
- package/dist/styles/seedStyle.d.ts +1 -0
- package/dist/styles/sideStyles.d.ts +3 -0
- package/dist/styles/structureStyle.d.ts +1 -0
- package/dist/styles/teamLogoStyle.d.ts +1 -0
- package/dist/styles/themes/australianTheme.d.ts +1 -0
- package/dist/styles/themes/basicCardTheme.d.ts +1 -0
- package/dist/styles/themes/basicTheme.d.ts +1 -0
- package/dist/styles/themes/createTheme.d.ts +5 -0
- package/dist/styles/themes/frenchTheme.d.ts +1 -0
- package/dist/styles/themes/index.d.ts +7 -0
- package/dist/styles/themes/itfTheme.d.ts +1 -0
- package/dist/styles/themes/usOpenTheme.d.ts +1 -0
- package/dist/styles/themes/wimbledonTheme.d.ts +1 -0
- package/dist/tools/freeScore/freeScore.d.ts +79 -0
- package/dist/types.d.ts +321 -0
- package/dist/utilities/isElement.d.ts +1 -0
- package/dist/validators/dateValidator.d.ts +1 -0
- package/dist/validators/emailValidator.d.ts +1 -0
- package/dist/validators/index.d.ts +7 -0
- package/dist/validators/nameValidator.d.ts +1 -0
- package/dist/validators/numericRange.d.ts +1 -0
- package/dist/validators/numericValidator.d.ts +1 -0
- package/dist/validators/passwordValidator.d.ts +1 -0
- package/dist/validators/wordValidator.d.ts +1 -0
- package/dist/version.d.ts +1 -0
- package/package.json +5 -5
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`tods-competition-factory`)):typeof define==`function`&&define.amd?define([`exports`,`tods-competition-factory`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e[`courthive-components`]={},e.competitionFactory))})(this,function(e,t){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var n=Object.create,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,c=(e,t)=>()=>(e&&(t=e(e=0)),t),l=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),u=(e,t)=>{let n={};for(var i in e)r(n,i,{get:e[i],enumerable:!0});return t||r(n,Symbol.toStringTag,{value:`Module`}),n},d=(e,t,n,o)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var c=a(t),l=0,u=c.length,d;l<u;l++)d=c[l],!s.call(e,d)&&d!==n&&r(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(o=i(t,d))||o.enumerable});return e},f=(e,t,i)=>(i=e==null?{}:n(o(e)),d(t||!e||!e.__esModule?r(i,`default`,{value:e,enumerable:!0}):i,e)),p=f(l(((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 m({variant:e}){return(0,p.default)(`chc-placeholder`,e===`showAddress`&&`chc-placeholder--show-address`)}var h=e=>`chc-participant`,g=e=>(0,p.default)(`chc-participant-name`,e?.variant&&`chc-participant-name--${e.variant}`),_=e=>(0,p.default)(`chc-participant-type`,e?.variant&&`chc-participant-type--${e.variant}`);function v({drawPosition:e,sideNumber:t}){
|
|
1
|
+
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`tods-competition-factory`)):typeof define==`function`&&define.amd?define([`exports`,`tods-competition-factory`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e[`courthive-components`]={},e.competitionFactory))})(this,function(e,t){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var n=Object.create,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,c=(e,t)=>()=>(e&&(t=e(e=0)),t),l=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),u=(e,t)=>{let n={};for(var i in e)r(n,i,{get:e[i],enumerable:!0});return t||r(n,Symbol.toStringTag,{value:`Module`}),n},d=(e,t,n,o)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var c=a(t),l=0,u=c.length,d;l<u;l++)d=c[l],!s.call(e,d)&&d!==n&&r(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(o=i(t,d))||o.enumerable});return e},f=(e,t,i)=>(i=e==null?{}:n(o(e)),d(t||!e||!e.__esModule?r(i,`default`,{value:e,enumerable:!0}):i,e)),p=f(l(((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 m({variant:e}){return(0,p.default)(`chc-placeholder`,e===`showAddress`&&`chc-placeholder--show-address`)}var h=e=>`chc-participant`,g=e=>(0,p.default)(`chc-participant-name`,e?.variant&&`chc-participant-name--${e.variant}`),_=e=>(0,p.default)(`chc-participant-type`,e?.variant&&`chc-participant-type--${e.variant}`);function v({drawPosition:e,sideNumber:t}){return(0,p.default)(`chc-participant-container`,t===1&&`chc-participant-container--side1`)}function y({winnerChevron:e,isDoubles:t}){return e?t?`chc-chevron-doubles--winner`:`chc-chevron--winner`:``}var b=()=>`chc-participant-detail`;function x({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,p.default)(b(),t),o.innerHTML=a,o}var S=()=>`chc-backdrop`,C=()=>`chc-modal`,w=()=>`chc-body-freeze`,T=()=>`chc-modal-container`,E=()=>`chc-modal-dialog`,D=()=>`chc-modal-header`,O=()=>`chc-modal-title`,k=()=>`chc-modal-footer`,A=`Nothing to see here`;function j(e){return typeof e==`function`}function M(e){return typeof e==`string`}function N(e){return Array.isArray(e)}function P(e){if(e)for(;e.firstChild;)e.firstChild.remove()}var F=(()=>{let e=w(),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();j(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=S(),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 M(t)?a=I({element:e,attr:t}):N(n)&&(a=n.map(t=>I({element:e,attr:t})).find(Boolean)),a!==void 0&&(i=a),Number.isNaN(i)?i:`${i}${r}`},p=({buttons:e,config:t,modalNumber:r})=>{let i=document.createElement(`div`);i.className=k(),i.style.padding=f({config:t,attrs:[`footer.padding`,`padding`],value:`.5`});let a={label:t?.dictionary?.close||`Close`,onClick:()=>F.close(),intent:`is-info`};for(let t of e){if(t.hide)continue;let e={...a,...t},o=document.createElement(`button`);e.disabled!==void 0&&(o.disabled=e.disabled),e.id&&(o.id=e.id),o.className=e?.footer?.className||`button font-medium`,e.intent&&e.intent!==`none`&&o.classList.add(e.intent);let s=e?.footer?.style||``;o.style.cssText=`margin-right: .5em;`+(s?` `+s:``),o.innerHTML=e.label||e.text||``,o.onclick=t=>{t.stopPropagation(),j(e.onClick)&&e.onClick({e:t,content:n[r]}),e.close!==!1&&(j(e.close)&&e.close(),F.close())},i.appendChild(o)}return i};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=C(),h.role=`dialog`,h.tabIndex=-1,h.id=g;let _=document.createElement(`div`);_.className=T(),_.style.maxWidth=`${c?.maxWidth||450}px`,_.onclick=()=>l(!0);let v=document.createElement(`div`);v.className=E(),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,w;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;
|
|
@@ -211,11 +211,11 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
211
211
|
`,`Instead, pass the .innerHTML of the element, or use a function that`,`returns a cloned version of the element instead.`,`
|
|
212
212
|
|
|
213
213
|
`,`1) content: element.innerHTML
|
|
214
|
-
`,`2) content: () => element.cloneNode(true)`].join(` `))}var s=i.reduce(function(e,t){var n=t&&mm(t,r);return n&&e.push(n),e},[]);return wp(e)?s[0]:s}hm.defaultProps=Qp,hm.setDefaultProps=em,hm.currentInput=Fp,Object.assign({},Od,{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)}}),hm.setDefaultProps({render:um});var gm=`#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(`.`),_m=`notes-toolbar-recent-colors`,vm=8;function ym(){try{return JSON.parse(localStorage.getItem(_m)||`[]`)}catch{return[]}}function bm(e){let t=ym().filter(t=>t!==e);t.unshift(e),t.length>vm&&(t=t.slice(0,vm)),localStorage.setItem(_m,JSON.stringify(t))}function xm(e={}){let t=document.createElement(`div`);return t.className=`notes-toolbar`,t.appendChild(Em(e)),t.appendChild(Dm(e)),t.appendChild(Om(e)),t.appendChild(Mm(e)),t.appendChild(Fm(e)),t.appendChild(Im(e)),t.appendChild(Rm(e)),t}function Sm(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 Cm(e,t){let n=e.querySelector(`[data-action="heading"]`);n&&(n.value=t===!1?`0`:String(t))}function wm(){let e=document.createElement(`div`);return e.className=`notes-toolbar-group`,e}function Tm(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 Em(e){let t=wm(),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 Dm(e){let t=wm();return t.appendChild(Tm(`bold`,`<b>B</b>`,`Bold`,e.onBold)),t.appendChild(Tm(`italic`,`<i>I</i>`,`Italic`,e.onItalic)),t.appendChild(Tm(`underline`,`<u>U</u>`,`Underline`,e.onUnderline)),t.appendChild(Tm(`strike`,`<s>S</s>`,`Strikethrough`,e.onStrike)),t}function Om(e){let t=wm();return t.appendChild(km(`color`,`A`,`Text color`,`#000000`,t=>{bm(t),e.onColor?.(t)})),t.appendChild(km(`background`,`A`,`Background color`,`#ffff00`,t=>{bm(t),e.onBackground?.(t)})),t}function km(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=hm(a,{content:Am(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 Am(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 gm)r.appendChild(jm(n,n===e,t));n.appendChild(r);let i=ym();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(jm(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 jm(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 Mm(e){let t=wm();return t.appendChild(Tm(`orderedList`,Nm(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(Tm(`bulletList`,Nm(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 Nm(e,t,n){return`<svg width="${e}" height="${t}" viewBox="0 0 ${e} ${t}" xmlns="http://www.w3.org/2000/svg">${n}</svg>`}var Pm={alignLeft:Nm(16,16,`<path d="M1 2h14v2H1zm0 4h9v2H1zm0 4h14v2H1zm0 4h9v2H1z" fill="currentColor"/>`),alignCenter:Nm(16,16,`<path d="M1 2h14v2H1zm3.5 4h7v2h-7zM1 10h14v2H1zm3.5 4h7v2h-7z" fill="currentColor"/>`),alignRight:Nm(16,16,`<path d="M1 2h14v2H1zm6 4h8v2H7zM1 10h14v2H1zm6 4h8v2H7z" fill="currentColor"/>`),alignJustify:Nm(16,16,`<path d="M1 2h14v2H1zm0 4h14v2H1zm0 4h14v2H1zm0 4h14v2H1z" fill="currentColor"/>`)};function Fm(e){let t=wm();return t.appendChild(Tm(`alignLeft`,Pm.alignLeft,`Align left`,()=>e.onAlign?.(`left`))),t.appendChild(Tm(`alignCenter`,Pm.alignCenter,`Align center`,()=>e.onAlign?.(`center`))),t.appendChild(Tm(`alignRight`,Pm.alignRight,`Align right`,()=>e.onAlign?.(`right`))),t.appendChild(Tm(`alignJustify`,Pm.alignJustify,`Justify`,()=>e.onAlign?.(`justify`))),t}function Im(e){let t=wm();t.appendChild(Tm(`blockquote`,`“`,`Blockquote`,e.onBlockquote)),t.appendChild(Tm(`codeBlock`,`</>`,`Code block`,e.onCodeBlock));let n=Tm(`link`,`⇗`,`Insert link`);Lm(n,`Enter URL`,`https://`,t=>e.onLink?.(t)),t.appendChild(n);let r=Tm(`video`,`▷`,`Insert video`);return Lm(r,`YouTube URL`,`https://youtube.com/...`,t=>e.onVideo?.(t)),t.appendChild(r),t}function Lm(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=hm(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 Rm(e){let t=wm();return t.appendChild(Tm(`clearFormatting`,`⊘`,`Clear formatting`,e.onClearFormatting)),t}function zm(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}=un(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 Bm(e){return typeof e==`function`}var Vm;function Hm(e){Vm&&=(Vm?.destroy(!0),void 0),e?.remove&&e.remove()}function Um(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;Hm();let l=document.createElement(`div`),u;return s||=i?.evt?.target,s&&(Vm=hm(s,{content:()=>(c=c?.filter(e=>!e.hide&&!e.disabled).map(e=>({...e,onClick:()=>{Hm(l),Bm(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?Vm.setContent(`IMPLEMENT SUB MENU`):Bm(e.onClick)?(Hm(l),e.onClick()):Bm(a)&&a&&(Hm(l),a(typeof e==`object`?{...e,coords:i}:e))}})),u=zm(l,[{text:t,items:c},...r]).focusElement,l),theme:`light-border`,trigger:`click`,onShown:()=>{u&&setTimeout(()=>u?.focus(),0)},...o}),Vm.show(),Vm.setProps({interactive:!0})),Vm}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 Wm(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 Gm(e){let t=Wm(`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 Km(e){let t=Wm(`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 qm(e){let t=Wm(`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 Jm(e){let t=Wm(`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 Ym(e){let t=Wm(`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 Xm(e){let t=Wm(`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 Zm(e){let t=Wm(`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 Qm={name:`courthive-components`,version:`1.1.0`,engines:{node:`>=22`},description:`Components for competitions projects`,files:[`dist`],main:`./dist/courthive-components.umd.js`,module:`./dist/courthive-components.es.js`,types:`./dist/index.d.ts`,exports:{".":{types:`./dist/index.d.ts`,import:`./dist/courthive-components.es.js`,require:`./dist/courthive-components.umd.js`},"./dist/*":`./dist/*`},repository:{type:`git`,url:`git+https://github.com/CourtHive/courthive-components.git`},keywords:[`tournament`,`match`,`score`,`vanillajs`,`bracket`],author:`Charles Allen`,license:`MIT`,bugs:{url:`https://github.com/CourtHive/courthive-components/issues`},homepage:`https://courthive.github.io/courthive-component`,scripts:{commits:`git log $(git describe --tags --abbrev=0)..HEAD --oneline --no-merges --pretty=format:'%s: %h' | sed '/courthive-components/d'`,release:`npm run release:patch`,test:`vitest run`,"test:watch":`vitest`,"test:ui":`vitest --ui`,dev:`vite`,build:`vite build`,prepublishOnly:`npm run build`,preview:`vite preview`,storybook:`storybook dev -p 6006`,"build-storybook":`storybook build`,"deploy-storybook":`gh-pages -d storybook-static`,"pre-commit":`lint-staged`,predeploy:`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":`20.5.2`,"@commitlint/config-conventional":`20.5.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.59.1`,"@typescript-eslint/parser":`8.59.1`,"@vitest/browser-playwright":`^4.0.16`,"@vitest/coverage-v8":`^4.0.16`,eslint:`10.2.1`,"eslint-plugin-sonarjs":`4.0.3`,"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":`16.4.0`,playwright:`^1.57.0`,prettier:`^3.8.1`,semver:`7.7.4`,storybook:`^10.2.17`,"tabulator-tables":`6.4.0`,typescript:`^6.0.2`,vite:`8.0.10`,"vite-plugin-dts":`^4.5.4`,vitest:`^4.0.16`},dependencies:{awesomplete:`1.1.7`,"class-variance-authority":`0.7.1`,classnames:`2.5.1`,d3:`^7.9.0`,dayjs:`1.11.20`,"focus-trap":`^8.0.0`,"timepicker-ui":`^4.1.2`,"tippy.js":`6.3.7`,"tods-competition-factory":`^3.1.3`,"vanillajs-datepicker":`1.3.4`}};function $m(){return Qm.version}var eh={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 th(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&&z(i.onClick)&&i.onClick(),n&&z(n)&&n()},e.appendChild(t)}return{elements:r}}var nh=(e,t)=>n=>n?.trim().length>=e&&(!t||n?.trim().length<=t);function rh(e){return t.tools.isConvertableInteger(e)&&parseInt(e.toString())>=0}var ih=(e,t)=>n=>rh(n)&&Number(n)>=e&&Number(n)<=t,ah=e=>/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?\d)(?=.*?[#?!@$%^&*-]).{8,12}$/.test(e);function oh(e){return t.tools.dateTime.dateValidation.test(e)}var sh=(e,t)=>n=>{let r=(n||``).trim().split(` `).length;return r>=e&&(!t||r<=t)},ch=/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i,lh=e=>ch.exec(e),uh=u({dateValidator:()=>oh,emailValidator:()=>lh,nameValidator:()=>nh,numericRange:()=>ih,numericValidator:()=>rh,passwordValidator:()=>ah,wordValidator:()=>sh}),dh=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}}};function fh(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function ph(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function mh(e){let t,n,r;e.length===2?(t=e===fh||e===ph?e:hh,n=e,r=e):(t=fh,n=(t,n)=>fh(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 hh(){return 0}function gh(e){return e===null?NaN:+e}var _h=mh(fh),vh=_h.right;_h.left,mh(gh).center;var yh=Math.sqrt(50),bh=Math.sqrt(10),xh=Math.sqrt(2);function Sh(e,t,n){let r=(t-e)/Math.max(0,n),i=Math.floor(Math.log10(r)),a=r/10**i,o=a>=yh?10:a>=bh?5:a>=xh?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?Sh(e,t,n*2):[s,c,l]}function Ch(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?Sh(t,e,n):Sh(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 wh(e,t,n){return t=+t,e=+e,n=+n,Sh(e,t,n)[2]}function Th(e,t,n){t=+t,e=+e,n=+n;let r=t<e,i=r?wh(t,e,n):wh(e,t,n);return(r?-1:1)*(i<0?1/-i:i)}function Eh(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}var Dh={value:()=>{}};function Oh(){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 kh(n)}function kh(e){this._=e}function Ah(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}})}kh.prototype=Oh.prototype={constructor:kh,on:function(e,t){var n=this._,r=Ah(e+``,n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a<o;)if((i=(e=r[a]).type)&&(i=jh(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]=Mh(n[i],e.name,t);else if(t==null)for(i in n)n[i]=Mh(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 kh(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 jh(e,t){for(var n=0,r=e.length,i;n<r;++n)if((i=e[n]).name===t)return i.value}function Mh(e,t,n){for(var r=0,i=e.length;r<i;++r)if(e[r].name===t){e[r]=Dh,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var Nh={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 Ph(e){var t=e+=``,n=t.indexOf(`:`);return n>=0&&(t=e.slice(0,n))!==`xmlns`&&(e=e.slice(n+1)),Nh.hasOwnProperty(t)?{space:Nh[t],local:e}:e}function Fh(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 Ih(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Lh(e){var t=Ph(e);return(t.local?Ih:Fh)(t)}function Rh(){}function zh(e){return e==null?Rh:function(){return this.querySelector(e)}}function Bh(e){typeof e!=`function`&&(e=zh(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 O_(r,this._parents)}function Vh(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function Hh(){return[]}function Uh(e){return e==null?Hh:function(){return this.querySelectorAll(e)}}function Wh(e){return function(){return Vh(e.apply(this,arguments))}}function Gh(e){e=typeof e==`function`?Wh(e):Uh(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 O_(r,i)}function Kh(e){return function(){return this.matches(e)}}function qh(e){return function(t){return t.matches(e)}}var Jh=Array.prototype.find;function Yh(e){return function(){return Jh.call(this.children,e)}}function Xh(){return this.firstElementChild}function Zh(e){return this.select(e==null?Xh:Yh(typeof e==`function`?e:qh(e)))}var Qh=Array.prototype.filter;function $h(){return Array.from(this.children)}function eg(e){return function(){return Qh.call(this.children,e)}}function tg(e){return this.selectAll(e==null?$h:eg(typeof e==`function`?e:qh(e)))}function ng(e){typeof e!=`function`&&(e=Kh(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 O_(r,this._parents)}function rg(e){return Array(e.length)}function ig(){return new O_(this._enter||this._groups.map(rg),this._parents)}function ag(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}ag.prototype={constructor:ag,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 og(e){return function(){return e}}function sg(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 ag(e,a[o]);for(;o<c;++o)(s=t[o])&&(i[o]=s)}function cg(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 ag(e,a[s]);for(s=0;s<u;++s)(c=t[s])&&l.get(f[s])===c&&(i[s]=c)}function lg(e){return e.__data__}function ug(e,t){if(!arguments.length)return Array.from(this,lg);var n=t?cg:sg,r=this._parents,i=this._groups;typeof e!=`function`&&(e=og(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=dg(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 O_(o,r),o._enter=s,o._exit=c,o}function dg(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function fg(){return new O_(this._exit||this._groups.map(rg),this._parents)}function pg(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 mg(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 O_(s,this._parents)}function hg(){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 gg(e){e||=_g;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 O_(i,this._parents).order()}function _g(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function vg(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function yg(){return Array.from(this)}function bg(){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 xg(){let e=0;for(let t of this)++e;return e}function Sg(){return!this.node()}function Cg(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 wg(e){return function(){this.removeAttribute(e)}}function Tg(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Eg(e,t){return function(){this.setAttribute(e,t)}}function Dg(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function Og(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function kg(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 Ag(e,t){var n=Ph(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?Tg:wg:typeof t==`function`?n.local?kg:Og:n.local?Dg:Eg)(n,t))}function jg(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function Mg(e){return function(){this.style.removeProperty(e)}}function Ng(e,t,n){return function(){this.style.setProperty(e,t,n)}}function Pg(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function Fg(e,t,n){return arguments.length>1?this.each((t==null?Mg:typeof t==`function`?Pg:Ng)(e,t,n??``)):Ig(this.node(),e)}function Ig(e,t){return e.style.getPropertyValue(t)||jg(e).getComputedStyle(e,null).getPropertyValue(t)}function Lg(e){return function(){delete this[e]}}function Rg(e,t){return function(){this[e]=t}}function zg(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function Bg(e,t){return arguments.length>1?this.each((t==null?Lg:typeof t==`function`?zg:Rg)(e,t)):this.node()[e]}function Vg(e){return e.trim().split(/^|\s+/)}function Hg(e){return e.classList||new Ug(e)}function Ug(e){this._node=e,this._names=Vg(e.getAttribute(`class`)||``)}Ug.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 Wg(e,t){for(var n=Hg(e),r=-1,i=t.length;++r<i;)n.add(t[r])}function Gg(e,t){for(var n=Hg(e),r=-1,i=t.length;++r<i;)n.remove(t[r])}function Kg(e){return function(){Wg(this,e)}}function qg(e){return function(){Gg(this,e)}}function Jg(e,t){return function(){(t.apply(this,arguments)?Wg:Gg)(this,e)}}function Yg(e,t){var n=Vg(e+``);if(arguments.length<2){for(var r=Hg(this.node()),i=-1,a=n.length;++i<a;)if(!r.contains(n[i]))return!1;return!0}return this.each((typeof t==`function`?Jg:t?Kg:qg)(n,t))}function Xg(){this.textContent=``}function Zg(e){return function(){this.textContent=e}}function Qg(e){return function(){var t=e.apply(this,arguments);this.textContent=t??``}}function $g(e){return arguments.length?this.each(e==null?Xg:(typeof e==`function`?Qg:Zg)(e)):this.node().textContent}function e_(){this.innerHTML=``}function t_(e){return function(){this.innerHTML=e}}function n_(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??``}}function r_(e){return arguments.length?this.each(e==null?e_:(typeof e==`function`?n_:t_)(e)):this.node().innerHTML}function i_(){this.nextSibling&&this.parentNode.appendChild(this)}function a_(){return this.each(i_)}function o_(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function s_(){return this.each(o_)}function c_(e){var t=typeof e==`function`?e:Lh(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function l_(){return null}function u_(e,t){var n=typeof e==`function`?e:Lh(e),r=t==null?l_:typeof t==`function`?t:zh(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function d_(){var e=this.parentNode;e&&e.removeChild(this)}function f_(){return this.each(d_)}function p_(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function m_(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function h_(e){return this.select(e?m_:p_)}function g_(e){return arguments.length?this.property(`__data__`,e):this.node().__data__}function __(e){return function(t){e.call(this,t,this.__data__)}}function v_(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 y_(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 b_(e,t,n){return function(){var r=this.__on,i,a=__(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 x_(e,t,n){var r=v_(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?b_:y_,i=0;i<a;++i)this.each(s(r[i],t,n));return this}function S_(e,t,n){var r=jg(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 C_(e,t){return function(){return S_(this,e,t)}}function w_(e,t){return function(){return S_(this,e,t.apply(this,arguments))}}function T_(e,t){return this.each((typeof t==`function`?w_:C_)(e,t))}function*E_(){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 D_=[null];function O_(e,t){this._groups=e,this._parents=t}function k_(){return new O_([[document.documentElement]],D_)}function A_(){return this}O_.prototype=k_.prototype={constructor:O_,select:Bh,selectAll:Gh,selectChild:Zh,selectChildren:tg,filter:ng,data:ug,enter:ig,exit:fg,join:pg,merge:mg,selection:A_,order:hg,sort:gg,call:vg,nodes:yg,node:bg,size:xg,empty:Sg,each:Cg,attr:Ag,style:Fg,property:Bg,classed:Yg,text:$g,html:r_,raise:a_,lower:s_,append:c_,insert:u_,remove:f_,clone:h_,datum:g_,on:x_,dispatch:T_,[Symbol.iterator]:E_};function j_(e){return typeof e==`string`?new O_([[document.querySelector(e)]],[document.documentElement]):new O_([[e]],D_)}function M_(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function N_(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function P_(){}var F_=.7,I_=1/F_,L_=`\\s*([+-]?\\d+)\\s*`,R_=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*`,z_=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*`,B_=/^#([0-9a-f]{3,8})$/,V_=RegExp(`^rgb\\(${L_},${L_},${L_}\\)$`),H_=RegExp(`^rgb\\(${z_},${z_},${z_}\\)$`),U_=RegExp(`^rgba\\(${L_},${L_},${L_},${R_}\\)$`),W_=RegExp(`^rgba\\(${z_},${z_},${z_},${R_}\\)$`),G_=RegExp(`^hsl\\(${R_},${z_},${z_}\\)$`),K_=RegExp(`^hsla\\(${R_},${z_},${z_},${R_}\\)$`),q_={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};M_(P_,Q_,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:J_,formatHex:J_,formatHex8:Y_,formatHsl:X_,formatRgb:Z_,toString:Z_});function J_(){return this.rgb().formatHex()}function Y_(){return this.rgb().formatHex8()}function X_(){return dv(this).formatHsl()}function Z_(){return this.rgb().formatRgb()}function Q_(e){var t,n;return e=(e+``).trim().toLowerCase(),(t=B_.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?$_(t):n===3?new rv(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?ev(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?ev(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=V_.exec(e))?new rv(t[1],t[2],t[3],1):(t=H_.exec(e))?new rv(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=U_.exec(e))?ev(t[1],t[2],t[3],t[4]):(t=W_.exec(e))?ev(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=G_.exec(e))?uv(t[1],t[2]/100,t[3]/100,1):(t=K_.exec(e))?uv(t[1],t[2]/100,t[3]/100,t[4]):q_.hasOwnProperty(e)?$_(q_[e]):e===`transparent`?new rv(NaN,NaN,NaN,0):null}function $_(e){return new rv(e>>16&255,e>>8&255,e&255,1)}function ev(e,t,n,r){return r<=0&&(e=t=n=NaN),new rv(e,t,n,r)}function tv(e){return e instanceof P_||(e=Q_(e)),e?(e=e.rgb(),new rv(e.r,e.g,e.b,e.opacity)):new rv}function nv(e,t,n,r){return arguments.length===1?tv(e):new rv(e,t,n,r??1)}function rv(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}M_(rv,nv,N_(P_,{brighter(e){return e=e==null?I_:I_**+e,new rv(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?F_:F_**+e,new rv(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new rv(cv(this.r),cv(this.g),cv(this.b),sv(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:iv,formatHex:iv,formatHex8:av,formatRgb:ov,toString:ov}));function iv(){return`#${lv(this.r)}${lv(this.g)}${lv(this.b)}`}function av(){return`#${lv(this.r)}${lv(this.g)}${lv(this.b)}${lv((isNaN(this.opacity)?1:this.opacity)*255)}`}function ov(){let e=sv(this.opacity);return`${e===1?`rgb(`:`rgba(`}${cv(this.r)}, ${cv(this.g)}, ${cv(this.b)}${e===1?`)`:`, ${e})`}`}function sv(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function cv(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function lv(e){return e=cv(e),(e<16?`0`:``)+e.toString(16)}function uv(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new pv(e,t,n,r)}function dv(e){if(e instanceof pv)return new pv(e.h,e.s,e.l,e.opacity);if(e instanceof P_||(e=Q_(e)),!e)return new pv;if(e instanceof pv)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 pv(o,s,c,e.opacity)}function fv(e,t,n,r){return arguments.length===1?dv(e):new pv(e,t,n,r??1)}function pv(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}M_(pv,fv,N_(P_,{brighter(e){return e=e==null?I_:I_**+e,new pv(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?F_:F_**+e,new pv(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 rv(gv(e>=240?e-240:e+120,i,r),gv(e,i,r),gv(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new pv(mv(this.h),hv(this.s),hv(this.l),sv(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=sv(this.opacity);return`${e===1?`hsl(`:`hsla(`}${mv(this.h)}, ${hv(this.s)*100}%, ${hv(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function mv(e){return e=(e||0)%360,e<0?e+360:e}function hv(e){return Math.max(0,Math.min(1,e||0))}function gv(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 _v=e=>()=>e;function vv(e,t){return function(n){return e+n*t}}function yv(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function bv(e){return(e=+e)==1?xv:function(t,n){return n-t?yv(t,n,e):_v(isNaN(t)?n:t)}}function xv(e,t){var n=t-e;return n?vv(e,n):_v(isNaN(e)?t:e)}var Sv=(function e(t){var n=bv(t);function r(e,t){var r=n((e=nv(e)).r,(t=nv(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=xv(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 Cv(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 wv(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Tv(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]=Pv(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 Ev(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function Dv(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function Ov(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]=Pv(e[i],t[i]):r[i]=t[i];return function(e){for(i in n)r[i]=n[i](e);return r}}var kv=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Av=new RegExp(kv.source,`g`);function jv(e){return function(){return e}}function Mv(e){return function(t){return e(t)+``}}function Nv(e,t){var n=kv.lastIndex=Av.lastIndex=0,r,i,a,o=-1,s=[],c=[];for(e+=``,t+=``;(r=kv.exec(e))&&(i=Av.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:Dv(r,i)})),n=Av.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?c[0]?Mv(c[0].x):jv(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 Pv(e,t){var n=typeof t,r;return t==null||n===`boolean`?_v(t):(n===`number`?Dv:n===`string`?(r=Q_(t))?(t=r,Sv):Nv:t instanceof Q_?Sv:t instanceof Date?Ev:wv(t)?Cv:Array.isArray(t)?Tv:typeof t.valueOf!=`function`&&typeof t.toString!=`function`||isNaN(t)?Ov:Dv)(e,t)}function Fv(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var Iv=180/Math.PI,Lv={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Rv(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)*Iv,skewX:Math.atan(c)*Iv,scaleX:o,scaleY:s}}var zv;function Bv(e){let t=new(typeof DOMMatrix==`function`?DOMMatrix:WebKitCSSMatrix)(e+``);return t.isIdentity?Lv:Rv(t.a,t.b,t.c,t.d,t.e,t.f)}function Vv(e){return e==null||(zv||=document.createElementNS(`http://www.w3.org/2000/svg`,`g`),zv.setAttribute(`transform`,e),!(e=zv.transform.baseVal.consolidate()))?Lv:(e=e.matrix,Rv(e.a,e.b,e.c,e.d,e.e,e.f))}function Hv(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:Dv(e,i)},{i:c-2,x:Dv(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:Dv(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:Dv(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:Dv(e,n)},{i:s-2,x:Dv(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 Uv=Hv(Bv,`px, `,`px)`,`deg)`),Wv=Hv(Vv,`, `,`)`,`)`),Gv=0,Kv=0,qv=0,Jv=1e3,Yv,Xv,Zv=0,Qv=0,$v=0,ey=typeof performance==`object`&&performance.now?performance:Date,ty=typeof window==`object`&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function ny(){return Qv||=(ty(ry),ey.now()+$v)}function ry(){Qv=0}function iy(){this._call=this._time=this._next=null}iy.prototype=ay.prototype={constructor:iy,restart:function(e,t,n){if(typeof e!=`function`)throw TypeError(`callback is not a function`);n=(n==null?ny():+n)+(t==null?0:+t),!this._next&&Xv!==this&&(Xv?Xv._next=this:Yv=this,Xv=this),this._call=e,this._time=n,uy()},stop:function(){this._call&&(this._call=null,this._time=1/0,uy())}};function ay(e,t,n){var r=new iy;return r.restart(e,t,n),r}function oy(){ny(),++Gv;for(var e=Yv,t;e;)(t=Qv-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Gv}function sy(){Qv=(Zv=ey.now())+$v,Gv=Kv=0;try{oy()}finally{Gv=0,ly(),Qv=0}}function cy(){var e=ey.now(),t=e-Zv;t>Jv&&($v-=t,Zv=e)}function ly(){for(var e,t=Yv,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:Yv=n);Xv=e,uy(r)}function uy(e){Gv||(Kv&&=clearTimeout(Kv),e-Qv>24?(e<1/0&&(Kv=setTimeout(sy,e-ey.now()-$v)),qv&&=clearInterval(qv)):(qv||=(Zv=ey.now(),setInterval(cy,Jv)),Gv=1,ty(sy)))}function dy(e,t,n){var r=new iy;return t=t==null?0:+t,r.restart(n=>{r.stop(),e(n+t)},t,n),r}var fy=Oh(`start`,`end`,`cancel`,`interrupt`),py=[];function my(e,t,n,r,i,a){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;vy(e,n,{name:t,index:r,group:i,on:fy,tween:py,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:0})}function hy(e,t){var n=_y(e,t);if(n.state>0)throw Error(`too late; already scheduled`);return n}function gy(e,t){var n=_y(e,t);if(n.state>3)throw Error(`too late; already running`);return n}function _y(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error(`transition not found`);return n}function vy(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=ay(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 dy(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(dy(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 yy(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 by(e){return this.each(function(){yy(this,e)})}function xy(e,t){var n,r;return function(){var i=gy(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 Sy(e,t,n){var r,i;if(typeof n!=`function`)throw Error();return function(){var a=gy(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 Cy(e,t){var n=this._id;if(e+=``,arguments.length<2){for(var r=_y(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?xy:Sy)(n,e,t))}function wy(e,t,n){var r=e._id;return e.each(function(){var e=gy(this,r);(e.value||={})[t]=n.apply(this,arguments)}),function(e){return _y(e,r).value[t]}}function Ty(e,t){var n;return(typeof t==`number`?Dv:t instanceof Q_?Sv:(n=Q_(t))?(t=n,Sv):Nv)(e,t)}function Ey(e){return function(){this.removeAttribute(e)}}function Dy(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Oy(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 ky(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 Ay(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 jy(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 My(e,t){var n=Ph(e),r=n===`transform`?Wv:Ty;return this.attrTween(e,typeof t==`function`?(n.local?jy:Ay)(n,r,wy(this,`attr.`+e,t)):t==null?(n.local?Dy:Ey)(n):(n.local?ky:Oy)(n,r,t))}function Ny(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function Py(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function Fy(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&Py(e,i)),n}return i._value=t,i}function Iy(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&Ny(e,i)),n}return i._value=t,i}function Ly(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=Ph(e);return this.tween(n,(r.local?Fy:Iy)(r,t))}function Ry(e,t){return function(){hy(this,e).delay=+t.apply(this,arguments)}}function zy(e,t){return t=+t,function(){hy(this,e).delay=t}}function By(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?Ry:zy)(t,e)):_y(this.node(),t).delay}function Vy(e,t){return function(){gy(this,e).duration=+t.apply(this,arguments)}}function Hy(e,t){return t=+t,function(){gy(this,e).duration=t}}function Uy(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?Vy:Hy)(t,e)):_y(this.node(),t).duration}function Wy(e,t){if(typeof t!=`function`)throw Error();return function(){gy(this,e).ease=t}}function Gy(e){var t=this._id;return arguments.length?this.each(Wy(t,e)):_y(this.node(),t).ease}function Ky(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!=`function`)throw Error();gy(this,e).ease=n}}function qy(e){if(typeof e!=`function`)throw Error();return this.each(Ky(this._id,e))}function Jy(e){typeof e!=`function`&&(e=Kh(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 Cb(r,this._parents,this._name,this._id)}function Yy(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 Cb(o,this._parents,this._name,this._id)}function Xy(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 Zy(e,t,n){var r,i,a=Xy(t)?hy:gy;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function Qy(e,t){var n=this._id;return arguments.length<2?_y(this.node(),n).on.on(e):this.each(Zy(n,e,t))}function $y(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function eb(){return this.on(`end.remove`,$y(this._id))}function tb(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=zh(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,my(l[f],t,n,f,l,_y(u,n)));return new Cb(a,this._parents,t,n)}function nb(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=Uh(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=_y(u,n),h=0,g=f.length;h<g;++h)(p=f[h])&&my(p,t,n,h,f,m);a.push(f),o.push(u)}return new Cb(a,o,t,n)}var rb=k_.prototype.constructor;function ib(){return new rb(this._groups,this._parents)}function ab(e,t){var n,r,i;return function(){var a=Ig(this,e),o=(this.style.removeProperty(e),Ig(this,e));return a===o?null:a===n&&o===r?i:i=t(n=a,r=o)}}function ob(e){return function(){this.style.removeProperty(e)}}function sb(e,t,n){var r,i=n+``,a;return function(){var o=Ig(this,e);return o===i?null:o===r?a:a=t(r=o,n)}}function cb(e,t,n){var r,i,a;return function(){var o=Ig(this,e),s=n(this),c=s+``;return s??(c=s=(this.style.removeProperty(e),Ig(this,e))),o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s))}}function lb(e,t){var n,r,i,a=`style.`+t,o=`end.`+a,s;return function(){var c=gy(this,e),l=c.on,u=c.value[a]==null?s||=ob(t):void 0;(l!==n||i!==u)&&(r=(n=l).copy()).on(o,i=u),c.on=r}}function ub(e,t,n){var r=(e+=``)==`transform`?Uv:Ty;return t==null?this.styleTween(e,ab(e,r)).on(`end.style.`+e,ob(e)):typeof t==`function`?this.styleTween(e,cb(e,r,wy(this,`style.`+e,t))).each(lb(this._id,e)):this.styleTween(e,sb(e,r,t),n).on(`end.style.`+e,null)}function db(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function fb(e,t,n){var r,i;function a(){var a=t.apply(this,arguments);return a!==i&&(r=(i=a)&&db(e,a,n)),r}return a._value=t,a}function pb(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,fb(e,t,n??``))}function mb(e){return function(){this.textContent=e}}function hb(e){return function(){var t=e(this);this.textContent=t??``}}function gb(e){return this.tween(`text`,typeof e==`function`?hb(wy(this,`text`,e)):mb(e==null?``:e+``))}function _b(e){return function(t){this.textContent=e.call(this,t)}}function vb(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&_b(r)),t}return r._value=e,r}function yb(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,vb(e))}function bb(){for(var e=this._name,t=this._id,n=Tb(),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=_y(c,t);my(c,e,n,l,o,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new Cb(r,this._parents,e,n)}function xb(){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=gy(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 Sb=0;function Cb(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function wb(e){return k_().transition(e)}function Tb(){return++Sb}var Eb=k_.prototype;Cb.prototype=wb.prototype={constructor:Cb,select:tb,selectAll:nb,selectChild:Eb.selectChild,selectChildren:Eb.selectChildren,filter:Jy,merge:Yy,selection:ib,transition:bb,call:Eb.call,nodes:Eb.nodes,node:Eb.node,size:Eb.size,empty:Eb.empty,each:Eb.each,on:Qy,attr:My,attrTween:Ly,style:ub,styleTween:pb,text:gb,textTween:yb,remove:eb,tween:Cy,delay:By,duration:Uy,ease:Gy,easeVarying:qy,end:xb,[Symbol.iterator]:Eb[Symbol.iterator]};function Db(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var Ob={time:null,delay:0,duration:250,ease:Db};function kb(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw Error(`transition ${t} not found`);return n}function Ab(e){var t,n;e instanceof Cb?(t=e._id,e=e._name):(t=Tb(),(n=Ob).time=ny(),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])&&my(c,e,t,l,o,n||kb(c,t));return new Cb(r,this._parents,e,t)}k_.prototype.interrupt=by,k_.prototype.transition=Ab;var{abs:jb,max:Mb,min:Nb}=Math;[`w`,`e`].map(Pb),[`n`,`s`].map(Pb),[`n`,`w`,`e`,`s`,`nw`,`ne`,`sw`,`se`].map(Pb);function Pb(e){return{type:e}}var Fb=Math.PI,Ib=2*Fb,Lb=1e-6,Rb=Ib-Lb;function zb(e){this._+=e[0];for(let t=1,n=e.length;t<n;++t)this._+=arguments[t]+e[t]}function Bb(e){let t=Math.floor(e);if(!(t>=0))throw Error(`invalid digits: ${e}`);if(t>15)return zb;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 Vb=class{constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._=``,this._append=e==null?zb:Bb(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>Lb)if(!(Math.abs(u*s-c*l)>Lb)||!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((Fb-Math.acos((m+d-h)/(2*g*_)))/2),y=v/_,b=v/g;Math.abs(y-1)>Lb&&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)>Lb||Math.abs(this._y1-l)>Lb)&&this._append`L${c},${l}`,n&&(d<0&&(d=d%Ib+Ib),d>Rb?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>Lb&&this._append`A${n},${n},0,${+(d>=Fb)},${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 Hb(){return new Vb}Hb.prototype=Vb.prototype;function Ub(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString(`en`).replace(/,/g,``):e.toString(10)}function Wb(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 Gb(e){return e=Wb(Math.abs(e)),e?e[1]:NaN}function Kb(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 qb(e){return function(t){return t.replace(/[0-9]/g,function(t){return e[+t]})}}var Jb=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Yb(e){if(!(t=Jb.exec(e)))throw Error(`invalid format: `+e);var t;return new Xb({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]})}Yb.prototype=Xb.prototype;function Xb(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+``}Xb.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 Zb(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 Qb;function $b(e,t){var n=Wb(e,t);if(!n)return Qb=void 0,e.toPrecision(t);var r=n[0],i=n[1],a=i-(Qb=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`)+Wb(e,Math.max(0,t+a-1))[0]}function ex(e,t){var n=Wb(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 tx={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+``,d:Ub,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)=>ex(e*100,t),r:ex,s:$b,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function nx(e){return e}var rx=Array.prototype.map,ix=[`y`,`z`,`a`,`f`,`p`,`n`,`µ`,`m`,``,`k`,`M`,`G`,`T`,`P`,`E`,`Z`,`Y`];function ax(e){var t=e.grouping===void 0||e.thousands===void 0?nx:Kb(rx.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?nx:qb(rx.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=Yb(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`):tx[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=tx[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=Zb(e)),w&&+e==0&&f!==`+`&&(w=!1),n=(w?f===`(`?f:s:f===`-`||f===`(`?``:f)+n,r=(y===`s`&&!isNaN(e)&&Qb!==void 0?ix[8+Qb/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(Gb(t)/3)))*3,r=10**-n,i=l((e=Yb(e),e.type=`f`,e),{suffix:ix[8+n/3]});return function(e){return i(r*e)}}return{format:l,formatPrefix:u}}var ox,sx,cx;lx({thousands:`,`,grouping:[3],currency:[`$`,``]});function lx(e){return ox=ax(e),sx=ox.format,cx=ox.formatPrefix,ox}function ux(e){return Math.max(0,-Gb(Math.abs(e)))}function dx(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Gb(t)/3)))*3-Gb(Math.abs(e)))}function fx(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Gb(t)-Gb(e))+1}function px(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 mx(){return this.eachAfter(px)}function hx(e,t){let n=-1;for(let r of this)e.call(t,r,++n,this);return this}function gx(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 _x(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 vx(e,t){let n=-1;for(let r of this)if(e.call(t,r,++n,this))return r}function yx(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 bx(e){return this.eachBefore(function(t){t.children&&t.children.sort(e)})}function xx(e){for(var t=this,n=Sx(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 Sx(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 Cx(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t}function wx(){return Array.from(this)}function Tx(){var e=[];return this.eachBefore(function(t){t.children||e.push(t)}),e}function Ex(){var e=this,t=[];return e.each(function(n){n!==e&&t.push({source:n.parent,target:n})}),t}function*Dx(){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 Ox(e,t){e instanceof Map?(e=[void 0,e],t===void 0&&(t=jx)):t===void 0&&(t=Ax);for(var n=new Px(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 Px(o[s])),a.parent=r,a.depth=r.depth+1;return n.eachBefore(Nx)}function kx(){return Ox(this).eachBefore(Mx)}function Ax(e){return e.children}function jx(e){return Array.isArray(e)?e[1]:null}function Mx(e){e.data.value!==void 0&&(e.value=e.data.value),e.data=e.data.data}function Nx(e){var t=0;do e.height=t;while((e=e.parent)&&e.height<++t)}function Px(e){this.data=e,this.depth=this.height=0,this.parent=null}Px.prototype=Ox.prototype={constructor:Px,count:mx,each:hx,eachAfter:_x,eachBefore:gx,find:vx,sum:yx,sort:bx,path:xx,ancestors:Cx,descendants:wx,leaves:Tx,links:Ex,copy:kx,[Symbol.iterator]:Dx};function Fx(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 Ix(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 Lx(){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(Fx),i}function a(e,t){return function(r){r.children&&Ix(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 Rx(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}function zx(e){return function(){return e}}function Bx(e){return+e}var Vx=[0,1];function Hx(e){return e}function Ux(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:zx(isNaN(t)?NaN:.5)}function Wx(e,t){var n;return e>t&&(n=e,e=t,t=n),function(n){return Math.max(e,Math.min(t,n))}}function Gx(e,t,n){var r=e[0],i=e[1],a=t[0],o=t[1];return i<r?(r=Ux(i,r),a=n(o,a)):(r=Ux(r,i),a=n(a,o)),function(e){return a(r(e))}}function Kx(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]=Ux(e[o],e[o+1]),a[o]=n(t[o],t[o+1]);return function(t){var n=vh(e,t,1,r)-1;return a[n](i[n](t))}}function qx(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function Jx(){var e=Vx,t=Vx,n=Pv,r,i,a,o=Hx,s,c,l;function u(){var n=Math.min(e.length,t.length);return o!==Hx&&(o=Wx(e[0],e[n-1])),s=n>2?Kx:Gx,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),Dv))(n)))},d.domain=function(t){return arguments.length?(e=Array.from(t,Bx),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=Fv,u()},d.clamp=function(e){return arguments.length?(o=e?!0:Hx,u()):o!==Hx},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 Yx(){return Jx()(Hx,Hx)}function Xx(e,t,n,r){var i=Th(e,t,n),a;switch(r=Yb(r??`,f`),r.type){case`s`:var o=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(a=dx(i,o))&&(r.precision=a),cx(r,o);case``:case`e`:case`g`:case`p`:case`r`:r.precision==null&&!isNaN(a=fx(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=a-(r.type===`e`));break;case`f`:case`%`:r.precision==null&&!isNaN(a=ux(i))&&(r.precision=a-(r.type===`%`)*2);break}return sx(r)}function Zx(e){var t=e.domain;return e.ticks=function(e){var n=t();return Ch(n[0],n[n.length-1],e??10)},e.tickFormat=function(e,n){var r=t();return Xx(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=wh(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 Qx(){var e=Yx();return e.copy=function(){return qx(e,Qx())},Rx.apply(e,arguments),Zx(e)}function $x(e){return function(){return e}}var eS=Math.abs,tS=Math.atan2,nS=Math.cos,rS=Math.max,iS=Math.min,aS=Math.sin,oS=Math.sqrt,sS=Math.PI,cS=sS/2,lS=2*sS;function uS(e){return e>1?0:e<-1?sS:Math.acos(e)}function dS(e){return e>=1?cS:e<=-1?-cS:Math.asin(e)}function fS(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 Vb(t)}function pS(e){return e.innerRadius}function mS(e){return e.outerRadius}function hS(e){return e.startAngle}function gS(e){return e.endAngle}function _S(e){return e&&e.padAngle}function vS(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 yS(e,t,n,r,i,a,o){var s=e-n,c=t-r,l=(o?a:-a)/oS(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)*oS(rS(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 bS(){var e=pS,t=mS,n=$x(0),r=null,i=hS,a=gS,o=_S,s=null,c=fS(l);function l(){var l,u,d=+e.apply(this,arguments),f=+t.apply(this,arguments),p=i.apply(this,arguments)-cS,m=a.apply(this,arguments)-cS,h=eS(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>lS-1e-12)s.moveTo(f*nS(p),f*aS(p)),s.arc(0,0,f,p,m,!g),d>1e-12&&(s.moveTo(d*nS(m),d*aS(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):oS(d*d+f*f)),T=iS(eS(f-d)/2,+n.apply(this,arguments)),E=T,D=T,O,k;if(w>1e-12){var A=dS(w/d*aS(C)),j=dS(w/f*aS(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*nS(_),N=f*aS(_),P=d*nS(b),F=d*aS(b);if(T>1e-12){var I=f*nS(v),L=f*aS(v),ee=d*nS(y),R=d*aS(y),z;if(h<sS)if(z=vS(M,N,ee,R,I,L,P,F)){var te=M-z[0],ne=N-z[1],re=I-z[0],B=L-z[1],ie=1/aS(uS((te*re+ne*B)/(oS(te*te+ne*ne)*oS(re*re+B*B)))/2),ae=oS(z[0]*z[0]+z[1]*z[1]);E=iS(T,(d-ae)/(ie-1)),D=iS(T,(f-ae)/(ie+1))}else E=D=0}S>1e-12?D>1e-12?(O=yS(ee,R,M,N,f,D,g),k=yS(I,L,P,F,f,D,g),s.moveTo(O.cx+O.x01,O.cy+O.y01),D<T?s.arc(O.cx,O.cy,D,tS(O.y01,O.x01),tS(k.y01,k.x01),!g):(s.arc(O.cx,O.cy,D,tS(O.y01,O.x01),tS(O.y11,O.x11),!g),s.arc(0,0,f,tS(O.cy+O.y11,O.cx+O.x11),tS(k.cy+k.y11,k.cx+k.x11),!g),s.arc(k.cx,k.cy,D,tS(k.y11,k.x11),tS(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=yS(P,F,I,L,d,-E,g),k=yS(M,N,ee,R,d,-E,g),s.lineTo(O.cx+O.x01,O.cy+O.y01),E<T?s.arc(O.cx,O.cy,E,tS(O.y01,O.x01),tS(k.y01,k.x01),!g):(s.arc(O.cx,O.cy,E,tS(O.y01,O.x01),tS(O.y11,O.x11),!g),s.arc(0,0,d,tS(O.cy+O.y11,O.cx+O.x11),tS(k.cy+k.y11,k.cx+k.x11),g),s.arc(k.cx,k.cy,E,tS(k.y11,k.x11),tS(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-sS/2;return[nS(r)*n,aS(r)*n]},l.innerRadius=function(t){return arguments.length?(e=typeof t==`function`?t:$x(+t),l):e},l.outerRadius=function(e){return arguments.length?(t=typeof e==`function`?e:$x(+e),l):t},l.cornerRadius=function(e){return arguments.length?(n=typeof e==`function`?e:$x(+e),l):n},l.padRadius=function(e){return arguments.length?(r=e==null?null:typeof e==`function`?e:$x(+e),l):r},l.startAngle=function(e){return arguments.length?(i=typeof e==`function`?e:$x(+e),l):i},l.endAngle=function(e){return arguments.length?(a=typeof e==`function`?e:$x(+e),l):a},l.padAngle=function(e){return arguments.length?(o=typeof e==`function`?e:$x(+e),l):o},l.context=function(e){return arguments.length?(s=e??null,l):s},l}function xS(e,t,n){this.k=e,this.x=t,this.y=n}xS.prototype={constructor:xS,scale:function(e){return e===1?this:new xS(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new xS(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 SS=new xS(1,0,0);CS.prototype=xS.prototype;function CS(e){for(;!e.__zoom;)if(!(e=e.parentNode))return SS;return e.__zoom}function wS(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{WILDCARD:TS,QUALIFIER:ES,LUCKY_LOSER:DS}=t.entryStatusConstants,OS=`text-anchor`,kS=`dominant-baseline`,AS=`fill-opacity`,jS=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 MS(e){let t=Math.floor(e.length/2),n=e.slice(0,t),r=e.slice(t).reverse();return[...n,...r]}function NS(e){if(e)switch(e){case TS:return`WC`;case ES:return`Q`;case DS:return`LL`;default:return e}}function PS(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:NS(e.entryStatus),nationalityCode:e.nationalityCode,matchUp:r,depth:t,value:1})}return n}function FS(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 IS(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}=FS(e,r);return{name:s||``,participantName:s,drawPosition:l?.drawPosition??c?.drawPosition,seedNumber:c?.seedNumber??l?.seedNumber,entryStatus:NS(c?.entryStatus)??l?.entryStatus,nationalityCode:c?.nationalityCode??l?.nationalityCode,scoreString:e.scoreString,matchUpStatus:e.matchUpStatus,matchUp:e,depth:n,children:o.length>0?o:void 0}})}function LS(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=MS(PS(r,n.length)),a=new Map;for(let e of i)e.participantName&&e.participantName!==`BYE`&&a.set(e.participantName,e);let o=IS(MS(r),i,n.length-1,a);for(let e=1;e<n.length;e++)o=IS(MS(t[n[e]]),o,n.length-1-e,a);return o.length===1?o[0]:{name:`Tournament`,depth:0,children:o}}function RS(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=Qx().domain([1,32]).range([`0`,`1`]);o=Qx().domain(Eh(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=Qx().domain(Eh(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=Qx().domain(Eh(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),RS(n,t)})}function zS(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 BS(e,t){let n=e.find(e=>e.data.participantName&&e.data.participantName!==t);return n?.data.participantName?n.data:void 0}function VS(e,t){let n=[e.participantName],r;if(t.children&&t.children.length>0)e.scoreString&&n.push(e.scoreString),r=BS(t.children,e.participantName),r&&n.push(r.participantName);else{let r=zS(e,t.depth);r&&n.push(r)}return{messageLines:n,opponentData:r}}function HS(e,t){return-(e*t/2)+t/2}function US(e,t,n){let r=j_(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 WS(e,t,n,r,i){let a=e.append(`text`).attr(`x`,t/2).attr(`y`,n/2).attr(OS,`middle`).attr(kS,`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(OS,`middle`).attr(kS,`middle`).attr(`font-size`,`${i}px`).style(`fill`,`var(--chc-text-secondary, #666)`).attr(`pointer-events`,`none`)}}function GS(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(OS,`middle`).attr(kS,`middle`).attr(`transform`,`translate(0, ${r*a})`).text(YS(n)))}function KS(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=LS(n),m=Ox(p,e=>e.children).sum(e=>e.value||0),h=Math.min(a,o)/2,g=h/2,_=e=>e*h/200;Lx().size([2*Math.PI,h-g])(m),RS(p,Qx().domain([0,n.drawSize||128]).range([0,1]));let v=m.descendants(),y=bS().startAngle(e=>e.x0).endAngle(e=>e.x1).innerRadius(e=>e.y0+g).outerRadius(e=>e.y1+g),{svg:b,g:x,flagsGroup:S,winningFlagsGroup:C,losingFlagsGroup:w}=US(e,a,o),T=new Set,E=e=>{e.nationalityCode&&T.add(e.nationalityCode),e.children&&e.children.forEach(E)};E(p);let D=Array.from(T),{centerText:O,centerText2:k}=WS(b,a,o,c,l);function A(){let e=wS(d,15);O.text(``),O.selectAll(`tspan`).remove(),k.text(``),k.selectAll(`tspan`).remove(),O.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;O.attr(`y`,o/2+t),O.style(`display`,`block`),k.style(`display`,`none`)}function j(){if(S.selectAll(`text`).remove(),C.selectAll(`text`).remove(),w.selectAll(`text`).remove(),D.length===0)return;let e=Qx().domain([0,D.length]).range([0,Math.PI*2]),t=_(20),n=g-t+10;S.selectAll(`text`).data(D).join(`text`).attr(`font-size`,`${t}px`).attr(OS,`middle`).attr(kS,`middle`).attr(`transform`,(t,r)=>{let i=e(r);return`translate(${Math.cos(i)*n}, ${Math.sin(i)*n})`}).text(e=>YS(e)).style(`cursor`,`pointer`).on(`mouseover`,function(e,t){let n=f[t]||t;O.selectAll(`tspan`).remove(),O.attr(`y`,o/2),O.text(n).style(`display`,`block`),k.selectAll(`tspan`).remove(),k.text(``).style(`display`,`none`),N||x.selectAll(`path`).attr(AS,e=>e.data.nationalityCode===t?.9:.3)}).on(`mouseout`,function(){N||x.selectAll(`path`).attr(AS,.8),A()})}j(),A();let M=i.eventHandlers?.clickCenter;M&&x.insert(`circle`,`:first-child`).attr(`r`,g).attr(`fill`,`transparent`).style(`cursor`,`pointer`).on(`click`,M);let N=!1,P;function F(e,t){let n=t.data;if(n.participantName){let{messageLines:e,opponentData:r}=VS(n,t);r&&(n.opponent=r),O.selectAll(`tspan`).remove(),O.text(``),O.selectAll(`tspan`).data(e).join(`tspan`).attr(`x`,a/2).attr(`dy`,(e,t)=>t===0?0:u).text(e=>e);let i=HS(e.length,u);O.attr(`y`,o/2+i),O.style(`display`,`block`),k.style(`display`,`none`)}N?n.participantName?.toLowerCase()!==P?.toLowerCase()&&j_(e.currentTarget).attr(AS,.9):x.selectAll(`path`).attr(AS,e=>e.data.participantName===t.data.participantName?.9:.3);let r=_(30),i=g-r-10,s={flagsGroup:S,winningFlagsGroup:C,losingFlagsGroup:w};GS(C,s,n.nationalityCode,-1,!0,i,r),n.opponent&&GS(w,s,n.opponent.nationalityCode,1,!1,i,r)}function I(e,t){if(N){let n=t.data.participantName?.toLowerCase()===P?.toLowerCase();j_(e.currentTarget).attr(AS,n?1:.2)}else x.selectAll(`path`).attr(AS,.8);j(),A()}let L=i.eventHandlers?.clickSegment;function ee(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,roundName:n.roundName,depth:n.depth,matchUp:n.matchUp})}let R=x.selectAll(`path`).data(v).join(`path`).attr(`d`,e=>y(e)).attr(`fill`,e=>e.data.color||`#ccc`).attr(AS,.8).attr(`stroke`,`#fff`).attr(`stroke-width`,1).on(`mouseover`,F).on(`mouseout`,I);L&&R.style(`cursor`,`pointer`).on(`click`,ee),R.append(`title`).text(e=>{let t=e.data;return t.participantName?`${t.participantName}\nDraw: ${t.drawPosition||`N/A`}`:`${t.name}\nDepth: ${e.depth}`});function z(e){let t=0;return N=!!e,P=e,x.selectAll(`path`).attr(AS,n=>e?n.data.participantName?.toLowerCase()===e.toLowerCase()?(t+=1,1):.2:.8),t}function te(e){b.style(`display`,e?`none`:`block`)}return{highlightPlayer:z,hide:te}}function qS(e={}){return{render:(t,n,r)=>KS(t,n,r,e)}}function JS(e){return e?.length===2?e&&String.fromCodePoint!==void 0?e.toUpperCase().replaceAll(/./g,e=>String.fromCodePoint((e.codePointAt(0)??0)+127397)):e:``}function YS(e){return JS(jS[e]||e)}var{LUCKY_LOSER:XS,WILDCARD:ZS,QUALIFIER:QS}=t.entryStatusConstants;function $S(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||[],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 eC={LL:XS,WC:ZS,Q:QS},tC=[`R128`,`R64`,`R32`,`R16`,`QF`,`SF`,`F`];function nC(e){let t=rC(e);if(t.length===0)return{drawSize:0,roundMatchUps:{}};let n=t[0].data,r=n.length,i=iC(n),a=aC(t,e),o={};o[1]=sC(n,a,t);for(let e=1;e<t.length;e++)o[e+1]=cC(e,t,a,i);return{drawSize:r,roundMatchUps:o}}function rC(e){let t=[],n=!1;for(let r of tC){let i=e[r];i&&i.length>0&&(n=!0),n&&i&&i.length>0&&t.push({key:r,data:i})}return t}function iC(e){let t=new Map;return e.forEach((e,n)=>{let r=lC(e.player);r&&r!==`BYE`&&t.set(r,{drawPosition:e.Draw??n+1,country:e.country,seed:e.seed,entry:e.entry})}),t}function aC(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=lC(e.player);t&&a.add(t)}n.set(e[r].key,a)}return n}function oC(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 sC(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=lC(a?.player),c=lC(o?.player),l=s===`BYE`||c===`BYE`,u=oC(s,c,i),d;if(!l&&n.length>1){let e=n[1].data,t=u===1?s:c;d=e.find(e=>lC(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],scoreString:d,sides:[dC(1,a,t+1),dC(2,o,t+2)]})}return r}function cC(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=lC(t?.player),l=lC(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],scoreString:d,sides:[fC(1,t,r),fC(2,n,r)]})}return s}function lC(e){if(!e)return``;let t=e.trim();return t.toUpperCase()===`BYE`?`BYE`:t}function uC(e){if(e)return eC[e.toUpperCase()]||e}function dC(e,t,n){if(!t)return{sideNumber:e,drawPosition:n};let r=lC(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:uC(t.entry)}}function fC(e,t,n){if(!t)return{sideNumber:e,drawPosition:0};let r=lC(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:uC(t.entry||i?.entry)}}var pC=`right`,mC=`font-medium`;function hC({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===pC&&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`);z(t.onClick)&&(d.onclick=t.onClick),d.style.cssText=`margin-right: 1em`,d.innerHTML=t.label,u.appendChild(d);let f=document.createElement(`span`);z(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&&mm(t,r);return n&&e.push(n),e},[]);return wp(e)?s[0]:s}hm.defaultProps=Qp,hm.setDefaultProps=em,hm.currentInput=Fp,Object.assign({},Od,{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)}}),hm.setDefaultProps({render:um});var gm=`#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(`.`),_m=`notes-toolbar-recent-colors`,vm=8;function ym(){try{return JSON.parse(localStorage.getItem(_m)||`[]`)}catch{return[]}}function bm(e){let t=ym().filter(t=>t!==e);t.unshift(e),t.length>vm&&(t=t.slice(0,vm)),localStorage.setItem(_m,JSON.stringify(t))}function xm(e={}){let t=document.createElement(`div`);return t.className=`notes-toolbar`,t.appendChild(Em(e)),t.appendChild(Dm(e)),t.appendChild(Om(e)),t.appendChild(Mm(e)),t.appendChild(Fm(e)),t.appendChild(Im(e)),t.appendChild(Rm(e)),t}function Sm(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 Cm(e,t){let n=e.querySelector(`[data-action="heading"]`);n&&(n.value=t===!1?`0`:String(t))}function wm(){let e=document.createElement(`div`);return e.className=`notes-toolbar-group`,e}function Tm(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 Em(e){let t=wm(),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 Dm(e){let t=wm();return t.appendChild(Tm(`bold`,`<b>B</b>`,`Bold`,e.onBold)),t.appendChild(Tm(`italic`,`<i>I</i>`,`Italic`,e.onItalic)),t.appendChild(Tm(`underline`,`<u>U</u>`,`Underline`,e.onUnderline)),t.appendChild(Tm(`strike`,`<s>S</s>`,`Strikethrough`,e.onStrike)),t}function Om(e){let t=wm();return t.appendChild(km(`color`,`A`,`Text color`,`#000000`,t=>{bm(t),e.onColor?.(t)})),t.appendChild(km(`background`,`A`,`Background color`,`#ffff00`,t=>{bm(t),e.onBackground?.(t)})),t}function km(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=hm(a,{content:Am(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 Am(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 gm)r.appendChild(jm(n,n===e,t));n.appendChild(r);let i=ym();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(jm(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 jm(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 Mm(e){let t=wm();return t.appendChild(Tm(`orderedList`,Nm(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(Tm(`bulletList`,Nm(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 Nm(e,t,n){return`<svg width="${e}" height="${t}" viewBox="0 0 ${e} ${t}" xmlns="http://www.w3.org/2000/svg">${n}</svg>`}var Pm={alignLeft:Nm(16,16,`<path d="M1 2h14v2H1zm0 4h9v2H1zm0 4h14v2H1zm0 4h9v2H1z" fill="currentColor"/>`),alignCenter:Nm(16,16,`<path d="M1 2h14v2H1zm3.5 4h7v2h-7zM1 10h14v2H1zm3.5 4h7v2h-7z" fill="currentColor"/>`),alignRight:Nm(16,16,`<path d="M1 2h14v2H1zm6 4h8v2H7zM1 10h14v2H1zm6 4h8v2H7z" fill="currentColor"/>`),alignJustify:Nm(16,16,`<path d="M1 2h14v2H1zm0 4h14v2H1zm0 4h14v2H1zm0 4h14v2H1z" fill="currentColor"/>`)};function Fm(e){let t=wm();return t.appendChild(Tm(`alignLeft`,Pm.alignLeft,`Align left`,()=>e.onAlign?.(`left`))),t.appendChild(Tm(`alignCenter`,Pm.alignCenter,`Align center`,()=>e.onAlign?.(`center`))),t.appendChild(Tm(`alignRight`,Pm.alignRight,`Align right`,()=>e.onAlign?.(`right`))),t.appendChild(Tm(`alignJustify`,Pm.alignJustify,`Justify`,()=>e.onAlign?.(`justify`))),t}function Im(e){let t=wm();t.appendChild(Tm(`blockquote`,`“`,`Blockquote`,e.onBlockquote)),t.appendChild(Tm(`codeBlock`,`</>`,`Code block`,e.onCodeBlock));let n=Tm(`link`,`⇗`,`Insert link`);Lm(n,`Enter URL`,`https://`,t=>e.onLink?.(t)),t.appendChild(n);let r=Tm(`video`,`▷`,`Insert video`);return Lm(r,`YouTube URL`,`https://youtube.com/...`,t=>e.onVideo?.(t)),t.appendChild(r),t}function Lm(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=hm(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 Rm(e){let t=wm();return t.appendChild(Tm(`clearFormatting`,`⊘`,`Clear formatting`,e.onClearFormatting)),t}function zm(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}=un(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 Bm(e){return typeof e==`function`}var Vm;function Hm(e){Vm&&=(Vm?.destroy(!0),void 0),e?.remove&&e.remove()}function Um(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;Hm();let l=document.createElement(`div`),u;return s||=i?.evt?.target,s&&(Vm=hm(s,{content:()=>(c=c?.filter(e=>!e.hide&&!e.disabled).map(e=>({...e,onClick:()=>{Hm(l),Bm(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?Vm.setContent(`IMPLEMENT SUB MENU`):Bm(e.onClick)?(Hm(l),e.onClick()):Bm(a)&&a&&(Hm(l),a(typeof e==`object`?{...e,coords:i}:e))}})),u=zm(l,[{text:t,items:c},...r]).focusElement,l),theme:`light-border`,trigger:`click`,onShown:()=>{u&&setTimeout(()=>u?.focus(),0)},...o}),Vm.show(),Vm.setProps({interactive:!0})),Vm}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 Wm(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 Gm(e){let t=Wm(`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 Km(e){let t=Wm(`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 qm(e){let t=Wm(`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 Jm(e){let t=Wm(`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 Ym(e){let t=Wm(`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 Xm(e){let t=Wm(`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 Zm(e){let t=Wm(`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 Qm={name:`courthive-components`,version:`1.2.0`,engines:{node:`>=22`},description:`Components for competitions projects`,files:[`dist`],main:`./dist/courthive-components.umd.js`,module:`./dist/courthive-components.es.js`,types:`./dist/index.d.ts`,exports:{".":{types:`./dist/index.d.ts`,import:`./dist/courthive-components.es.js`,require:`./dist/courthive-components.umd.js`},"./dist/*":`./dist/*`},repository:{type:`git`,url:`git+https://github.com/CourtHive/courthive-components.git`},keywords:[`tournament`,`match`,`score`,`vanillajs`,`bracket`],author:`Charles Allen`,license:`MIT`,bugs:{url:`https://github.com/CourtHive/courthive-components/issues`},homepage:`https://courthive.github.io/courthive-component`,scripts:{commits:`git log $(git describe --tags --abbrev=0)..HEAD --oneline --no-merges --pretty=format:'%s: %h' | sed '/courthive-components/d'`,release:`npm run release:patch`,test:`vitest run`,"test:watch":`vitest`,"test:ui":`vitest --ui`,dev:`vite`,build:`vite build`,prepublishOnly:`npm run build`,preview:`vite preview`,storybook:`storybook dev -p 6006`,"build-storybook":`storybook build`,"deploy-storybook":`gh-pages -d storybook-static`,"pre-commit":`lint-staged`,predeploy:`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":`20.5.3`,"@commitlint/config-conventional":`20.5.3`,"@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.59.1`,"@typescript-eslint/parser":`8.59.1`,"@vitest/browser-playwright":`^4.0.16`,"@vitest/coverage-v8":`^4.0.16`,eslint:`10.3.0`,"eslint-plugin-sonarjs":`4.0.3`,"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":`16.4.0`,playwright:`^1.57.0`,prettier:`^3.8.1`,semver:`7.7.4`,storybook:`^10.2.17`,"tabulator-tables":`6.4.0`,typescript:`^6.0.2`,vite:`8.0.10`,"vite-plugin-dts":`^5.0.0`,vitest:`^4.0.16`},dependencies:{awesomplete:`1.1.7`,"class-variance-authority":`0.7.1`,classnames:`2.5.1`,d3:`^7.9.0`,dayjs:`1.11.20`,"focus-trap":`^8.0.0`,"timepicker-ui":`^4.1.2`,"tippy.js":`6.3.7`,"tods-competition-factory":`^3.1.3`,"vanillajs-datepicker":`1.3.4`}};function $m(){return Qm.version}var eh={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 th(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&&z(i.onClick)&&i.onClick(),n&&z(n)&&n()},e.appendChild(t)}return{elements:r}}var nh=(e,t)=>n=>n?.trim().length>=e&&(!t||n?.trim().length<=t);function rh(e){return t.tools.isConvertableInteger(e)&&parseInt(e.toString())>=0}var ih=(e,t)=>n=>rh(n)&&Number(n)>=e&&Number(n)<=t,ah=e=>/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?\d)(?=.*?[#?!@$%^&*-]).{8,12}$/.test(e);function oh(e){return t.tools.dateTime.dateValidation.test(e)}var sh=(e,t)=>n=>{let r=(n||``).trim().split(` `).length;return r>=e&&(!t||r<=t)},ch=/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i,lh=e=>ch.exec(e),uh=u({dateValidator:()=>oh,emailValidator:()=>lh,nameValidator:()=>nh,numericRange:()=>ih,numericValidator:()=>rh,passwordValidator:()=>ah,wordValidator:()=>sh}),dh=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}}};function fh(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function ph(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function mh(e){let t,n,r;e.length===2?(t=e===fh||e===ph?e:hh,n=e,r=e):(t=fh,n=(t,n)=>fh(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 hh(){return 0}function gh(e){return e===null?NaN:+e}var _h=mh(fh),vh=_h.right;_h.left,mh(gh).center;var yh=Math.sqrt(50),bh=Math.sqrt(10),xh=Math.sqrt(2);function Sh(e,t,n){let r=(t-e)/Math.max(0,n),i=Math.floor(Math.log10(r)),a=r/10**i,o=a>=yh?10:a>=bh?5:a>=xh?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?Sh(e,t,n*2):[s,c,l]}function Ch(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?Sh(t,e,n):Sh(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 wh(e,t,n){return t=+t,e=+e,n=+n,Sh(e,t,n)[2]}function Th(e,t,n){t=+t,e=+e,n=+n;let r=t<e,i=r?wh(t,e,n):wh(e,t,n);return(r?-1:1)*(i<0?1/-i:i)}function Eh(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}var Dh={value:()=>{}};function Oh(){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 kh(n)}function kh(e){this._=e}function Ah(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}})}kh.prototype=Oh.prototype={constructor:kh,on:function(e,t){var n=this._,r=Ah(e+``,n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a<o;)if((i=(e=r[a]).type)&&(i=jh(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]=Mh(n[i],e.name,t);else if(t==null)for(i in n)n[i]=Mh(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 kh(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 jh(e,t){for(var n=0,r=e.length,i;n<r;++n)if((i=e[n]).name===t)return i.value}function Mh(e,t,n){for(var r=0,i=e.length;r<i;++r)if(e[r].name===t){e[r]=Dh,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var Nh={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 Ph(e){var t=e+=``,n=t.indexOf(`:`);return n>=0&&(t=e.slice(0,n))!==`xmlns`&&(e=e.slice(n+1)),Nh.hasOwnProperty(t)?{space:Nh[t],local:e}:e}function Fh(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 Ih(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Lh(e){var t=Ph(e);return(t.local?Ih:Fh)(t)}function Rh(){}function zh(e){return e==null?Rh:function(){return this.querySelector(e)}}function Bh(e){typeof e!=`function`&&(e=zh(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 O_(r,this._parents)}function Vh(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function Hh(){return[]}function Uh(e){return e==null?Hh:function(){return this.querySelectorAll(e)}}function Wh(e){return function(){return Vh(e.apply(this,arguments))}}function Gh(e){e=typeof e==`function`?Wh(e):Uh(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 O_(r,i)}function Kh(e){return function(){return this.matches(e)}}function qh(e){return function(t){return t.matches(e)}}var Jh=Array.prototype.find;function Yh(e){return function(){return Jh.call(this.children,e)}}function Xh(){return this.firstElementChild}function Zh(e){return this.select(e==null?Xh:Yh(typeof e==`function`?e:qh(e)))}var Qh=Array.prototype.filter;function $h(){return Array.from(this.children)}function eg(e){return function(){return Qh.call(this.children,e)}}function tg(e){return this.selectAll(e==null?$h:eg(typeof e==`function`?e:qh(e)))}function ng(e){typeof e!=`function`&&(e=Kh(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 O_(r,this._parents)}function rg(e){return Array(e.length)}function ig(){return new O_(this._enter||this._groups.map(rg),this._parents)}function ag(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}ag.prototype={constructor:ag,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 og(e){return function(){return e}}function sg(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 ag(e,a[o]);for(;o<c;++o)(s=t[o])&&(i[o]=s)}function cg(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 ag(e,a[s]);for(s=0;s<u;++s)(c=t[s])&&l.get(f[s])===c&&(i[s]=c)}function lg(e){return e.__data__}function ug(e,t){if(!arguments.length)return Array.from(this,lg);var n=t?cg:sg,r=this._parents,i=this._groups;typeof e!=`function`&&(e=og(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=dg(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 O_(o,r),o._enter=s,o._exit=c,o}function dg(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function fg(){return new O_(this._exit||this._groups.map(rg),this._parents)}function pg(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 mg(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 O_(s,this._parents)}function hg(){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 gg(e){e||=_g;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 O_(i,this._parents).order()}function _g(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function vg(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function yg(){return Array.from(this)}function bg(){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 xg(){let e=0;for(let t of this)++e;return e}function Sg(){return!this.node()}function Cg(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 wg(e){return function(){this.removeAttribute(e)}}function Tg(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Eg(e,t){return function(){this.setAttribute(e,t)}}function Dg(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function Og(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function kg(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 Ag(e,t){var n=Ph(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?Tg:wg:typeof t==`function`?n.local?kg:Og:n.local?Dg:Eg)(n,t))}function jg(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function Mg(e){return function(){this.style.removeProperty(e)}}function Ng(e,t,n){return function(){this.style.setProperty(e,t,n)}}function Pg(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function Fg(e,t,n){return arguments.length>1?this.each((t==null?Mg:typeof t==`function`?Pg:Ng)(e,t,n??``)):Ig(this.node(),e)}function Ig(e,t){return e.style.getPropertyValue(t)||jg(e).getComputedStyle(e,null).getPropertyValue(t)}function Lg(e){return function(){delete this[e]}}function Rg(e,t){return function(){this[e]=t}}function zg(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function Bg(e,t){return arguments.length>1?this.each((t==null?Lg:typeof t==`function`?zg:Rg)(e,t)):this.node()[e]}function Vg(e){return e.trim().split(/^|\s+/)}function Hg(e){return e.classList||new Ug(e)}function Ug(e){this._node=e,this._names=Vg(e.getAttribute(`class`)||``)}Ug.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 Wg(e,t){for(var n=Hg(e),r=-1,i=t.length;++r<i;)n.add(t[r])}function Gg(e,t){for(var n=Hg(e),r=-1,i=t.length;++r<i;)n.remove(t[r])}function Kg(e){return function(){Wg(this,e)}}function qg(e){return function(){Gg(this,e)}}function Jg(e,t){return function(){(t.apply(this,arguments)?Wg:Gg)(this,e)}}function Yg(e,t){var n=Vg(e+``);if(arguments.length<2){for(var r=Hg(this.node()),i=-1,a=n.length;++i<a;)if(!r.contains(n[i]))return!1;return!0}return this.each((typeof t==`function`?Jg:t?Kg:qg)(n,t))}function Xg(){this.textContent=``}function Zg(e){return function(){this.textContent=e}}function Qg(e){return function(){var t=e.apply(this,arguments);this.textContent=t??``}}function $g(e){return arguments.length?this.each(e==null?Xg:(typeof e==`function`?Qg:Zg)(e)):this.node().textContent}function e_(){this.innerHTML=``}function t_(e){return function(){this.innerHTML=e}}function n_(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??``}}function r_(e){return arguments.length?this.each(e==null?e_:(typeof e==`function`?n_:t_)(e)):this.node().innerHTML}function i_(){this.nextSibling&&this.parentNode.appendChild(this)}function a_(){return this.each(i_)}function o_(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function s_(){return this.each(o_)}function c_(e){var t=typeof e==`function`?e:Lh(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function l_(){return null}function u_(e,t){var n=typeof e==`function`?e:Lh(e),r=t==null?l_:typeof t==`function`?t:zh(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function d_(){var e=this.parentNode;e&&e.removeChild(this)}function f_(){return this.each(d_)}function p_(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function m_(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function h_(e){return this.select(e?m_:p_)}function g_(e){return arguments.length?this.property(`__data__`,e):this.node().__data__}function __(e){return function(t){e.call(this,t,this.__data__)}}function v_(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 y_(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 b_(e,t,n){return function(){var r=this.__on,i,a=__(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 x_(e,t,n){var r=v_(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?b_:y_,i=0;i<a;++i)this.each(s(r[i],t,n));return this}function S_(e,t,n){var r=jg(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 C_(e,t){return function(){return S_(this,e,t)}}function w_(e,t){return function(){return S_(this,e,t.apply(this,arguments))}}function T_(e,t){return this.each((typeof t==`function`?w_:C_)(e,t))}function*E_(){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 D_=[null];function O_(e,t){this._groups=e,this._parents=t}function k_(){return new O_([[document.documentElement]],D_)}function A_(){return this}O_.prototype=k_.prototype={constructor:O_,select:Bh,selectAll:Gh,selectChild:Zh,selectChildren:tg,filter:ng,data:ug,enter:ig,exit:fg,join:pg,merge:mg,selection:A_,order:hg,sort:gg,call:vg,nodes:yg,node:bg,size:xg,empty:Sg,each:Cg,attr:Ag,style:Fg,property:Bg,classed:Yg,text:$g,html:r_,raise:a_,lower:s_,append:c_,insert:u_,remove:f_,clone:h_,datum:g_,on:x_,dispatch:T_,[Symbol.iterator]:E_};function j_(e){return typeof e==`string`?new O_([[document.querySelector(e)]],[document.documentElement]):new O_([[e]],D_)}function M_(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function N_(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function P_(){}var F_=.7,I_=1/F_,L_=`\\s*([+-]?\\d+)\\s*`,R_=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*`,z_=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*`,B_=/^#([0-9a-f]{3,8})$/,V_=RegExp(`^rgb\\(${L_},${L_},${L_}\\)$`),H_=RegExp(`^rgb\\(${z_},${z_},${z_}\\)$`),U_=RegExp(`^rgba\\(${L_},${L_},${L_},${R_}\\)$`),W_=RegExp(`^rgba\\(${z_},${z_},${z_},${R_}\\)$`),G_=RegExp(`^hsl\\(${R_},${z_},${z_}\\)$`),K_=RegExp(`^hsla\\(${R_},${z_},${z_},${R_}\\)$`),q_={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};M_(P_,Q_,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:J_,formatHex:J_,formatHex8:Y_,formatHsl:X_,formatRgb:Z_,toString:Z_});function J_(){return this.rgb().formatHex()}function Y_(){return this.rgb().formatHex8()}function X_(){return dv(this).formatHsl()}function Z_(){return this.rgb().formatRgb()}function Q_(e){var t,n;return e=(e+``).trim().toLowerCase(),(t=B_.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?$_(t):n===3?new rv(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?ev(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?ev(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=V_.exec(e))?new rv(t[1],t[2],t[3],1):(t=H_.exec(e))?new rv(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=U_.exec(e))?ev(t[1],t[2],t[3],t[4]):(t=W_.exec(e))?ev(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=G_.exec(e))?uv(t[1],t[2]/100,t[3]/100,1):(t=K_.exec(e))?uv(t[1],t[2]/100,t[3]/100,t[4]):q_.hasOwnProperty(e)?$_(q_[e]):e===`transparent`?new rv(NaN,NaN,NaN,0):null}function $_(e){return new rv(e>>16&255,e>>8&255,e&255,1)}function ev(e,t,n,r){return r<=0&&(e=t=n=NaN),new rv(e,t,n,r)}function tv(e){return e instanceof P_||(e=Q_(e)),e?(e=e.rgb(),new rv(e.r,e.g,e.b,e.opacity)):new rv}function nv(e,t,n,r){return arguments.length===1?tv(e):new rv(e,t,n,r??1)}function rv(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}M_(rv,nv,N_(P_,{brighter(e){return e=e==null?I_:I_**+e,new rv(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?F_:F_**+e,new rv(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new rv(cv(this.r),cv(this.g),cv(this.b),sv(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:iv,formatHex:iv,formatHex8:av,formatRgb:ov,toString:ov}));function iv(){return`#${lv(this.r)}${lv(this.g)}${lv(this.b)}`}function av(){return`#${lv(this.r)}${lv(this.g)}${lv(this.b)}${lv((isNaN(this.opacity)?1:this.opacity)*255)}`}function ov(){let e=sv(this.opacity);return`${e===1?`rgb(`:`rgba(`}${cv(this.r)}, ${cv(this.g)}, ${cv(this.b)}${e===1?`)`:`, ${e})`}`}function sv(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function cv(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function lv(e){return e=cv(e),(e<16?`0`:``)+e.toString(16)}function uv(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new pv(e,t,n,r)}function dv(e){if(e instanceof pv)return new pv(e.h,e.s,e.l,e.opacity);if(e instanceof P_||(e=Q_(e)),!e)return new pv;if(e instanceof pv)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 pv(o,s,c,e.opacity)}function fv(e,t,n,r){return arguments.length===1?dv(e):new pv(e,t,n,r??1)}function pv(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}M_(pv,fv,N_(P_,{brighter(e){return e=e==null?I_:I_**+e,new pv(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?F_:F_**+e,new pv(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 rv(gv(e>=240?e-240:e+120,i,r),gv(e,i,r),gv(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new pv(mv(this.h),hv(this.s),hv(this.l),sv(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=sv(this.opacity);return`${e===1?`hsl(`:`hsla(`}${mv(this.h)}, ${hv(this.s)*100}%, ${hv(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function mv(e){return e=(e||0)%360,e<0?e+360:e}function hv(e){return Math.max(0,Math.min(1,e||0))}function gv(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 _v=e=>()=>e;function vv(e,t){return function(n){return e+n*t}}function yv(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function bv(e){return(e=+e)==1?xv:function(t,n){return n-t?yv(t,n,e):_v(isNaN(t)?n:t)}}function xv(e,t){var n=t-e;return n?vv(e,n):_v(isNaN(e)?t:e)}var Sv=(function e(t){var n=bv(t);function r(e,t){var r=n((e=nv(e)).r,(t=nv(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=xv(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 Cv(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 wv(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Tv(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]=Pv(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 Ev(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function Dv(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function Ov(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]=Pv(e[i],t[i]):r[i]=t[i];return function(e){for(i in n)r[i]=n[i](e);return r}}var kv=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Av=new RegExp(kv.source,`g`);function jv(e){return function(){return e}}function Mv(e){return function(t){return e(t)+``}}function Nv(e,t){var n=kv.lastIndex=Av.lastIndex=0,r,i,a,o=-1,s=[],c=[];for(e+=``,t+=``;(r=kv.exec(e))&&(i=Av.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:Dv(r,i)})),n=Av.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?c[0]?Mv(c[0].x):jv(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 Pv(e,t){var n=typeof t,r;return t==null||n===`boolean`?_v(t):(n===`number`?Dv:n===`string`?(r=Q_(t))?(t=r,Sv):Nv:t instanceof Q_?Sv:t instanceof Date?Ev:wv(t)?Cv:Array.isArray(t)?Tv:typeof t.valueOf!=`function`&&typeof t.toString!=`function`||isNaN(t)?Ov:Dv)(e,t)}function Fv(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var Iv=180/Math.PI,Lv={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Rv(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)*Iv,skewX:Math.atan(c)*Iv,scaleX:o,scaleY:s}}var zv;function Bv(e){let t=new(typeof DOMMatrix==`function`?DOMMatrix:WebKitCSSMatrix)(e+``);return t.isIdentity?Lv:Rv(t.a,t.b,t.c,t.d,t.e,t.f)}function Vv(e){return e==null||(zv||=document.createElementNS(`http://www.w3.org/2000/svg`,`g`),zv.setAttribute(`transform`,e),!(e=zv.transform.baseVal.consolidate()))?Lv:(e=e.matrix,Rv(e.a,e.b,e.c,e.d,e.e,e.f))}function Hv(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:Dv(e,i)},{i:c-2,x:Dv(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:Dv(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:Dv(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:Dv(e,n)},{i:s-2,x:Dv(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 Uv=Hv(Bv,`px, `,`px)`,`deg)`),Wv=Hv(Vv,`, `,`)`,`)`),Gv=0,Kv=0,qv=0,Jv=1e3,Yv,Xv,Zv=0,Qv=0,$v=0,ey=typeof performance==`object`&&performance.now?performance:Date,ty=typeof window==`object`&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function ny(){return Qv||=(ty(ry),ey.now()+$v)}function ry(){Qv=0}function iy(){this._call=this._time=this._next=null}iy.prototype=ay.prototype={constructor:iy,restart:function(e,t,n){if(typeof e!=`function`)throw TypeError(`callback is not a function`);n=(n==null?ny():+n)+(t==null?0:+t),!this._next&&Xv!==this&&(Xv?Xv._next=this:Yv=this,Xv=this),this._call=e,this._time=n,uy()},stop:function(){this._call&&(this._call=null,this._time=1/0,uy())}};function ay(e,t,n){var r=new iy;return r.restart(e,t,n),r}function oy(){ny(),++Gv;for(var e=Yv,t;e;)(t=Qv-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Gv}function sy(){Qv=(Zv=ey.now())+$v,Gv=Kv=0;try{oy()}finally{Gv=0,ly(),Qv=0}}function cy(){var e=ey.now(),t=e-Zv;t>Jv&&($v-=t,Zv=e)}function ly(){for(var e,t=Yv,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:Yv=n);Xv=e,uy(r)}function uy(e){Gv||(Kv&&=clearTimeout(Kv),e-Qv>24?(e<1/0&&(Kv=setTimeout(sy,e-ey.now()-$v)),qv&&=clearInterval(qv)):(qv||=(Zv=ey.now(),setInterval(cy,Jv)),Gv=1,ty(sy)))}function dy(e,t,n){var r=new iy;return t=t==null?0:+t,r.restart(n=>{r.stop(),e(n+t)},t,n),r}var fy=Oh(`start`,`end`,`cancel`,`interrupt`),py=[];function my(e,t,n,r,i,a){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;vy(e,n,{name:t,index:r,group:i,on:fy,tween:py,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:0})}function hy(e,t){var n=_y(e,t);if(n.state>0)throw Error(`too late; already scheduled`);return n}function gy(e,t){var n=_y(e,t);if(n.state>3)throw Error(`too late; already running`);return n}function _y(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error(`transition not found`);return n}function vy(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=ay(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 dy(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(dy(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 yy(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 by(e){return this.each(function(){yy(this,e)})}function xy(e,t){var n,r;return function(){var i=gy(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 Sy(e,t,n){var r,i;if(typeof n!=`function`)throw Error();return function(){var a=gy(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 Cy(e,t){var n=this._id;if(e+=``,arguments.length<2){for(var r=_y(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?xy:Sy)(n,e,t))}function wy(e,t,n){var r=e._id;return e.each(function(){var e=gy(this,r);(e.value||={})[t]=n.apply(this,arguments)}),function(e){return _y(e,r).value[t]}}function Ty(e,t){var n;return(typeof t==`number`?Dv:t instanceof Q_?Sv:(n=Q_(t))?(t=n,Sv):Nv)(e,t)}function Ey(e){return function(){this.removeAttribute(e)}}function Dy(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Oy(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 ky(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 Ay(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 jy(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 My(e,t){var n=Ph(e),r=n===`transform`?Wv:Ty;return this.attrTween(e,typeof t==`function`?(n.local?jy:Ay)(n,r,wy(this,`attr.`+e,t)):t==null?(n.local?Dy:Ey)(n):(n.local?ky:Oy)(n,r,t))}function Ny(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function Py(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function Fy(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&Py(e,i)),n}return i._value=t,i}function Iy(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&Ny(e,i)),n}return i._value=t,i}function Ly(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=Ph(e);return this.tween(n,(r.local?Fy:Iy)(r,t))}function Ry(e,t){return function(){hy(this,e).delay=+t.apply(this,arguments)}}function zy(e,t){return t=+t,function(){hy(this,e).delay=t}}function By(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?Ry:zy)(t,e)):_y(this.node(),t).delay}function Vy(e,t){return function(){gy(this,e).duration=+t.apply(this,arguments)}}function Hy(e,t){return t=+t,function(){gy(this,e).duration=t}}function Uy(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?Vy:Hy)(t,e)):_y(this.node(),t).duration}function Wy(e,t){if(typeof t!=`function`)throw Error();return function(){gy(this,e).ease=t}}function Gy(e){var t=this._id;return arguments.length?this.each(Wy(t,e)):_y(this.node(),t).ease}function Ky(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!=`function`)throw Error();gy(this,e).ease=n}}function qy(e){if(typeof e!=`function`)throw Error();return this.each(Ky(this._id,e))}function Jy(e){typeof e!=`function`&&(e=Kh(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 Cb(r,this._parents,this._name,this._id)}function Yy(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 Cb(o,this._parents,this._name,this._id)}function Xy(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 Zy(e,t,n){var r,i,a=Xy(t)?hy:gy;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function Qy(e,t){var n=this._id;return arguments.length<2?_y(this.node(),n).on.on(e):this.each(Zy(n,e,t))}function $y(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function eb(){return this.on(`end.remove`,$y(this._id))}function tb(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=zh(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,my(l[f],t,n,f,l,_y(u,n)));return new Cb(a,this._parents,t,n)}function nb(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=Uh(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=_y(u,n),h=0,g=f.length;h<g;++h)(p=f[h])&&my(p,t,n,h,f,m);a.push(f),o.push(u)}return new Cb(a,o,t,n)}var rb=k_.prototype.constructor;function ib(){return new rb(this._groups,this._parents)}function ab(e,t){var n,r,i;return function(){var a=Ig(this,e),o=(this.style.removeProperty(e),Ig(this,e));return a===o?null:a===n&&o===r?i:i=t(n=a,r=o)}}function ob(e){return function(){this.style.removeProperty(e)}}function sb(e,t,n){var r,i=n+``,a;return function(){var o=Ig(this,e);return o===i?null:o===r?a:a=t(r=o,n)}}function cb(e,t,n){var r,i,a;return function(){var o=Ig(this,e),s=n(this),c=s+``;return s??(c=s=(this.style.removeProperty(e),Ig(this,e))),o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s))}}function lb(e,t){var n,r,i,a=`style.`+t,o=`end.`+a,s;return function(){var c=gy(this,e),l=c.on,u=c.value[a]==null?s||=ob(t):void 0;(l!==n||i!==u)&&(r=(n=l).copy()).on(o,i=u),c.on=r}}function ub(e,t,n){var r=(e+=``)==`transform`?Uv:Ty;return t==null?this.styleTween(e,ab(e,r)).on(`end.style.`+e,ob(e)):typeof t==`function`?this.styleTween(e,cb(e,r,wy(this,`style.`+e,t))).each(lb(this._id,e)):this.styleTween(e,sb(e,r,t),n).on(`end.style.`+e,null)}function db(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function fb(e,t,n){var r,i;function a(){var a=t.apply(this,arguments);return a!==i&&(r=(i=a)&&db(e,a,n)),r}return a._value=t,a}function pb(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,fb(e,t,n??``))}function mb(e){return function(){this.textContent=e}}function hb(e){return function(){var t=e(this);this.textContent=t??``}}function gb(e){return this.tween(`text`,typeof e==`function`?hb(wy(this,`text`,e)):mb(e==null?``:e+``))}function _b(e){return function(t){this.textContent=e.call(this,t)}}function vb(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&_b(r)),t}return r._value=e,r}function yb(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,vb(e))}function bb(){for(var e=this._name,t=this._id,n=Tb(),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=_y(c,t);my(c,e,n,l,o,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new Cb(r,this._parents,e,n)}function xb(){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=gy(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 Sb=0;function Cb(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function wb(e){return k_().transition(e)}function Tb(){return++Sb}var Eb=k_.prototype;Cb.prototype=wb.prototype={constructor:Cb,select:tb,selectAll:nb,selectChild:Eb.selectChild,selectChildren:Eb.selectChildren,filter:Jy,merge:Yy,selection:ib,transition:bb,call:Eb.call,nodes:Eb.nodes,node:Eb.node,size:Eb.size,empty:Eb.empty,each:Eb.each,on:Qy,attr:My,attrTween:Ly,style:ub,styleTween:pb,text:gb,textTween:yb,remove:eb,tween:Cy,delay:By,duration:Uy,ease:Gy,easeVarying:qy,end:xb,[Symbol.iterator]:Eb[Symbol.iterator]};function Db(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var Ob={time:null,delay:0,duration:250,ease:Db};function kb(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw Error(`transition ${t} not found`);return n}function Ab(e){var t,n;e instanceof Cb?(t=e._id,e=e._name):(t=Tb(),(n=Ob).time=ny(),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])&&my(c,e,t,l,o,n||kb(c,t));return new Cb(r,this._parents,e,t)}k_.prototype.interrupt=by,k_.prototype.transition=Ab;var{abs:jb,max:Mb,min:Nb}=Math;[`w`,`e`].map(Pb),[`n`,`s`].map(Pb),[`n`,`w`,`e`,`s`,`nw`,`ne`,`sw`,`se`].map(Pb);function Pb(e){return{type:e}}var Fb=Math.PI,Ib=2*Fb,Lb=1e-6,Rb=Ib-Lb;function zb(e){this._+=e[0];for(let t=1,n=e.length;t<n;++t)this._+=arguments[t]+e[t]}function Bb(e){let t=Math.floor(e);if(!(t>=0))throw Error(`invalid digits: ${e}`);if(t>15)return zb;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 Vb=class{constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._=``,this._append=e==null?zb:Bb(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>Lb)if(!(Math.abs(u*s-c*l)>Lb)||!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((Fb-Math.acos((m+d-h)/(2*g*_)))/2),y=v/_,b=v/g;Math.abs(y-1)>Lb&&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)>Lb||Math.abs(this._y1-l)>Lb)&&this._append`L${c},${l}`,n&&(d<0&&(d=d%Ib+Ib),d>Rb?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>Lb&&this._append`A${n},${n},0,${+(d>=Fb)},${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 Hb(){return new Vb}Hb.prototype=Vb.prototype;function Ub(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString(`en`).replace(/,/g,``):e.toString(10)}function Wb(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 Gb(e){return e=Wb(Math.abs(e)),e?e[1]:NaN}function Kb(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 qb(e){return function(t){return t.replace(/[0-9]/g,function(t){return e[+t]})}}var Jb=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Yb(e){if(!(t=Jb.exec(e)))throw Error(`invalid format: `+e);var t;return new Xb({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]})}Yb.prototype=Xb.prototype;function Xb(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+``}Xb.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 Zb(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 Qb;function $b(e,t){var n=Wb(e,t);if(!n)return Qb=void 0,e.toPrecision(t);var r=n[0],i=n[1],a=i-(Qb=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`)+Wb(e,Math.max(0,t+a-1))[0]}function ex(e,t){var n=Wb(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 tx={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+``,d:Ub,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)=>ex(e*100,t),r:ex,s:$b,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function nx(e){return e}var rx=Array.prototype.map,ix=[`y`,`z`,`a`,`f`,`p`,`n`,`µ`,`m`,``,`k`,`M`,`G`,`T`,`P`,`E`,`Z`,`Y`];function ax(e){var t=e.grouping===void 0||e.thousands===void 0?nx:Kb(rx.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?nx:qb(rx.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=Yb(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`):tx[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=tx[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=Zb(e)),w&&+e==0&&f!==`+`&&(w=!1),n=(w?f===`(`?f:s:f===`-`||f===`(`?``:f)+n,r=(y===`s`&&!isNaN(e)&&Qb!==void 0?ix[8+Qb/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(Gb(t)/3)))*3,r=10**-n,i=l((e=Yb(e),e.type=`f`,e),{suffix:ix[8+n/3]});return function(e){return i(r*e)}}return{format:l,formatPrefix:u}}var ox,sx,cx;lx({thousands:`,`,grouping:[3],currency:[`$`,``]});function lx(e){return ox=ax(e),sx=ox.format,cx=ox.formatPrefix,ox}function ux(e){return Math.max(0,-Gb(Math.abs(e)))}function dx(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Gb(t)/3)))*3-Gb(Math.abs(e)))}function fx(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Gb(t)-Gb(e))+1}function px(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 mx(){return this.eachAfter(px)}function hx(e,t){let n=-1;for(let r of this)e.call(t,r,++n,this);return this}function gx(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 _x(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 vx(e,t){let n=-1;for(let r of this)if(e.call(t,r,++n,this))return r}function yx(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 bx(e){return this.eachBefore(function(t){t.children&&t.children.sort(e)})}function xx(e){for(var t=this,n=Sx(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 Sx(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 Cx(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t}function wx(){return Array.from(this)}function Tx(){var e=[];return this.eachBefore(function(t){t.children||e.push(t)}),e}function Ex(){var e=this,t=[];return e.each(function(n){n!==e&&t.push({source:n.parent,target:n})}),t}function*Dx(){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 Ox(e,t){e instanceof Map?(e=[void 0,e],t===void 0&&(t=jx)):t===void 0&&(t=Ax);for(var n=new Px(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 Px(o[s])),a.parent=r,a.depth=r.depth+1;return n.eachBefore(Nx)}function kx(){return Ox(this).eachBefore(Mx)}function Ax(e){return e.children}function jx(e){return Array.isArray(e)?e[1]:null}function Mx(e){e.data.value!==void 0&&(e.value=e.data.value),e.data=e.data.data}function Nx(e){var t=0;do e.height=t;while((e=e.parent)&&e.height<++t)}function Px(e){this.data=e,this.depth=this.height=0,this.parent=null}Px.prototype=Ox.prototype={constructor:Px,count:mx,each:hx,eachAfter:_x,eachBefore:gx,find:vx,sum:yx,sort:bx,path:xx,ancestors:Cx,descendants:wx,leaves:Tx,links:Ex,copy:kx,[Symbol.iterator]:Dx};function Fx(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 Ix(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 Lx(){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(Fx),i}function a(e,t){return function(r){r.children&&Ix(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 Rx(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}function zx(e){return function(){return e}}function Bx(e){return+e}var Vx=[0,1];function Hx(e){return e}function Ux(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:zx(isNaN(t)?NaN:.5)}function Wx(e,t){var n;return e>t&&(n=e,e=t,t=n),function(n){return Math.max(e,Math.min(t,n))}}function Gx(e,t,n){var r=e[0],i=e[1],a=t[0],o=t[1];return i<r?(r=Ux(i,r),a=n(o,a)):(r=Ux(r,i),a=n(a,o)),function(e){return a(r(e))}}function Kx(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]=Ux(e[o],e[o+1]),a[o]=n(t[o],t[o+1]);return function(t){var n=vh(e,t,1,r)-1;return a[n](i[n](t))}}function qx(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function Jx(){var e=Vx,t=Vx,n=Pv,r,i,a,o=Hx,s,c,l;function u(){var n=Math.min(e.length,t.length);return o!==Hx&&(o=Wx(e[0],e[n-1])),s=n>2?Kx:Gx,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),Dv))(n)))},d.domain=function(t){return arguments.length?(e=Array.from(t,Bx),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=Fv,u()},d.clamp=function(e){return arguments.length?(o=e?!0:Hx,u()):o!==Hx},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 Yx(){return Jx()(Hx,Hx)}function Xx(e,t,n,r){var i=Th(e,t,n),a;switch(r=Yb(r??`,f`),r.type){case`s`:var o=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(a=dx(i,o))&&(r.precision=a),cx(r,o);case``:case`e`:case`g`:case`p`:case`r`:r.precision==null&&!isNaN(a=fx(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=a-(r.type===`e`));break;case`f`:case`%`:r.precision==null&&!isNaN(a=ux(i))&&(r.precision=a-(r.type===`%`)*2);break}return sx(r)}function Zx(e){var t=e.domain;return e.ticks=function(e){var n=t();return Ch(n[0],n[n.length-1],e??10)},e.tickFormat=function(e,n){var r=t();return Xx(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=wh(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 Qx(){var e=Yx();return e.copy=function(){return qx(e,Qx())},Rx.apply(e,arguments),Zx(e)}function $x(e){return function(){return e}}var eS=Math.abs,tS=Math.atan2,nS=Math.cos,rS=Math.max,iS=Math.min,aS=Math.sin,oS=Math.sqrt,sS=Math.PI,cS=sS/2,lS=2*sS;function uS(e){return e>1?0:e<-1?sS:Math.acos(e)}function dS(e){return e>=1?cS:e<=-1?-cS:Math.asin(e)}function fS(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 Vb(t)}function pS(e){return e.innerRadius}function mS(e){return e.outerRadius}function hS(e){return e.startAngle}function gS(e){return e.endAngle}function _S(e){return e&&e.padAngle}function vS(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 yS(e,t,n,r,i,a,o){var s=e-n,c=t-r,l=(o?a:-a)/oS(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)*oS(rS(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 bS(){var e=pS,t=mS,n=$x(0),r=null,i=hS,a=gS,o=_S,s=null,c=fS(l);function l(){var l,u,d=+e.apply(this,arguments),f=+t.apply(this,arguments),p=i.apply(this,arguments)-cS,m=a.apply(this,arguments)-cS,h=eS(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>lS-1e-12)s.moveTo(f*nS(p),f*aS(p)),s.arc(0,0,f,p,m,!g),d>1e-12&&(s.moveTo(d*nS(m),d*aS(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):oS(d*d+f*f)),T=iS(eS(f-d)/2,+n.apply(this,arguments)),E=T,D=T,O,k;if(w>1e-12){var A=dS(w/d*aS(C)),j=dS(w/f*aS(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*nS(_),N=f*aS(_),P=d*nS(b),F=d*aS(b);if(T>1e-12){var I=f*nS(v),L=f*aS(v),ee=d*nS(y),R=d*aS(y),z;if(h<sS)if(z=vS(M,N,ee,R,I,L,P,F)){var te=M-z[0],ne=N-z[1],re=I-z[0],B=L-z[1],ie=1/aS(uS((te*re+ne*B)/(oS(te*te+ne*ne)*oS(re*re+B*B)))/2),ae=oS(z[0]*z[0]+z[1]*z[1]);E=iS(T,(d-ae)/(ie-1)),D=iS(T,(f-ae)/(ie+1))}else E=D=0}S>1e-12?D>1e-12?(O=yS(ee,R,M,N,f,D,g),k=yS(I,L,P,F,f,D,g),s.moveTo(O.cx+O.x01,O.cy+O.y01),D<T?s.arc(O.cx,O.cy,D,tS(O.y01,O.x01),tS(k.y01,k.x01),!g):(s.arc(O.cx,O.cy,D,tS(O.y01,O.x01),tS(O.y11,O.x11),!g),s.arc(0,0,f,tS(O.cy+O.y11,O.cx+O.x11),tS(k.cy+k.y11,k.cx+k.x11),!g),s.arc(k.cx,k.cy,D,tS(k.y11,k.x11),tS(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=yS(P,F,I,L,d,-E,g),k=yS(M,N,ee,R,d,-E,g),s.lineTo(O.cx+O.x01,O.cy+O.y01),E<T?s.arc(O.cx,O.cy,E,tS(O.y01,O.x01),tS(k.y01,k.x01),!g):(s.arc(O.cx,O.cy,E,tS(O.y01,O.x01),tS(O.y11,O.x11),!g),s.arc(0,0,d,tS(O.cy+O.y11,O.cx+O.x11),tS(k.cy+k.y11,k.cx+k.x11),g),s.arc(k.cx,k.cy,E,tS(k.y11,k.x11),tS(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-sS/2;return[nS(r)*n,aS(r)*n]},l.innerRadius=function(t){return arguments.length?(e=typeof t==`function`?t:$x(+t),l):e},l.outerRadius=function(e){return arguments.length?(t=typeof e==`function`?e:$x(+e),l):t},l.cornerRadius=function(e){return arguments.length?(n=typeof e==`function`?e:$x(+e),l):n},l.padRadius=function(e){return arguments.length?(r=e==null?null:typeof e==`function`?e:$x(+e),l):r},l.startAngle=function(e){return arguments.length?(i=typeof e==`function`?e:$x(+e),l):i},l.endAngle=function(e){return arguments.length?(a=typeof e==`function`?e:$x(+e),l):a},l.padAngle=function(e){return arguments.length?(o=typeof e==`function`?e:$x(+e),l):o},l.context=function(e){return arguments.length?(s=e??null,l):s},l}function xS(e,t,n){this.k=e,this.x=t,this.y=n}xS.prototype={constructor:xS,scale:function(e){return e===1?this:new xS(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new xS(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 SS=new xS(1,0,0);CS.prototype=xS.prototype;function CS(e){for(;!e.__zoom;)if(!(e=e.parentNode))return SS;return e.__zoom}function wS(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{WILDCARD:TS,QUALIFIER:ES,LUCKY_LOSER:DS}=t.entryStatusConstants,OS=`text-anchor`,kS=`dominant-baseline`,AS=`fill-opacity`,jS=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 MS(e){let t=Math.floor(e.length/2),n=e.slice(0,t),r=e.slice(t).reverse();return[...n,...r]}function NS(e){if(e)switch(e){case TS:return`WC`;case ES:return`Q`;case DS:return`LL`;default:return e}}function PS(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:NS(e.entryStatus),nationalityCode:e.nationalityCode,matchUp:r,depth:t,value:1})}return n}function FS(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 IS(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}=FS(e,r);return{name:s||``,participantName:s,drawPosition:l?.drawPosition??c?.drawPosition,seedNumber:c?.seedNumber??l?.seedNumber,entryStatus:NS(c?.entryStatus)??l?.entryStatus,nationalityCode:c?.nationalityCode??l?.nationalityCode,scoreString:e.scoreString,matchUpStatus:e.matchUpStatus,matchUp:e,depth:n,children:o.length>0?o:void 0}})}function LS(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=MS(PS(r,n.length)),a=new Map;for(let e of i)e.participantName&&e.participantName!==`BYE`&&a.set(e.participantName,e);let o=IS(MS(r),i,n.length-1,a);for(let e=1;e<n.length;e++)o=IS(MS(t[n[e]]),o,n.length-1-e,a);return o.length===1?o[0]:{name:`Tournament`,depth:0,children:o}}function RS(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=Qx().domain([1,32]).range([`0`,`1`]);o=Qx().domain(Eh(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=Qx().domain(Eh(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=Qx().domain(Eh(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),RS(n,t)})}function zS(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 BS(e,t){let n=e.find(e=>e.data.participantName&&e.data.participantName!==t);return n?.data.participantName?n.data:void 0}function VS(e,t){let n=[e.participantName],r;if(t.children&&t.children.length>0)e.scoreString&&n.push(e.scoreString),r=BS(t.children,e.participantName),r&&n.push(r.participantName);else{let r=zS(e,t.depth);r&&n.push(r)}return{messageLines:n,opponentData:r}}function HS(e,t){return-(e*t/2)+t/2}function US(e,t,n){let r=j_(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 WS(e,t,n,r,i){let a=e.append(`text`).attr(`x`,t/2).attr(`y`,n/2).attr(OS,`middle`).attr(kS,`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(OS,`middle`).attr(kS,`middle`).attr(`font-size`,`${i}px`).style(`fill`,`var(--chc-text-secondary, #666)`).attr(`pointer-events`,`none`)}}function GS(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(OS,`middle`).attr(kS,`middle`).attr(`transform`,`translate(0, ${r*a})`).text(YS(n)))}function KS(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=LS(n),m=Ox(p,e=>e.children).sum(e=>e.value||0),h=Math.min(a,o)/2,g=h/2,_=e=>e*h/200;Lx().size([2*Math.PI,h-g])(m),RS(p,Qx().domain([0,n.drawSize||128]).range([0,1]));let v=m.descendants(),y=bS().startAngle(e=>e.x0).endAngle(e=>e.x1).innerRadius(e=>e.y0+g).outerRadius(e=>e.y1+g),{svg:b,g:x,flagsGroup:S,winningFlagsGroup:C,losingFlagsGroup:w}=US(e,a,o),T=new Set,E=e=>{e.nationalityCode&&T.add(e.nationalityCode),e.children&&e.children.forEach(E)};E(p);let D=Array.from(T),{centerText:O,centerText2:k}=WS(b,a,o,c,l);function A(){let e=wS(d,15);O.text(``),O.selectAll(`tspan`).remove(),k.text(``),k.selectAll(`tspan`).remove(),O.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;O.attr(`y`,o/2+t),O.style(`display`,`block`),k.style(`display`,`none`)}function j(){if(S.selectAll(`text`).remove(),C.selectAll(`text`).remove(),w.selectAll(`text`).remove(),D.length===0)return;let e=Qx().domain([0,D.length]).range([0,Math.PI*2]),t=_(20),n=g-t+10;S.selectAll(`text`).data(D).join(`text`).attr(`font-size`,`${t}px`).attr(OS,`middle`).attr(kS,`middle`).attr(`transform`,(t,r)=>{let i=e(r);return`translate(${Math.cos(i)*n}, ${Math.sin(i)*n})`}).text(e=>YS(e)).style(`cursor`,`pointer`).on(`mouseover`,function(e,t){let n=f[t]||t;O.selectAll(`tspan`).remove(),O.attr(`y`,o/2),O.text(n).style(`display`,`block`),k.selectAll(`tspan`).remove(),k.text(``).style(`display`,`none`),N||x.selectAll(`path`).attr(AS,e=>e.data.nationalityCode===t?.9:.3)}).on(`mouseout`,function(){N||x.selectAll(`path`).attr(AS,.8),A()})}j(),A();let M=i.eventHandlers?.clickCenter;M&&x.insert(`circle`,`:first-child`).attr(`r`,g).attr(`fill`,`transparent`).style(`cursor`,`pointer`).on(`click`,M);let N=!1,P;function F(e,t){let n=t.data;if(n.participantName){let{messageLines:e,opponentData:r}=VS(n,t);r&&(n.opponent=r),O.selectAll(`tspan`).remove(),O.text(``),O.selectAll(`tspan`).data(e).join(`tspan`).attr(`x`,a/2).attr(`dy`,(e,t)=>t===0?0:u).text(e=>e);let i=HS(e.length,u);O.attr(`y`,o/2+i),O.style(`display`,`block`),k.style(`display`,`none`)}N?n.participantName?.toLowerCase()!==P?.toLowerCase()&&j_(e.currentTarget).attr(AS,.9):x.selectAll(`path`).attr(AS,e=>e.data.participantName===t.data.participantName?.9:.3);let r=_(30),i=g-r-10,s={flagsGroup:S,winningFlagsGroup:C,losingFlagsGroup:w};GS(C,s,n.nationalityCode,-1,!0,i,r),n.opponent&&GS(w,s,n.opponent.nationalityCode,1,!1,i,r)}function I(e,t){if(N){let n=t.data.participantName?.toLowerCase()===P?.toLowerCase();j_(e.currentTarget).attr(AS,n?1:.2)}else x.selectAll(`path`).attr(AS,.8);j(),A()}let L=i.eventHandlers?.clickSegment;function ee(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,roundName:n.roundName,depth:n.depth,matchUp:n.matchUp})}let R=x.selectAll(`path`).data(v).join(`path`).attr(`d`,e=>y(e)).attr(`fill`,e=>e.data.color||`#ccc`).attr(AS,.8).attr(`stroke`,`#fff`).attr(`stroke-width`,1).on(`mouseover`,F).on(`mouseout`,I);L&&R.style(`cursor`,`pointer`).on(`click`,ee),R.append(`title`).text(e=>{let t=e.data;return t.participantName?`${t.participantName}\nDraw: ${t.drawPosition||`N/A`}`:`${t.name}\nDepth: ${e.depth}`});function z(e){let t=0;return N=!!e,P=e,x.selectAll(`path`).attr(AS,n=>e?n.data.participantName?.toLowerCase()===e.toLowerCase()?(t+=1,1):.2:.8),t}function te(e){b.style(`display`,e?`none`:`block`)}return{highlightPlayer:z,hide:te}}function qS(e={}){return{render:(t,n,r)=>KS(t,n,r,e)}}function JS(e){return e?.length===2?e&&String.fromCodePoint!==void 0?e.toUpperCase().replaceAll(/./g,e=>String.fromCodePoint((e.codePointAt(0)??0)+127397)):e:``}function YS(e){return JS(jS[e]||e)}var{LUCKY_LOSER:XS,WILDCARD:ZS,QUALIFIER:QS}=t.entryStatusConstants;function $S(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||[],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 eC={LL:XS,WC:ZS,Q:QS},tC=[`R128`,`R64`,`R32`,`R16`,`QF`,`SF`,`F`];function nC(e){let t=rC(e);if(t.length===0)return{drawSize:0,roundMatchUps:{}};let n=t[0].data,r=n.length,i=iC(n),a=aC(t,e),o={};o[1]=sC(n,a,t);for(let e=1;e<t.length;e++)o[e+1]=cC(e,t,a,i);return{drawSize:r,roundMatchUps:o}}function rC(e){let t=[],n=!1;for(let r of tC){let i=e[r];i&&i.length>0&&(n=!0),n&&i&&i.length>0&&t.push({key:r,data:i})}return t}function iC(e){let t=new Map;return e.forEach((e,n)=>{let r=lC(e.player);r&&r!==`BYE`&&t.set(r,{drawPosition:e.Draw??n+1,country:e.country,seed:e.seed,entry:e.entry})}),t}function aC(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=lC(e.player);t&&a.add(t)}n.set(e[r].key,a)}return n}function oC(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 sC(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=lC(a?.player),c=lC(o?.player),l=s===`BYE`||c===`BYE`,u=oC(s,c,i),d;if(!l&&n.length>1){let e=n[1].data,t=u===1?s:c;d=e.find(e=>lC(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],scoreString:d,sides:[dC(1,a,t+1),dC(2,o,t+2)]})}return r}function cC(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=lC(t?.player),l=lC(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],scoreString:d,sides:[fC(1,t,r),fC(2,n,r)]})}return s}function lC(e){if(!e)return``;let t=e.trim();return t.toUpperCase()===`BYE`?`BYE`:t}function uC(e){if(e)return eC[e.toUpperCase()]||e}function dC(e,t,n){if(!t)return{sideNumber:e,drawPosition:n};let r=lC(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:uC(t.entry)}}function fC(e,t,n){if(!t)return{sideNumber:e,drawPosition:0};let r=lC(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:uC(t.entry||i?.entry)}}var pC=`right`,mC=`font-medium`;function hC({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===pC&&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`);z(t.onClick)&&(d.onclick=t.onClick),d.style.cssText=`margin-right: 1em`,d.innerHTML=t.label,u.appendChild(d);let f=document.createElement(`span`);z(t.onClick)&&(f.onclick=t.onClick),f.innerHTML=`
|
|
215
215
|
<span class="icon is-small font-medium">
|
|
216
216
|
<i class="fas fa-angle-down font-medium" aria-hidden="true"></i>
|
|
217
217
|
</span>
|
|
218
|
-
`,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=mC;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(),z(e.onClick)&&(z(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`,mC),t.innerHTML=e.heading,m.appendChild(t)}else if(e.divider){let e=document.createElement(`hr`);e.classList.add(`dropdown-divider`,mC),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 gC=`left`;function _C(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:`
|
|
218
|
+
`,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=mC;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(),z(e.onClick)&&(z(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`,mC),t.innerHTML=e.heading,m.appendChild(t)}else if(e.divider){let e=document.createElement(`hr`);e.classList.add(`dropdown-divider`,mC),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 gC=`left`;function _C(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
219
|
<div style='min-height: 420px'>
|
|
220
220
|
<div id='${s}'></div>
|
|
221
221
|
<div id='${c}'></div>
|
|
@@ -318,4 +318,4 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
318
318
|
</div>
|
|
319
319
|
</div>
|
|
320
320
|
`}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();NO({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);NO({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 IO(e,t){let n=new FO(e);return n.render(t),n}var{LUCKY_DRAW:LO,ROUND_ROBIN:RO,AD_HOC:zO}=t.drawDefinitionConstants;function BO(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 VO(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 HO(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 UO(e){let t=Math.max(2,e);return t&t-1?HO(e).length:Math.ceil(Math.log2(t))}function WO(e,t){let n=Math.max(2,e);if(!(n&n-1))return Math.floor(n/2**t);let r=HO(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 GO(e,t,n){return e===RO?(n?.groupSize||Math.min(t,4))-1:e===zO?n?.roundsCount||1:e===LO?UO(t):VO(t)}function KO(e,t,n){return e===LO?WO(t,n):Math.floor(t/2**n)}var{ROUND_ROBIN:qO,AD_HOC:JO,LUCKY_DRAW:YO}=t.drawDefinitionConstants,XO=0;function ZO({structureType:e,drawSize:t,stage:n,structureId:r,qualifyingPositions:i,structureOptions:a}){return e===qO?$O({drawSize:t,stage:n,structureId:r,structureOptions:a}):e===JO?tk({drawSize:t,stage:n,structureId:r,roundsCount:a?.roundsCount||1}):e===YO?ek({drawSize:t,stage:n,structureId:r}):QO({drawSize:t,stage:n,structureId:r,qualifyingPositions:i})}function QO({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-${++XO}`,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 $O({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-${++XO}`,roundNumber:r,roundPosition:e*o+a,isRoundRobin:!0,stage:t,structureId:`${n}-g${e}`})}return i}function ek({drawSize:e,stage:t,structureId:n}){let r=Math.max(2,e);if(!(r&r-1))return QO({drawSize:e,stage:t,structureId:n});let i=HO(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-${++XO}`,roundNumber:u,roundPosition:r,drawPositions:i?[s++,s++]:[],finishingRound:a-e,roundFactor:1,preFeedRound:!!c,stage:t,structureId:n})}}return o}function tk({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-${++XO}`,roundNumber:e,roundPosition:r,finishingRound:1,stage:t,structureId:n});return i}var{ROUND_ROBIN:nk}=t.drawDefinitionConstants,rk=new Map;function ik(e,n,r){let i=`${e}:${n}:${r||``}`,a=rk.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 ak(i,{});let c=(s.structures||[])[0];if(!c)return ak(i,{});let l=c.structureType===`CONTAINER`,u={};if(l||e===nk){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 ak(i,u)}catch{return ak(i,{})}}function ak(e,t){return rk.set(e,t),t}var{MAIN:ok,QUALIFYING:sk,CONSOLATION:ck,PLAY_OFF:lk,ROUND_ROBIN:uk,AD_HOC:dk,LUCKY_DRAW:fk,WINNER:pk,LOSER:mk}=t.drawDefinitionConstants,hk=240,gk=48,_k=16;function vk(e){if(e.structureType===uk)return(e.structureOptions?.groupSize||Math.min(e.drawSize,4))-1;if(e.structureType===dk)return e.structureOptions?.roundsCount||1;if(e.structureType===fk)return UO(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 yk(e){let t=vk(e);return Math.max(hk,t*gk+_k)}var bk={[ok]:`tb-card-badge--main`,[sk]:`tb-card-badge--qualifying`,[ck]:`tb-card-badge--consolation`,[lk]:`tb-card-badge--playoff`};function xk(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=`${yk(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 ${bk[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||ZO({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=ui({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===mk)||r.find(e=>e.linkType===pk)||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=ik(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 Sk(e,t){let n=yk(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:Ck,QUALIFYING:wk,CONSOLATION:Tk,WINNER:Ek,LOSER:Dk,ROUND_ROBIN:Ok}=t.drawDefinitionConstants,kk=`POSITION`,Ak=0;function jk(e){return`${e}-${++Ak}-${Date.now().toString(36)}`}function Mk(e){let t=2;for(;t*2<=e;)t*=2;return t}var Nk=160,Pk=60,Fk=30,Ik=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:jk(`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===Ek&&this.state.edges.find(t=>t.sourceNodeId===e.sourceNodeId&&t.linkType===Ek))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===Ok&&e.linkType!==kk||t?.stage===wk&&n&&n.stage!==wk&&n.stage!==Ck||n?.stage===wk&&t&&t.stage!==wk)return null;let r={...e,id:jk(`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!==Tk)return;let n=this.inboundCapacity(e);n>0&&t.drawSize>n&&(t.drawSize=Mk(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===Dk){let r=e.sourceRoundNumber||1;n+=KO(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+yk(t));return{x:e+Pk,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===Ck);i.push(...t.length?t:[e[0]])}let a=new Map,o=new Set(e.filter(e=>e.stage===wk).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=>yk(e)));t.forEach((e,t)=>{e.position={x:p,y:t*(Nk+Fk)+40}}),p+=n+Pk}}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:Lk,LOSER:Rk,QUALIFYING:zk,CONSOLATION:Bk,ROUND_ROBIN:Vk}=t.drawDefinitionConstants,Hk=`POSITION`,Uk=e=>e===Vk;function Wk(e,t){if(!Uk(e.structureType))return;let n=t.edges.filter(t=>t.sourceNodeId===e.id&&t.linkType===Hk);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 Gk=`http://www.w3.org/2000/svg`,Kk={[Lk]:`tb-edge--winner`,[Rk]:`tb-edge--loser`,[Hk]:`tb-edge--position`};function qk(e){let t=document.createElement(`div`);t.className=`tb-canvas`;let n=document.createElementNS(Gk,`svg`);n.classList.add(`tb-canvas-svg`);let r=document.createElementNS(Gk,`defs`);for(let[e,t]of Object.entries(Kk)){let n=document.createElementNS(Gk,`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(Gk,`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===Lk).map(e=>e.sourceNodeId).filter(t=>{let n=e.nodes.find(e=>e.id===t);return n&&n.stage===zk&&!Uk(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===Lk){let t=e.nodes.find(e=>e.id===n.sourceNodeId);t&&(r=vk(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!==Lk)continue;let r=n.targetRoundNumber||1;if(r<=1)continue;let i=e.nodes.find(e=>e.id===n.sourceNodeId);if(!i||i.stage!==zk)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=BO(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(!Uk(n.structureType))continue;let r=e.edges.filter(e=>e.sourceNodeId===n.id&&e.linkType===Hk);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&&Uk(e.structureType)?Hk:n===`loser`||t?.stage===Bk?Rk:Lk}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=Sk(i,r),s=document.createElementNS(Gk,`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=xk(n,c,e.selectedNodeId===n.id,t.has(n.id),r.get(n.id),o.get(n.id),Wk(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+yk(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=Sk(a,n.linkType===Rk?`loser`:`winner`),c=Sk(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(Gk,`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(Gk,`path`);if(m.setAttribute(`d`,f),m.classList.add(Kk[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(Gk,`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:Jk,ROUND_ROBIN:Yk,FEED_IN:Xk,FEED_IN_CHAMPIONSHIP:Zk,FIRST_MATCH_LOSER_CONSOLATION:Qk,COMPASS:$k,OLYMPIC:eA,AD_HOC:tA,LUCKY_DRAW:nA,MAIN:rA,QUALIFYING:iA,CONSOLATION:aA,PLAY_OFF:oA,WINNER:sA}=t.drawDefinitionConstants,cA=`POSITION`,lA=[{label:`Single Elimination`,value:Jk},{label:`Round Robin`,value:Yk},{label:`Feed-In Championship`,value:Zk},{label:`FMLC`,value:Qk},{label:`Compass`,value:$k},{label:`Olympic`,value:eA},{label:`Ad-hoc`,value:tA}],uA=[{label:`Single Elimination`,value:Jk},{label:`Round Robin`,value:Yk},{label:`Lucky Draw`,value:nA},{label:`Staggered Entry`,value:Xk},{label:`Ad-hoc`,value:tA}],dA=[{label:`Main`,value:rA},{label:`Qualifying`,value:iA},{label:`Consolation`,value:aA},{label:`Playoff`,value:oA}];function fA(e){let t=[],n=Math.floor(e/2);for(;n>=1;)t.push(n),n=Math.floor(n/2);return t}function pA(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 mA(e,t,n,r,i,a){let o=pA(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===cA),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&&hA(u,t,l,i)}function hA(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(`
|
|
321
|
-
`),disabled:!0})}function gA(e,t,n,r,i,a){let o=t.edges.find(t=>t.targetNodeId===e.id&&t.linkType===cA);if(!o||t.nodes.find(e=>e.id===o.sourceNodeId)?.structureType!==Yk)return;let s=e.structureOptions?.playoffDrawType||Jk;if(i.push({label:`Playoff Draw Type`,field:`playoffDrawType`,value:s,disabled:n,options:lA.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===Yk){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 _A(e,t,n,r,i){let a=fA(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 vA(e,t,n){let r=BO(e.drawSize),i=new Map,a=[];for(let n of t.edges){if(n.linkType!==sA||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!==iA)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 yA(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:nh(1),error:`Name required`}},{label:`Stage`,field:`stage`,value:i.stage,disabled:n,options:dA.map(e=>({...e,selected:e.value===i.stage}))},{label:`Structure Type`,field:`structureType`,value:i.structureType,disabled:n,options:uA.map(e=>({...e,selected:e.value===i.structureType}))},{label:i.stage===rA?`Draw Size`:`Structure Size`,field:`drawSize`,type:`number`,value:String(i.drawSize),...n?{disabled:!0}:i.structureType===tA?{validator:ih(0,256),error:`Must be 0-256`}:{validator:ih(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===tA?0:2))return;let r={drawSize:n};if(i.structureType===Yk){let e=i.structureOptions?.groupSize||4,t=pA(n);!t.includes(e)&&t.length>0&&(r.structureOptions={...i.structureOptions,groupSize:t[0]})}e.onUpdateNode(i.id,r)}}];i.structureType===Yk&&mA(i,r,n,e,s,c),i.stage===oA&&gA(i,r,n,e,s,c),i.stage===iA&&_A(i,n,e,s,c),di(o,s,c);let l=document.createElement(`div`);l.className=`field font-medium`,l.style.cssText=`flex-grow: 1`;let u=document.createElement(`label`);u.style.cssText=`font-weight: bold; font-size: larger;`,u.textContent=`MatchUp Format`,l.appendChild(u);let d=document.createElement(`div`);if(d.className=`tb-format-trigger`,d.textContent=i.matchUpFormat||`Not set`,n?(d.style.cursor=`default`,d.style.opacity=`0.7`):d.onclick=()=>{wa({existingMatchUpFormat:i.matchUpFormat,callback:t=>{e.onUpdateNode(i.id,{matchUpFormat:t||void 0}),d.textContent=t||`Not set`}})},l.appendChild(d),o.appendChild(l),vA(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:bA,LOSER:xA,TOP_DOWN:SA,BOTTOM_UP:CA,QUALIFYING:wA,ROUND_ROBIN:TA}=t.drawDefinitionConstants,EA=`POSITION`,DA=`ALTERNATING`,OA=e=>e===TA,kA=[{label:`Winner`,value:bA},{label:`Loser`,value:xA},{label:`Position`,value:EA}],AA=[{label:`Top-Down`,value:SA},{label:`Bottom-Up`,value:CA},{label:`Alternating`,value:DA}];function jA(e){let t=document.createElement(`div`),n=!!e.readOnly;function r(t,r,i,a,o,s){let c=[],l=[],u=r?ik(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===EA),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===bA&&s?.stage===wA,p=s?GO(s.structureType,s.drawSize,s.structureOptions):8,m=c?GO(c.structureType,c.drawSize,c.structureOptions):8,h=o.linkType===EA&&s&&OA(s.structureType),g=[{label:`Link Type`,field:`linkType`,value:o.linkType,disabled:n,options:kA.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===xA&&(g.push({label:`Feed Profile`,field:`feedProfile`,value:o.feedProfile||SA,disabled:n,options:AA.map(e=>({...e,selected:e.value===(o.feedProfile||SA)}))}),n||_.push({control:`feedProfile`,onChange:({e:t})=>e.onUpdateEdge(o.id,{feedProfile:t.target.value})})),o.linkType===EA&&!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})}})),di(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:MA,QUALIFYING:NA,CONSOLATION:PA,WINNER:FA,LOSER:IA,SINGLE_ELIMINATION:LA,ROUND_ROBIN:RA,AD_HOC:zA}=t.drawDefinitionConstants,BA=`POSITION`;function VA(e){let t=[],n=HA(e,t);return WA(e,UA(e),t),GA(e,t),KA(e,t),qA(e,t),JA(e,n,t),YA(e,t),XA(e,t),QA(e,t),$A(e,t),ej(e)&&t.push({severity:`error`,message:`Circular dependency detected between structures`}),t}function HA(e,t){let n=e.nodes.filter(e=>e.stage===MA);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 UA(e){let t=new Set;for(let n of e.edges)n.linkType===FA&&(n.targetRoundNumber||1)>1&&e.nodes.find(e=>e.id===n.sourceNodeId)?.stage===NA&&t.add(n.targetNodeId);let n=new Map;for(let t of e.edges)t.linkType===IA&&n.set(t.targetNodeId,(n.get(t.targetNodeId)||0)+1);for(let[e,r]of n)r>1&&t.add(e);return t}function WA(e,t,n){for(let r of e.nodes){if(r.structureType===LA&&!t.has(r.id)){let t=e.edges.some(e=>e.targetNodeId===r.id);(r.stage===MA||r.stage===NA)&&!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===zA?0:2;r.drawSize<i&&n.push({message:`"${r.structureName}" draw size must be at least ${i}`,severity:`error`,nodeId:r.id})}}function GA(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=GO(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=GO(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 KA(e,t){let n=new Map;for(let t of e.edges)t.linkType===FA&&(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 qA(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 JA(e,t,n){let r=e.nodes.filter(e=>e.stage===NA);for(let i of r){let r=e.edges.find(e=>e.sourceNodeId===i.id&&e.linkType===FA&&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 YA(e,t){let n=new Map;for(let t of e.edges){if(t.linkType!==FA)continue;let r=t.targetRoundNumber||1;if(r<=1)continue;let i=e.nodes.find(e=>e.id===t.sourceNodeId);if(!i||i.stage!==NA)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=BO(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 XA(e,t){for(let n of e.edges){if(n.linkType!==IA)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=KO(r.structureType,r.drawSize,a),c=BO(i.drawSize);o!==1&&ZA(c,o,s,r,i,a,n.id,t)}}function ZA(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 QA(e,t){let n=e.nodes.filter(e=>e.stage===PA);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===IA){let e=t.sourceRoundNumber||1;i+=KO(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 $A(e,t){let n=new Map;for(let r of e.edges){if(r.linkType!==BA)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===RA){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 ej(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:tj,QUALIFYING:nj,CONSOLATION:rj,PLAY_OFF:ij,LUCKY_DRAW:aj}=t.drawDefinitionConstants;function oj(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=VA(s);if(o.innerHTML=``,e.length===0){o.style.display=`block`;let e=document.createElement(`div`);e.className=`tb-validation-item`,e.innerHTML=`<span style="color:var(--chc-status-success)">✓ Valid topology</span>`,o.appendChild(e)}else{o.style.display=`block`;for(let t of e){let e=document.createElement(`div`);e.className=`tb-validation-item`;let n=document.createElement(`span`);n.className=`tb-validation-icon tb-validation-icon--${t.severity}`,n.textContent=t.severity===`error`?`!`:`?`;let r=document.createElement(`span`);r.textContent=t.message,e.appendChild(n),e.appendChild(r),o.appendChild(e)}}setTimeout(()=>{o.style.display=`none`},5e3)},l=[];if(!n.readOnly){let t=[{label:`Main`,value:tj,onClick:()=>e.onAddStructure(tj),close:!0},{label:`Lucky Draw`,value:aj,onClick:()=>e.onAddStructure(tj,aj),close:!0},{label:`Qualifying`,value:nj,onClick:()=>e.onAddStructure(nj),close:!0},{label:`Consolation`,value:rj,onClick:()=>e.onAddStructure(rj),close:!0},{label:`Playoff`,value:ij,onClick:()=>e.onAddStructure(ij),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()}),RC({target:a,items:l});function u(e){s=e}return{element:r,update:u}}function sj({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:cj,FEED_IN:lj,ROUND_ROBIN:uj,LUCKY_DRAW:dj,MAIN:fj,QUALIFYING:pj,CONSOLATION:mj,PLAY_OFF:hj}=t.drawDefinitionConstants,gj=`WINNER`,_j=`LOSER`,vj=`POSITION`,yj=`tpl-edge-1`,bj=`tpl-edge-2`,xj=`tpl-edge-3`,Sj=`tpl-edge-4`,Cj=`tpl-edge-5`,wj=`tpl-edge-6`,Tj=`tpl-edge-7`,Ej=`R1 losers → R1`,Dj=[{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:fj,structureType:cj,drawSize:32,position:{x:320,y:40}},{id:`tpl-qual`,structureName:`Qualifying`,stage:pj,structureType:cj,drawSize:16,qualifyingPositions:4,position:{x:40,y:40}}],edges:[{id:yj,sourceNodeId:`tpl-qual`,targetNodeId:`tpl-main`,linkType:gj,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:fj,structureType:cj,drawSize:32,position:{x:40,y:40}},{id:`tpl-cons`,structureName:`Consolation`,stage:mj,structureType:cj,drawSize:16,position:{x:320,y:40}}],edges:[{id:yj,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:_j,sourceRoundNumber:1,targetRoundNumber:1,label:Ej}]}},{name:`Feed-In Championship (FIC)`,description:`Main draw with multi-round fed consolation`,state:{drawName:`FIC`,nodes:[{id:`tpl-main`,structureName:`Main Draw`,stage:fj,structureType:cj,drawSize:32,position:{x:40,y:40}},{id:`tpl-cons`,structureName:`Consolation`,stage:mj,structureType:lj,drawSize:31,position:{x:460,y:40}}],edges:[{id:yj,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:_j,sourceRoundNumber:1,targetRoundNumber:1,label:Ej},{id:bj,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:_j,sourceRoundNumber:2,targetRoundNumber:2,label:`R2 losers → R2`},{id:xj,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:_j,sourceRoundNumber:3,targetRoundNumber:4,label:`R3 losers → R4`},{id:Sj,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:_j,sourceRoundNumber:4,targetRoundNumber:6,label:`R4 losers → R6`},{id:Cj,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:_j,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:fj,structureType:cj,drawSize:32,position:{x:40,y:40}},{id:`tpl-west`,structureName:`West`,stage:mj,structureType:cj,drawSize:16,position:{x:400,y:40}},{id:`tpl-north`,structureName:`North`,stage:mj,structureType:cj,drawSize:8,position:{x:400,y:210}},{id:`tpl-ne`,structureName:`Northeast`,stage:mj,structureType:cj,drawSize:4,position:{x:400,y:380}},{id:`tpl-south`,structureName:`South`,stage:mj,structureType:cj,drawSize:8,position:{x:680,y:40}},{id:`tpl-sw`,structureName:`Southwest`,stage:mj,structureType:cj,drawSize:4,position:{x:680,y:210}},{id:`tpl-nw`,structureName:`Northwest`,stage:mj,structureType:cj,drawSize:4,position:{x:680,y:380}},{id:`tpl-se`,structureName:`Southeast`,stage:mj,structureType:cj,drawSize:4,position:{x:960,y:40}}],edges:[{id:yj,sourceNodeId:`tpl-east`,targetNodeId:`tpl-west`,linkType:_j,sourceRoundNumber:1,targetRoundNumber:1,label:Ej},{id:bj,sourceNodeId:`tpl-east`,targetNodeId:`tpl-north`,linkType:_j,sourceRoundNumber:2,targetRoundNumber:1,label:`R2 losers → R1`},{id:xj,sourceNodeId:`tpl-east`,targetNodeId:`tpl-ne`,linkType:_j,sourceRoundNumber:3,targetRoundNumber:1,label:`R3 losers → R1`},{id:Sj,sourceNodeId:`tpl-west`,targetNodeId:`tpl-south`,linkType:_j,sourceRoundNumber:1,targetRoundNumber:1,label:Ej},{id:Cj,sourceNodeId:`tpl-west`,targetNodeId:`tpl-sw`,linkType:_j,sourceRoundNumber:2,targetRoundNumber:1,label:`R2 losers → R1`},{id:wj,sourceNodeId:`tpl-north`,targetNodeId:`tpl-nw`,linkType:_j,sourceRoundNumber:1,targetRoundNumber:1,label:Ej},{id:Tj,sourceNodeId:`tpl-south`,targetNodeId:`tpl-se`,linkType:_j,sourceRoundNumber:1,targetRoundNumber:1,label:Ej}]}},{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:fj,structureType:uj,drawSize:16,structureOptions:{groupSize:4},position:{x:40,y:40}},{id:`tpl-playoff-gold`,structureName:`Gold Flight`,stage:hj,structureType:cj,drawSize:8,position:{x:320,y:40}},{id:`tpl-playoff-silver`,structureName:`Silver Flight`,stage:hj,structureType:cj,drawSize:8,position:{x:320,y:220}}],edges:[{id:yj,sourceNodeId:`tpl-main`,targetNodeId:`tpl-playoff-gold`,linkType:vj,finishingPositions:[1,2],label:`positions 1,2`},{id:bj,sourceNodeId:`tpl-main`,targetNodeId:`tpl-playoff-silver`,linkType:vj,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:fj,structureType:dj,drawSize:11,position:{x:40,y:40}},{id:`tpl-cons`,structureName:`Consolation`,stage:mj,structureType:cj,drawSize:4,position:{x:340,y:40}}],edges:[{id:yj,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:_j,sourceRoundNumber:1,targetRoundNumber:1,label:Ej}]}},{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:fj,structureType:dj,drawSize:25,position:{x:40,y:40}},{id:`tpl-cons-rr`,structureName:`Consolation RR`,stage:mj,structureType:uj,drawSize:12,structureOptions:{groupSize:4},position:{x:500,y:40}}],edges:[{id:yj,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons-rr`,linkType:_j,sourceRoundNumber:1,targetRoundNumber:1,label:Ej}]}},{name:`Adaptive (drawSize 11)`,description:`Compass-like multi-structure topology with lucky draw structures`,state:{drawName:`Adaptive`,nodes:[{id:`tpl-east`,structureName:`East`,stage:fj,structureType:dj,drawSize:11,position:{x:40,y:40}},{id:`tpl-west`,structureName:`West`,stage:mj,structureType:dj,drawSize:6,position:{x:340,y:40}},{id:`tpl-north`,structureName:`North`,stage:mj,structureType:cj,drawSize:2,position:{x:340,y:250}},{id:`tpl-south`,structureName:`South`,stage:mj,structureType:cj,drawSize:2,position:{x:600,y:40}}],edges:[{id:yj,sourceNodeId:`tpl-east`,targetNodeId:`tpl-west`,linkType:_j,sourceRoundNumber:1,targetRoundNumber:1,label:`R1 losers → R1 (6 losers)`},{id:bj,sourceNodeId:`tpl-east`,targetNodeId:`tpl-north`,linkType:_j,sourceRoundNumber:2,targetRoundNumber:1,label:`R2 losers → R1 (2 losers)`},{id:xj,sourceNodeId:`tpl-west`,targetNodeId:`tpl-south`,linkType:_j,sourceRoundNumber:1,targetRoundNumber:1,label:`R1 losers → R1 (2 losers)`}]}}],{MAIN:Oj,QUALIFYING:kj,CONSOLATION:Aj,PLAY_OFF:jj,SINGLE_ELIMINATION:Mj,LUCKY_DRAW:Nj,WINNER:Pj,LOSER:Fj}=t.drawDefinitionConstants,Ij=`POSITION`,Lj=class{constructor(e={}){this.config=e,this.store=new Ik(e.initialState);let t=[...Dj,...e.templates||[]],n=!!e.readOnly,r=this.buildToolbarPanel(t,n),i=this.buildCanvasPanel(n),a=yA({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=jA({onUpdateEdge:n?()=>{}:(e,t)=>this.store.updateEdge(e,t),onDeleteEdge:n?()=>{}:e=>this.store.removeEdge(e),readOnly:n});this.layout=sj({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 oj({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 qk({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===Ij){let i=this.store.getState().edges.filter(t=>t.sourceNodeId===e&&t.linkType===Ij),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===Fj){let i=this.store.getState().edges.filter(t=>t.sourceNodeId===e&&t.linkType===Fj),a=new Set(i.map(e=>e.sourceRoundNumber)),o=r?GO(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===Pj&&r?.stage===kj;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===Nj,r=this.store.getState().nodes.filter(t=>t.stage===e).length,i={[Oj]:n?`Lucky Draw`:`Main Draw`,[kj]:`Qualifying ${r+1}`,[Aj]:`Consolation`,[jj]:`Playoff ${r+1}`},a={[Oj]:n?11:32,[kj]:16,[Aj]:16,[jj]:4}[e]||16,o=this.store.addNode({structureName:i[e]||e,stage:e,structureType:t||Mj,drawSize:a,...e===kj&&{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+yk(e)+40;n>t.scrollLeft+t.clientWidth&&t.scrollTo({left:n-t.clientWidth,behavior:`smooth`})})}handleGenerate(){let e=this.store.getState(),t=VA(e);t.some(e=>e.severity===`error`)&&console.warn(`Topology validation errors:`,t),this.config.onGenerate&&this.config.onGenerate(e)}},{MAIN:Rj,CONSOLATION:zj,QUALIFYING:Bj,PLAY_OFF:Vj,SINGLE_ELIMINATION:Hj,FEED_IN:Uj,FIRST_MATCH_LOSER_CONSOLATION:Wj,FEED_IN_CHAMPIONSHIP:Gj,COMPASS:Kj,WINNER:qj,LOSER:Jj,ROUND_ROBIN:Yj,AD_HOC:Xj,LUCKY_DRAW:Zj}=t.drawDefinitionConstants,Qj=`POSITION`;function $j(e,t){let n=e.nodes.filter(e=>e.stage===zj),r=e.nodes.filter(e=>e.stage===Bj),i=e.nodes.filter(e=>e.stage===Vj);if(t.structureType===Yj)return e.edges.some(n=>n.sourceNodeId===t.id&&n.linkType===Qj&&e.nodes.some(e=>e.id===n.targetNodeId&&e.stage===Vj))?`ROUND_ROBIN_WITH_PLAYOFF`:Yj;if(t.structureType===Xj)return Xj;if(t.structureType===Uj)return Uj;if(t.structureType===Zj)return Zj;if(n.length===7&&r.length===0&&i.length===0){let n=e.edges.filter(e=>e.linkType===Jj&&e.sourceNodeId===t.id),r=new Set(n.map(e=>e.sourceRoundNumber));if(r.has(1)&&r.has(2)&&r.has(3))return Kj}if(n.length===1&&r.length===0&&i.length===0){let r=n[0],i=e.edges.filter(e=>e.linkType===Jj&&e.sourceNodeId===t.id&&e.targetNodeId===r.id);if(r.structureType===Uj||i.length>1)return Gj;if(i.length===1&&i[0].sourceRoundNumber===1)return Wj}return Hj}function eM(e){let t=e.nodes.find(e=>e.stage===Rj);if(!t)throw Error(`No main structure node found`);let n=e.nodes.filter(e=>e.stage===Bj),r=e.nodes.filter(e=>e.stage===Vj),i=$j(e,t);i===Hj&&!aM(t.drawSize)&&(i=Uj);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&&rM(a,n,e.edges);let o=[];return tM(e,t,i,o),nM(e,t,r,a),{drawOptions:a,postGenerationMethods:o}}function tM(e,t,n,r){let i=e.nodes.filter(e=>e.stage===zj),a=e.edges.filter(e=>e.linkType===Jj&&e.sourceNodeId===t.id&&i.some(t=>t.id===e.targetNodeId)),o=[Wj,Gj,Kj];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 nM(e,t,n,r){let i=t.structureType===Yj,a=i?e.edges.filter(e=>e.sourceNodeId===t.id&&e.linkType===Qj&&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||Hj,s={finishingPositions:a,structureName:e.structureName,drawType:o};o===Yj&&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=iM(t.id,n,e.edges);i&&(r.withPlayoffs=i)}}function rM(e,t,n){let r=n.filter(e=>e.linkType===qj&&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 iM(e,t,n){let r=n.filter(n=>n.sourceNodeId===e&&n.linkType===Jj&&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=iM(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 aM(e){return e>0&&(e&e-1)==0}var{MAIN:oM}=t.drawDefinitionConstants,sM=()=>`spl-layout`,cM=()=>`spl-left`,lM=()=>`spl-toggle`,uM=()=>`spl-center`,dM=()=>`spl-center-header`,fM=()=>`spl-center-title`,pM=()=>`spl-center-meta`,mM=()=>`spl-grid-slot`,hM=()=>`spl-right`,gM=()=>`spl-matchup-card`,_M=()=>`spl-card-title`,vM=()=>`spl-card-sides`,yM=()=>`spl-card-meta`,bM=()=>`spl-card-chips`,xM=()=>`spl-card-chip`,SM=()=>`sp-panel`,CM=()=>`sp-panel-header`,wM=()=>`sp-panel-title`,TM=()=>`sp-panel-meta`,EM=()=>`sp-date-strip`,DM=()=>`sp-date-chip`,OM=()=>`sp-badges`,kM=()=>`sp-catalog`,AM=()=>`sp-catalog-toolbar`,jM=()=>`sp-input`,MM=()=>`sp-select`,NM=()=>`sp-group`,PM=()=>`sp-group-header`,FM=()=>`sp-group-body`,IM=()=>`sp-group-chevron`,LM=()=>`sp-issues`,RM=()=>`sp-issue`,zM=()=>`sp-issue-code`,BM=()=>`sp-issue-msg`,VM=()=>`sp-inspector`,HM=()=>`sp-kv`,UM=()=>`sp-kv-key`,WM=()=>`sp-kv-value`,GM=()=>`sp-small`;function KM(e,t,n){let r=!!n?.hideLeft,i=n?.catalogSide===`left`,a=document.createElement(`div`);a.className=sM();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=cM(),s=document.createElement(`button`),s.className=lM(),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=hM(),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 qM(e){let t=e.sides;if(t?.length===2){let e=JM(t[0]),n=JM(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 JM(e){return e?`${e.participantName??``}${e.seedNumber?` [${e.seedNumber}]`:``}`:``}function YM(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 XM(){let e=document.createElement(`div`);e.className=SM();let t=document.createElement(`div`);t.className=CM();let n=document.createElement(`div`);n.className=wM(),n.textContent=`Inspector`,t.appendChild(n),e.appendChild(t);let r=document.createElement(`div`);r.className=VM(),e.appendChild(r);function i(e){r.innerHTML=``;let t=e.selectedMatchUp;if(!t){let e=document.createElement(`div`);e.className=GM(),e.textContent=`Select a matchUp in the catalog to see details.`,r.appendChild(e);return}if(ZM(r,`Event`,t.eventName),ZM(r,`Draw`,t.drawName??t.drawId),ZM(r,`Round`,t.roundName??`Round ${t.roundNumber}`),ZM(r,`Type`,t.matchUpType??`—`),ZM(r,`Format`,t.matchUpFormat??`—`),ZM(r,`Scheduled`,t.isScheduled?`Yes`:`No`),t.scheduledTime&&ZM(r,`Time`,t.scheduledTime),t.scheduledCourtName&&ZM(r,`Court`,t.scheduledCourtName),t.sides?.length){let e=document.createElement(`div`);e.className=GM(),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=JM(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 ZM(e,t,n){let r=document.createElement(`div`);r.className=HM();let i=document.createElement(`div`);i.className=UM(),i.textContent=t;let a=document.createElement(`div`);a.className=WM(),a.textContent=n,r.appendChild(i),r.appendChild(a),e.appendChild(r)}var QM=new Set([`COMPLETED`,`RETIRED`,`WALKOVER`,`DEFAULTED`,`DOUBLE_WALKOVER`,`DOUBLE_DEFAULT`,`CANCELLED`,`ABANDONED`,`DEAD_RUBBER`]);function $M(e){return!!e&&QM.has(e)}function eN(e,t,n=`dim`,r,i=!1){let a=t.toLowerCase().trim();return e.filter(e=>n===`hide`&&e.isScheduled||!i&&$M(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?YM(e).includes(a):!0)}function tN(e,t){let n=new Map,r=e=>t===`draw`?`${e.eventName} \u2014 ${e.drawName??e.drawId}`:t===`round`?e.roundName??`Round ${e.roundNumber}`:t===`structure`?`${e.eventName} \u2014 ${e.structureId}`: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 nN(e,t){let n=document.createElement(`div`);n.className=gM(),n.setAttribute(`data-matchup-id`,e.matchUpId);let r=$M(e.matchUpStatus);e.isScheduled?(n.classList.add(`scheduled`),n.draggable=!1):r?(n.classList.add(`completed`),n.draggable=!1):(n.draggable=!0,n.addEventListener(`dragstart`,t=>{t.stopPropagation(),t.dataTransfer.setDragImage(n,n.offsetWidth/2,20),t.dataTransfer.setData(`application/json`,JSON.stringify({type:`CATALOG_MATCHUP`,matchUp:e})),t.dataTransfer.effectAllowed=`copyMove`})),t.onClick&&n.addEventListener(`click`,n=>{n.stopPropagation(),t.onClick(e)});let i=document.createElement(`div`);i.className=_M(),i.textContent=`${e.eventName} \u2014 ${e.roundName??`Round `+e.roundNumber}`,n.appendChild(i);let a=document.createElement(`div`);a.className=vM(),a.textContent=qM(e),n.appendChild(a);let o=document.createElement(`div`);o.className=yM();let s=[];e.drawName&&s.push(e.drawName),e.matchUpType&&s.push(e.matchUpType.toLowerCase()),o.textContent=s.join(` · `),n.appendChild(o);let c=document.createElement(`div`);if(c.className=bM(),e.scheduledTime&&c.appendChild(rN(e.scheduledTime,`time`)),e.scheduledCourtName&&c.appendChild(rN(e.scheduledCourtName,`court`)),e.matchUpFormat&&c.appendChild(rN(e.matchUpFormat,`type`)),r&&e.matchUpStatus){let t=e.matchUpStatus.replace(/_/g,` `);c.appendChild(rN(t,`status`))}if(c.children.length&&n.appendChild(c),e.isScheduled){let e=document.createElement(`span`);e.className=`spl-matchup-check`,e.textContent=`✓`,n.appendChild(e)}return n}function rN(e,t){let n=document.createElement(`div`);return n.className=xM()+` `+t,n.textContent=e,n}function iN(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 aN(e){let t=document.createElement(`div`);t.className=SM();let n=`spl-catalog-drop-over`,r=new Set,i=null,a,o={};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 s=document.createElement(`div`);s.className=CM();let c=document.createElement(`div`);c.className=`spl-catalog-title-row`;let l=document.createElement(`div`);l.className=wM(),l.textContent=`MatchUp Catalog`;let u=document.createElement(`button`);u.className=`spl-catalog-filter-btn`,u.title=`Filter matchUps`,u.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>`,c.appendChild(l),c.appendChild(u);let d=document.createElement(`div`);d.className=TM(),s.appendChild(c),s.appendChild(d),t.appendChild(s);let f=document.createElement(`div`);f.className=AM();let p=document.createElement(`input`);p.type=`text`,p.placeholder=`Search matchUps...`,p.className=jM(),p.addEventListener(`input`,()=>e.onSearchChange(p.value));let m=document.createElement(`select`);m.className=MM();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,m.appendChild(n)}m.addEventListener(`change`,()=>e.onGroupByChange(m.value)),f.appendChild(p),f.appendChild(m),t.appendChild(f);function h(){a&&=(a.destroy(),void 0)}function g(){return!!(o.eventType||o.eventName||o.drawName||o.gender||o.roundName)}function _(){u.classList.toggle(`active`,g())}function v(){let t=i?.matchUpCatalog??[],n=document.createElement(`div`);n.className=`spl-filter-popover`;let r=document.createElement(`div`);r.className=`spl-filter-header`;let a=document.createElement(`button`);a.className=`spl-filter-clear-btn`,a.textContent=`Clear All`,a.addEventListener(`click`,t=>{t.stopPropagation(),o={},e.onFilterChange(o),_();for(let e of n.querySelectorAll(`select`))e.value=``}),r.appendChild(a);let s=document.createElement(`button`);s.className=`spl-filter-close-btn`,s.textContent=`×`,s.addEventListener(`click`,e=>{e.stopPropagation(),h()}),r.appendChild(s),n.appendChild(r);let c=[{label:`All Event Types`,key:`eventType`,values:iN(t,e=>e.matchUpType)},{label:`All Events`,key:`eventName`,values:iN(t,e=>e.eventName)},{label:`All Flights`,key:`drawName`,values:iN(t,e=>e.drawName)},{label:`All Genders`,key:`gender`,values:iN(t,e=>e.gender)},{label:`All Rounds`,key:`roundName`,values:iN(t,e=>e.roundName)}];for(let t of c){if(t.values.length<2)continue;let r=document.createElement(`label`);r.className=`spl-filter-label`,r.textContent=t.label,n.appendChild(r);let i=document.createElement(`select`);i.className=`spl-filter-select`;let a=document.createElement(`option`);a.value=``,a.textContent=t.label,i.appendChild(a);for(let e of t.values){let t=document.createElement(`option`);t.value=e,t.textContent=e,i.appendChild(t)}i.value=o[t.key]??``,i.addEventListener(`change`,()=>{o={...o,[t.key]:i.value||void 0},e.onFilterChange(o),_()}),n.appendChild(i)}let l=document.createElement(`label`);l.className=`spl-filter-toggle`;let u=document.createElement(`input`);u.type=`checkbox`,u.checked=i?.showScheduled??!1,u.addEventListener(`change`,()=>{e.onShowScheduledChange?.(u.checked)}),l.appendChild(u),l.appendChild(document.createTextNode(` Show assigned`)),n.appendChild(l);let d=document.createElement(`label`);d.className=`spl-filter-toggle`;let f=document.createElement(`input`);return f.type=`checkbox`,f.checked=i?.showCompleted??!1,f.addEventListener(`change`,()=>{e.onShowCompletedChange(f.checked)}),d.appendChild(f),d.appendChild(document.createTextNode(` Show completed`)),n.appendChild(d),n}u.addEventListener(`click`,()=>{h(),a=hm(u,{content:v(),placement:`bottom-start`,interactive:!0,trigger:`manual`,appendTo:()=>t,onClickOutside:()=>h(),theme:``}),a.show()});let y=document.createElement(`div`);y.className=kM(),t.appendChild(y);function b(t){i=t,o=t.catalogFilters??{},_();let n=t.showScheduled?t.scheduledBehavior:`hide`,a=eN(t.matchUpCatalog,t.catalogSearchQuery,n,t.catalogFilters,t.showCompleted),s=tN(a,t.catalogGroupBy);d.textContent=`${a.filter(e=>!e.isScheduled).length} unscheduled`,p.value!==t.catalogSearchQuery&&(p.value=t.catalogSearchQuery),m.value!==t.catalogGroupBy&&(m.value=t.catalogGroupBy),y.innerHTML=``;for(let[n,a]of s){let o=document.createElement(`div`);o.className=NM();let s=r.has(n),c=document.createElement(`div`);c.className=PM();let l=document.createElement(`span`);l.className=IM(),l.textContent=s?`▶`:`▼`;let u=document.createElement(`span`);u.textContent=`${n} (${a.length})`,c.appendChild(l),c.appendChild(u),c.addEventListener(`click`,()=>{r.has(n)?r.delete(n):r.add(n),i&&b(i)});let d=document.createElement(`div`);d.className=FM(),s&&(d.style.display=`none`);for(let n of a){let r=nN(n,{onClick:t=>e.onMatchUpSelected?.(t)});t.selectedMatchUp?.matchUpId===n.matchUpId&&r.classList.add(`selected`),d.appendChild(r)}o.appendChild(c),o.appendChild(d),y.appendChild(o)}}return{element:t,update:b}}function oN(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 sN=`spl-cell--issue-pulse`;function cN(){let e=document.createElement(`div`);e.className=SM();let t=document.createElement(`div`);t.className=CM();let n=document.createElement(`div`);n.className=wM(),n.textContent=`Issues`;let r=document.createElement(`div`);r.className=TM(),t.appendChild(n),t.appendChild(r),e.appendChild(t);let i=document.createElement(`div`);i.className=LM(),e.appendChild(i);function a(e){let t=oN(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=GM(),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=RM(),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=zM(),n.textContent=e.severity;let r=document.createElement(`div`);if(r.className=BM(),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(sN),n.offsetWidth,n.classList.add(sN),n.addEventListener(`animationend`,()=>n.classList.remove(sN),{once:!0}))}return{element:e,update:a}}function lN(e){let t=document.createElement(`div`);t.className=SM();let n=document.createElement(`div`);n.className=CM();let r=document.createElement(`div`);r.className=wM(),r.textContent=`Dates`;let i=document.createElement(`div`);i.className=TM(),n.appendChild(r),n.appendChild(i),t.appendChild(n);let a=document.createElement(`div`);a.className=EM(),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=DM(),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=OM(),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 uN(e,t,n){let r=document.createElement(`div`);r.className=uM();let i=document.createElement(`div`);i.className=dM();let a=document.createElement(`div`);a.className=fM(),a.textContent=`Court Grid`;let o=document.createElement(`div`);o.className=pM(),i.appendChild(a),i.appendChild(o),r.appendChild(i);let s=document.createElement(`div`);s.className=mM(),n?.gridMaxHeight&&(s.style.maxHeight=n.gridMaxHeight),e&&s.appendChild(e),s.addEventListener(`dragover`,e=>{e.preventDefault(),e.dataTransfer.dropEffect=`move`}),s.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(s);function c(e){o.textContent=e.selectedDate??`No date selected`}return{element:r,update:c}}var dN=class{constructor(e){this.listeners=new Set,this.config=e,this.state={matchUpCatalog:e.matchUpCatalog,scheduleDates:e.scheduleDates,issues:e.issues??[],selectedDate:e.scheduleDates[0]?.date??null,selectedMatchUp:null,catalogSearchQuery:``,catalogGroupBy:`event`,catalogFilters:{},showCompleted:!1,showScheduled:!1,scheduledBehavior:e.scheduledBehavior??`dim`,schedulingMode:e.schedulingMode??`immediate`,pendingActions:[],hasUnsavedChanges:!1,leftCollapsed:!!e.hideLeft,hideLeft:!!e.hideLeft}}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})}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)}},fN=class{constructor(e){this.container=null,this.store=new dN(e);let t=lN({onDateSelected:e=>this.store.selectDate(e)}),n=cN(),r=uN(e.courtGridElement,{onMatchUpDrop:(e,t)=>{this.store.handleMatchUpDrop(e,t)}},{gridMaxHeight:e.gridMaxHeight}),i=aN({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=XM();this.layout=KM({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)}save(){return this.store.save()}discardPending(){this.store.discardPending()}get hasUnsavedChanges(){return this.store.getState().hasUnsavedChanges}getStore(){return this.store}},pN=`spl-cell--conflict-highlight`,mN=`spl-cell--complete`,hN={header:[`time`],body:[`eventRound`,`participants`],footer:[`score`],participantDisplay:{nameFormat:`full`,showSeed:!1,showRanking:!1,showNationality:!1,boldWinner:!0,showPotentials:!0}};function gN(e,t){let n=t??hN;return e.isBlocked?_N(e):e.matchUpId?yN(e,n):vN()}function _N(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)}return t.appendChild(r),t}function vN(){let e=document.createElement(`div`);return e.className=`spl-grid-cell spl-cell--empty`,e}function yN(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),bN(n,e),t.header.length){let r=document.createElement(`div`);r.className=`spl-grid-cell__header`,xN(r,t.header,e,t),n.appendChild(r)}if(t.body.length){let r=document.createElement(`div`);r.className=`spl-grid-cell__body`,xN(r,t.body,e,t),n.appendChild(r)}if(t.footer.length){let r=document.createElement(`div`);r.className=`spl-grid-cell__footer`,xN(r,t.footer,e,t),n.appendChild(r)}return e.issueIds?.length&&(n.addEventListener(`mouseenter`,()=>{n.classList.add(pN);for(let t of e.issueIds)document.querySelectorAll(`[data-matchup-id="${t}"]`).forEach(e=>e.classList.add(pN))}),n.addEventListener(`mouseleave`,()=>{n.classList.remove(pN);for(let t of e.issueIds)document.querySelectorAll(`[data-matchup-id="${t}"]`).forEach(e=>e.classList.remove(pN))})),n}function bN(e,t){let n=t.matchUpStatus?.toUpperCase();n===`COMPLETED`||n===`RETIRED`||n===`DEFAULTED`||n===`WALKOVER`?e.classList.add(mN):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 xN(e,t,n,r){for(let i of t){let t=SN(i,n,r);t&&e.appendChild(t)}}function SN(e,t,n){switch(e){case`time`:return CN(t);case`eventRound`:return wN(t);case`participants`:return TN(t,n.participantDisplay);case`score`:return AN(t);case`matchUpStatus`:return jN(t);case`matchUpFormat`:return MN(t);case`umpire`:return NN(t);default:return null}}function CN(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 wN(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 TN(e,t){let n=t??hN.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(ON());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(DN()):(t>0&&!i[t-1]?.bye&&r.appendChild(ON()),r.appendChild(EN(a,e,n,a.sideNumber??t+1)))}return(a||o)&&i.length===1&&!i[0].bye&&r.appendChild(DN()),r}function EN(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=kN(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 DN(){let e=document.createElement(`div`);return e.className=`spl-grid-cell__bye`,e.textContent=`BYE`,e}function ON(){let e=document.createElement(`div`);return e.className=`spl-grid-cell__vs`,e.textContent=`vs.`,e}function kN(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 AN(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 jN(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 MN(e){if(!e.matchUpFormat)return null;let t=document.createElement(`div`);return t.className=`spl-grid-cell__format`,t.textContent=e.matchUpFormat,t}function NN(e){if(!e.umpire)return null;let t=document.createElement(`div`);return t.className=`spl-grid-cell__umpire`,t.textContent=e.umpire,t}function PN(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 FN({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++}re({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 IN(e,t){let n=new fN(e);return n.render(t),n}var LN=class{constructor(e){this.listeners=new Set,this.config=e,this.state={compositionName:e.compositionName||`Custom`,theme:e.composition?.theme||``,configuration:{...e.composition?.configuration||{}},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()}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){this.setState({compositionName:e,theme:t,configuration:{...n},isDirty:!1}),this.notifyChange()}resetToInitial(){this.setState({compositionName:this.config.compositionName||`Custom`,theme:this.config.composition?.theme||``,configuration:{...this.config.composition?.configuration||{}},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})}},RN=()=>`ce-layout`,zN=()=>`ce-left`,BN=()=>`ce-right`,VN=()=>`ce-name-row`,HN=()=>`ce-name-label`,UN=()=>`ce-name-input`,WN=()=>`ce-section`,GN=()=>`ce-section-header`,KN=()=>`ce-section-chevron`,qN=()=>`ce-section-body`,JN=()=>`ce-field`,YN=()=>`ce-field-label`,XN=()=>`ce-field-control`,ZN=()=>`ce-select`,QN=()=>`ce-text-input`,$N=()=>`ce-color-input`,eP=()=>`ce-toggle`,tP=()=>`ce-toggle-track`,nP=()=>`ce-preview`,rP=()=>`ce-preview-header`,iP=()=>`ce-preview-body`,aP=()=>`ce-preview-matchup`,oP=()=>`ce-subgroup`,sP=()=>`ce-subgroup-title`;function cP(e,t){let n=document.createElement(`div`);n.className=WN();let r=document.createElement(`div`);r.className=GN();let i=document.createElement(`span`);i.className=KN();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=qN();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 lP(e,t,n,r=!1){let i=document.createElement(`div`);i.className=JN();let a=document.createElement(`span`);a.className=YN(),a.textContent=e,i.appendChild(a);let o=document.createElement(`label`);o.className=eP();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=tP(),o.appendChild(s),o.appendChild(c);let l=document.createElement(`div`);return l.className=XN(),l.appendChild(o),i.appendChild(l),{element:i,setChecked:e=>{s.checked=e},setDisabled:e=>{s.disabled=e}}}function uP(e,t,n,r,i=!1){let a=document.createElement(`div`);a.className=JN();let o=document.createElement(`span`);o.className=YN(),o.textContent=e,a.appendChild(o);let s=document.createElement(`select`);s.className=ZN(),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=XN(),c.appendChild(s),a.appendChild(c),{element:a,setValue:e=>{s.value=e}}}function dP(e,t,n,r=``,i=!1){let a=document.createElement(`div`);a.className=JN();let o=document.createElement(`span`);o.className=YN(),o.textContent=e,a.appendChild(o);let s=document.createElement(`input`);s.type=`text`,s.className=QN(),s.value=t,s.placeholder=r,s.disabled=i,s.addEventListener(`input`,()=>n(s.value));let c=document.createElement(`div`);return c.className=XN(),c.appendChild(s),a.appendChild(c),{element:a,setValue:e=>{s.value=e}}}function fP(e,t,n,r=!1){let i=document.createElement(`div`);i.className=JN();let a=document.createElement(`span`);a.className=YN(),a.textContent=e,i.appendChild(a);let o=document.createElement(`input`);o.type=`color`,o.className=$N(),o.value=t||`#000000`,o.disabled=r,o.addEventListener(`input`,()=>n(o.value));let s=document.createElement(`div`);return s.className=XN(),s.appendChild(o),i.appendChild(s),{element:i,setValue:e=>{o.value=e||`#000000`}}}var pP=[],mP=new Set;for(let[,e]of Object.entries(ii))if(!mP.has(e.theme)){mP.add(e.theme);let t=e.theme.replace(`chc-theme-`,``).replace(/-/g,` `).replace(/\b\w/g,e=>e.toUpperCase());pP.push({value:e.theme,label:t})}function hP(e){let t=document.createElement(`div`),n=uP(`Load preset`,[{value:``,label:`— Load preset —`},...Object.keys(ii).map(e=>({value:e,label:e}))],``,t=>{if(!t)return;let r=ii[t];r&&e.loadComposition(t,r.theme,r.configuration||{}),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=uP(`Color theme`,pP,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}}function gP(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration,i=lP(`Nationality flags`,!!r.flags,t=>e.setConfigField(`flags`,t),n),a=uP(`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=uP(`Seed element`,[{value:``,label:`Default`},{value:`sup`,label:`Superscript`},{value:`span`,label:`Inline`}],r.seedingElement||``,t=>e.setConfigField(`seedingElement`,t||void 0),n),s=lP(`Draw positions (1st round)`,!!r.drawPositions,t=>e.setConfigField(`drawPositions`,t),n),c=lP(`Draw positions (all rounds)`,!!r.allDrawPositions,t=>e.setConfigField(`allDrawPositions`,t),n),l=lP(`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 _P(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration,i=lP(`Score box`,!!r.scoreBox,t=>e.setConfigField(`scoreBox`,t),n),a=lP(`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=oP();let s=document.createElement(`div`);s.className=sP(),s.textContent=`Game Score Display`,o.appendChild(s);let c=uP(`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=lP(`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 vP(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration,i=lP(`Gender color`,!!r.genderColor,t=>e.setConfigField(`genderColor`,t),n),a=lP(`Winner color`,!!r.winnerColor,t=>e.setConfigField(`winnerColor`,t),n),o=uP(`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=dP(`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 yP(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration,i=dP(`TBD text`,r.placeHolders?.tbd||``,t=>e.setConfigNestedField(`placeHolders`,`tbd`,t||void 0),`TBD`,n),a=dP(`Bye text`,r.placeHolders?.bye||``,t=>e.setConfigNestedField(`placeHolders`,`bye`,t||void 0),`Bye`,n),o=dP(`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 bP=[{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 xP(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration.scaleAttributes||{},i=uP(`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=uP(`Scale name`,[{value:``,label:`None`},...bP.map(e=>({value:e.scaleName,label:e.label}))],r.scaleName||``,t=>{e.setConfigNestedField(`scaleAttributes`,`scaleName`,t||void 0);let n=bP.find(e=>e.scaleName===t);e.setConfigNestedField(`scaleAttributes`,`accessor`,n?.accessor||void 0)},n),o=fP(`Color`,r.scaleColor||`#ff0000`,t=>e.setConfigNestedField(`scaleAttributes`,`scaleColor`,t),n),s=uP(`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=lP(`Fallback`,!!r.fallback,t=>e.setConfigNestedField(`scaleAttributes`,`fallback`,t),n),l=lP(`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 SP(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration,i=lP(`Schedule info`,!!r.scheduleInfo,t=>e.setConfigField(`scheduleInfo`,t),n),a=lP(`MatchUp footer`,!!r.matchUpFooter,t=>e.setConfigField(`matchUpFooter`,t),n),o=lP(`Center info`,!!r.centerInfo,t=>e.setConfigField(`centerInfo`,t),n),s=lP(`Set number`,!!r.resultsInfo,t=>e.setConfigField(`resultsInfo`,t),n),c=lP(`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);function l(e){let t=e.configuration;i.setChecked(!!t.scheduleInfo),a.setChecked(!!t.matchUpFooter),o.setChecked(!!t.centerInfo),s.setChecked(!!t.resultsInfo),c.setChecked(!!t.winnerChevron)}return{element:t,update:l}}var{DOUBLES:CP,SINGLES:wP}=t.eventConstants,{AD_HOC:TP}=t.drawDefinitionConstants,{INDIVIDUAL:EP}=t.participantConstants;function DP({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===CP?CP:wP,completionGoal:f,qualifyingProfiles:r,participantsCount:i,seedsCount:8,matchUpFormat:e,drawSize:o,drawType:l,outcomes:c};l===TP&&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:[EP]}});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||wP}})})}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 OP=null;function kP(){if(!OP){let{matchUps:e}=DP({drawSize:8,eventType:`SINGLES`,randomWinningSide:!0,matchUpFormat:`SET3-S:6/TB7`,withAllRatings:bP.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}]};OP=[...t,i,a,o,s]}return OP}function AP(){let e=document.createElement(`div`);e.className=nP();let t=document.createElement(`div`);t.className=rP(),t.textContent=`Preview`,e.appendChild(t);let n=document.createElement(`div`);n.className=iP(),e.appendChild(n);let r=``,i=``;function a(e){let t=JSON.stringify(e.configuration);if(e.theme===r&&t===i)return;r=e.theme,i=t,n.innerHTML=``;let a={theme:e.theme,configuration:{...e.configuration}},o=kP();for(let e of o){let t=document.createElement(`div`);t.className=aP();let r=Gr({matchUp:e,composition:a,isLucky:!0});t.appendChild(r),n.appendChild(t)}}return{element:e,update:a}}var jP=[{id:`theme`,label:`Theme & Preset`,factory:hP},{id:`display`,label:`Display`,factory:gP},{id:`score`,label:`Score`,factory:_P},{id:`participant`,label:`Participant`,factory:vP},{id:`placeholder`,label:`Placeholders`,factory:yP},{id:`scale`,label:`Scale Attributes`,factory:xP},{id:`layout`,label:`Layout & Info`,factory:SP}];function MP(e,t){let n=new LN(t),r=document.createElement(`div`);r.className=RN();let i=document.createElement(`div`);i.className=zN();let a=document.createElement(`div`);a.className=VN();let o=document.createElement(`span`);o.className=HN(),o.textContent=`Name`;let s=document.createElement(`input`);s.type=`text`,s.className=UN(),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=jP.map(e=>{let t=cP(e,n);return i.appendChild(t.element),t}),l=document.createElement(`div`);l.className=BN();let u=AP();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,version:1}}}}var NP=[`grand-slam`,`itf`,`minimal`,`none`],PP=[`standard`,`seedings`,`officials`,`none`],FP=[`a4`,`letter`],IP=[`auto`,`portrait`,`landscape`],LP={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 RP(e,t){let n=ZP(LP,t.config??{}),r=!!t.readOnly,i=Z(`div`,`pce-root`),a=Z(`div`,`pce-form`),o=Z(`div`,`pce-aside`);i.appendChild(a),i.appendChild(o);let s=null;function c(){a.innerHTML=``,a.appendChild(zP(n,r,l)),a.appendChild(BP(n,r,l)),a.appendChild(VP(n,r,l)),a.appendChild(HP(n,r,t.printType,l)),!r&&t.onSave&&a.appendChild(UP(()=>t.onSave?.(QP(n)))),o.innerHTML=``;let e=Z(`div`,`pce-aside-title`);e.textContent=`Print Type`,o.appendChild(e);let i=Z(`span`,`pce-print-type-pill`);i.textContent=t.printType,o.appendChild(i);let c=Z(`div`,`pce-aside-title`);c.textContent=`Resolved Config`,c.style.marginTop=`8px`,o.appendChild(c),s=Z(`div`,`pce-preview-stub`),s.textContent=JSON.stringify(n,null,2),o.appendChild(s);let u=Z(`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?.(QP(n))}return c(),e.appendChild(i),{destroy:()=>{i.parentNode&&i.parentNode.removeChild(i)},getConfig:()=>QP(n),setConfig:e=>{Object.assign(n,ZP(LP,e)),c()}}}function zP(e,t,n){let{section:r,body:i}=JP(`Page`);i.appendChild(WP(`Size`,FP,e.page?.pageSize??`a4`,t,t=>{XP(e,`page`).pageSize=t,n()})),i.appendChild(WP(`Orientation`,IP,e.page?.orientation??`auto`,t,t=>{XP(e,`page`).orientation=t,n()}));let a=Z(`div`,`pce-field pce-field-full`);a.appendChild(YP(`Margins (mm)`));let o=Z(`div`);return o.style.display=`grid`,o.style.gridTemplateColumns=`repeat(4, 1fr)`,o.style.gap=`6px`,[`top`,`right`,`bottom`,`left`].forEach(r=>{o.appendChild(KP(r,e.page?.margins?.[r]??10,t,t=>{let i=XP(XP(e,`page`),`margins`);i[r]=t,n()}))}),a.appendChild(o),i.appendChild(a),r}function BP(e,t,n){let{section:r,body:i}=JP(`Header`);return i.appendChild(WP(`Layout`,NP,e.header?.layout??`itf`,t,t=>{XP(e,`header`).layout=t,n()})),i.appendChild(GP(`Tournament name`,e.header?.tournamentName??``,t,t=>{XP(e,`header`).tournamentName=t,n()})),i.appendChild(GP(`Subtitle`,e.header?.subtitle??``,t,t=>{XP(e,`header`).subtitle=t||void 0,n()})),r}function VP(e,t,n){let{section:r,body:i}=JP(`Footer`);return i.appendChild(WP(`Layout`,PP,e.footer?.layout??`standard`,t,t=>{XP(e,`footer`).layout=t,n()})),i.appendChild(qP(`Show timestamp`,e.footer?.showTimestamp??!0,t,t=>{XP(e,`footer`).showTimestamp=t,n()})),i.appendChild(qP(`Show page numbers`,e.footer?.showPageNumbers??!0,t,t=>{XP(e,`footer`).showPageNumbers=t,n()})),r}function HP(e,t,n,r){let{section:i,body:a}=JP(`Content — ${n}`);if(n===`draw`){let n=XP(XP(e,`content`),`draw`);a.appendChild(qP(`Include seedings`,!!n.includeSeedings,t,e=>{n.includeSeedings=e,r()})),a.appendChild(qP(`Include scores`,!!n.includeScores,t,e=>{n.includeScores=e,r()})),a.appendChild(qP(`Show byes`,!!n.showByes,t,e=>{n.showByes=e,r()})),a.appendChild(qP(`Show draw positions`,!!n.showDrawPositions,t,e=>{n.showDrawPositions=e,r()}))}else if(n===`schedule`){let n=XP(XP(e,`content`),`schedule`);a.appendChild(WP(`Cell style`,[`detailed`,`compact`],n.cellStyle??`detailed`,t,e=>{n.cellStyle=e,r()})),a.appendChild(qP(`Show match numbers`,!!n.showMatchNumbers,t,e=>{n.showMatchNumbers=e,r()})),a.appendChild(GP(`Alert banner`,n.alertBanner??``,t,e=>{n.alertBanner=e||void 0,r()}))}else{let e=Z(`div`,`pce-field pce-field-full`),t=Z(`div`,`pce-preview-note`);t.textContent=`Content options for "${n}" not yet implemented.`,e.appendChild(t),a.appendChild(e)}return i}function UP(e){let t=Z(`div`,`pce-actions`),n=Z(`button`,`pce-button pce-button-primary`);return n.type=`button`,n.textContent=`Save`,n.addEventListener(`click`,e),t.appendChild(n),t}function WP(e,t,n,r,i){let a=Z(`div`,`pce-field`);a.appendChild(YP(e));let o=Z(`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 GP(e,t,n,r){let i=Z(`div`,`pce-field`);i.appendChild(YP(e));let a=Z(`input`,`pce-input`);return a.type=`text`,a.value=t,a.disabled=n,a.addEventListener(`input`,()=>r(a.value)),i.appendChild(a),i}function KP(e,t,n,r){let i=Z(`div`,`pce-field`);i.appendChild(YP(e));let a=Z(`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 qP(e,t,n,r){let i=Z(`div`,`pce-field pce-checkbox-row pce-field-full`),a=Z(`input`);a.type=`checkbox`,a.checked=t,a.disabled=n,a.addEventListener(`change`,()=>r(a.checked)),i.appendChild(a);let o=YP(e);return o.style.fontSize=`13px`,o.style.color=`var(--chc-text-primary, #222)`,i.appendChild(o),i}function JP(e){let t=Z(`div`,`pce-section`),n=Z(`div`,`pce-section-header`);n.textContent=e;let r=Z(`div`,`pce-section-body`);return t.appendChild(n),t.appendChild(r),{section:t,body:r}}function Z(e,t){let n=document.createElement(e);return t&&(n.className=t),n}function YP(e){let t=Z(`label`,`pce-field-label`);return t.textContent=e,t}function XP(e,t){return(e[t]===void 0||e[t]===null)&&(e[t]={}),e[t]}function ZP(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 QP(e){return JSON.parse(JSON.stringify(e))}var $P=`chc-scorecard-side-score--winner`;function eF({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=lF(e,a)||``,c=lF(e,o)||``,l=r?oF(e.winningSide):e.winningSide,u=tF({side1Name:s,side2Name:c,sets:r?sF(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=aF({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 tF({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=rF(e,`end`),l=rF(t,`start`),u=iF(n,1,r,i),d=iF(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 nF(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($P),o.classList.remove($P);let s=r?`side2Score`:`side1Score`,c=r?`side1Score`:`side2Score`;a.textContent=String(i[s]??0),o.textContent=String(i[c]??0);let l=r?oF(e.winningSide):e.winningSide;l===1&&a.classList.add($P),l===2&&o.classList.add($P)}function rF(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 iF(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($P),a.textContent=String(i),a}function aF({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=Gr({matchUp:i?cF(e):e,isLucky:!0,eventHandlers:r,composition:n});t.classList.add(`chc-scorecard-card`),f.appendChild(t)}return a.appendChild(f),a}function oF(e){if(e===1)return 2;if(e===2)return 1}function sF(e){if(e)return e.map(e=>({...e,side1Score:e.side2Score,side2Score:e.side1Score,side1TiebreakScore:e.side2TiebreakScore,side2TiebreakScore:e.side1TiebreakScore}))}function cF(e){let t=e.sides?.map(e=>({...e,sideNumber:e.sideNumber===1?2:1}));return{...e,sides:t,score:e.score?{...e.score,sets:sF(e.score.sets)}:e.score,winningSide:oF(e.winningSide)}}function lF(e,t){return e.sides?.find(e=>e.sideNumber===t)?.participant?.participantName}function uF(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 dF=`chc-iss-score-cell`;function fF(e){if(!e?.matchUpId)throw Error(`buildInteractiveScoringShell: matchUpId is required`);if(!e?.matchUpFormat)throw Error(`buildInteractiveScoringShell: matchUpFormat is required`);let t=e.initialMatchUp??pF(e),n=new Set,r=new Qo({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)))}function c(){vF()&&(r.reset(e.matchUpId,t),l(),a(r.getMatchUp(e.matchUpId,t),!1))}function l(){i.innerHTML=``,i.append(mF(e),hF(r,e,t),gF(r,e,o),_F(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 pF(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 mF(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 hF(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=dF,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=dF,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=dF,e.textContent=`0`,s.append(e);let t=document.createElement(`div`);t.className=dF,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 gF(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 _F(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 vF(){return typeof globalThis>`u`||typeof globalThis.confirm!=`function`?!1:globalThis.confirm(`Reset the scoring session? This will clear all points.`)}function yF(){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 Q(e){return structuredClone(e)}var bF=class{constructor(e){this.listeners=new Set,this.config=e;let t=Q(e.initialPolicy??yF()),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 Q(this.state.draft)}setData(e){let t=e.awardProfiles?.length??0;this.state={...this.state,draft:Q(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=Q(this.state.draft);t.policyName=e,this.commitDraft(t)}setPolicyVersion(e){let t=Q(this.state.draft);t.policyVersion=e,this.commitDraft(t)}setValidDateRange(e,t){let n=Q(this.state.draft);n.validDateRange||={},n.validDateRange[e]=t||void 0,this.commitDraft(n)}setGlobalFlag(e,t){let n=Q(this.state.draft);n[e]=t,this.commitDraft(n)}setDoublesAttribution(e){let t=Q(this.state.draft);t.doublesAttribution=e||void 0,this.commitDraft(t)}setCategoryResolution(e){let t=Q(this.state.draft);t.categoryResolution=e||void 0,this.commitDraft(t)}addProfile(){let e=Q(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=Q(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=Q(this.state.draft);if(!t.awardProfiles||e<0||e>=t.awardProfiles.length)return;let n=Q(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=Q(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=Q(this.state.draft);n.awardProfiles?.[e]&&(n.awardProfiles[e].profileName=t,this.commitDraft(n))}setProfileFlag(e,t,n){let r=Q(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=Q(this.state.draft),i=r.awardProfiles?.[e];i&&(i.finishingPositionRanges||={},i.finishingPositionRanges[t]=n,this.commitDraft(r))}addPositionRow(e,t){let n=Q(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=Q(this.state.draft),r=n.awardProfiles?.[e];r?.finishingPositionRanges&&(delete r.finishingPositionRanges[t],this.commitDraft(n))}setPointsPerWin(e,t){let n=Q(this.state.draft),r=n.awardProfiles?.[e];r&&(t===void 0?delete r.pointsPerWin:r.pointsPerWin=t,this.commitDraft(n))}addBonusPoint(e){let t=Q(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=Q(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=Q(this.state.draft),i=r.awardProfiles?.[e]?.bonusPoints?.[t];i&&(i.finishingPositions=n,this.commitDraft(r))}setBonusPointValue(e,t,n){let r=Q(this.state.draft),i=r.awardProfiles?.[e]?.bonusPoints?.[t];i&&(i.value=n,this.commitDraft(r))}setLevelPositionPoints(e,t,n,r){let i=Q(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=Q(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=Q(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=Q(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=Q(this.state.draft),i=r.awardProfiles?.[e];i&&(n===void 0||n===``?delete i[t]:i[t]=n,this.commitDraft(r))}addQualityWinProfile(){let e=Q(this.state.draft);e.qualityWinProfiles||=[],e.qualityWinProfiles.push({rankingScaleName:`New Profile`,rankingRanges:[{rankRange:[1,10],value:10}]}),this.commitDraft(e)}removeQualityWinProfile(e){let t=Q(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=Q(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=Q(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=Q(this.state.draft),r=n.qualityWinProfiles?.[e];r&&(r.rankingRanges.splice(t,1),this.commitDraft(n))}setQualityWinRange(e,t,n,r){let i=Q(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=Q(this.state.draft);n.aggregationRules||={},t===void 0||t===``?delete n.aggregationRules[e]:n.aggregationRules[e]=t,this.commitDraft(n)}addTiebreakCriterion(e){let t=Q(this.state.draft);t.aggregationRules||={},t.aggregationRules.tiebreakCriteria||(t.aggregationRules.tiebreakCriteria=[]),t.aggregationRules.tiebreakCriteria.push(e),this.commitDraft(t)}removeTiebreakCriterion(e){let t=Q(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=Q(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=Q(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=Q(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?.(Q(e))}emit(){for(let e of this.listeners)e(this.state)}},xF=()=>`re-section`,SF=()=>`re-section-header`,CF=()=>`re-section-chevron`,wF=()=>`re-section-count`,TF=()=>`re-section-body`,EF=()=>`re-field-row`,DF=()=>`re-field-label`,OF=()=>`re-field-input re-field-input--text`,kF=()=>`re-field-input re-field-input--number`,AF=()=>`re-field-input re-field-input--date`,jF=()=>`re-field-select`,MF=()=>`re-checkbox-row`,NF=()=>`re-points-input`,PF=()=>`re-profile-card`,FF=()=>`re-profile-header`,IF=()=>`re-profile-name-input`,LF=()=>`re-profile-body`,RF=()=>`re-profile-actions`,zF=()=>`re-icon-btn`,BF=()=>`re-icon-btn re-icon-btn--danger`,VF=()=>`re-empty`,HF=()=>`re-editor`,UF=[`totalPoints`,`bestResult`,`headToHead`,`numberOfWins`,`recentResults`,`drawSize`,`numberOfResults`];function WF(e){let t=document.createElement(`div`),n=``;function r(t,n,r,i,a,o){let s=document.createElement(`div`);s.className=EF();let c=document.createElement(`div`);if(c.className=DF(),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=jF();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=kF(),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=BF(),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=VF(),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=jF(),i.style.fontSize=`0.75rem`;let a=new Set(n),o=UF.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=BF(),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=EF();let a=document.createElement(`div`);a.className=DF(),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=kF(),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=VF(),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=MF();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 GF(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=OF(),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=BF(),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(KF(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(KF(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(KF(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=BF(),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=EF();let s=document.createElement(`div`);if(s.className=DF(),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`?kF():OF(),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=VF(),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=MF();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 KF(e,t){let n=document.createElement(`input`);return n.type=`number`,n.className=NF(),n.value=String(e),n.addEventListener(`change`,()=>{let e=Number.parseFloat(n.value);Number.isNaN(e)||t(e)}),n}function qF(e){let t=document.createElement(`div`),n=document.createElement(`div`);n.className=EF();let r=document.createElement(`div`);r.className=DF(),r.textContent=`Name`;let i=document.createElement(`input`);i.type=`text`,i.className=OF(),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=EF();let o=document.createElement(`div`);o.className=DF(),o.textContent=`Version`;let s=document.createElement(`input`);s.type=`text`,s.className=OF(),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=EF();let l=document.createElement(`div`);l.className=DF(),l.textContent=`Valid from`;let u=document.createElement(`input`);u.type=`date`,u.className=AF(),u.addEventListener(`change`,()=>e.setValidDateRange(`startDate`,u.value)),c.appendChild(l),c.appendChild(u),t.appendChild(c);let d=document.createElement(`div`);d.className=EF();let f=document.createElement(`div`);f.className=DF(),f.textContent=`Valid until`;let p=document.createElement(`input`);p.type=`date`,p.className=AF(),p.addEventListener(`change`,()=>e.setValidDateRange(`endDate`,p.value)),d.appendChild(f),d.appendChild(p),t.appendChild(d);let m=document.createElement(`div`);m.className=EF();let h=document.createElement(`div`);h.className=DF(),h.textContent=`Doubles attribution`;let g=document.createElement(`select`);g.className=jF();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=EF();let v=document.createElement(`div`);v.className=DF(),v.textContent=`Category resolution`;let y=document.createElement(`select`);y.className=jF();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=MF();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=MF();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 JF={1:`W`,2:`F`,4:`SF`,8:`QF`,16:`R16`,32:`R32`,64:`R64`,128:`R128`,256:`R256`},YF=`level-keyed`;function XF(e){return JF[e]??`R${e}`}function ZF(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=QF(t);return n.hasConditionalArray?{type:`conditional`}:n.hasLevelFlightNesting?$F(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 QF(e){let t=new Set,n=new Set,r=!1,i=!1;for(let a of e){let e=eI(a);if(e.type===YF){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 $F(e,t){let n={},r=[...t].sort((e,t)=>e-t);for(let t of e){let e=eI(t);if(e.type===YF&&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 eI(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:YF,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:YF,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 tI(e,t={}){if(typeof e==`number`)return e;if(e!=null){if(Array.isArray(e))return nI(e,t);if(typeof e==`object`){if(e.level!==void 0&&t.level!==void 0)return rI(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 nI(e,t){for(let n of e){if(n.drawSizes&&t.drawSize&&n.drawSizes.includes(t.drawSize))return tI(n,t);if(n.drawSize!==void 0&&t.drawSize!==void 0&&(n.threshold?t.drawSize>=n.drawSize:t.drawSize===n.drawSize))return tI({...n,drawSize:void 0,drawSizes:void 0,threshold:void 0},t);if(n.drawSize===void 0&&n.drawSizes===void 0)return tI(n,t)}}function rI(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?tI(n,t):typeof n==`number`?n:void 0}function iI(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 aI(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 oI(e){return e==null?`--`:e.toLocaleString()}var sI=[1,2,4,8,16,32,64,128],cI=`font-size:0.8rem;margin-bottom:0;border-collapse:collapse`,lI=`width:3.5rem;text-align:center`;function uI(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=VF(),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=ZF(i),o=Object.keys(i).map(Number).sort((e,t)=>e-t);a.type===`flat`?dI(n,o,i,r.readonly,e,t):a.type===`level-columns`?fI(n,o,i,a.levels,r.readonly,e,t):pI(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 dI(e,t,n,r,i,a){let o=document.createElement(`table`);o.style.cssText=cI;let s=document.createElement(`thead`),c=document.createElement(`tr`);mI(c,`Pos`,lI),mI(c,`Points`,`text-align:right`),r||mI(c,``,`width:2rem`),s.appendChild(c),o.appendChild(s);let l=document.createElement(`tbody`);for(let e of t){let t=document.createElement(`tr`);hI(t,e);let o=document.createElement(`td`);o.style.cssText=`text-align:right;padding:2px 4px`,r?(o.style.fontVariantNumeric=`tabular-nums`,o.textContent=oI(typeof n[e]==`number`?n[e]:tI(n[e]))):o.appendChild(_I(typeof n[e]==`number`?n[e]:tI(n[e])??0,t=>i.setFlatPositionPoints(a,e,t))),t.appendChild(o),r||gI(t,()=>i.removePositionRow(a,e)),l.appendChild(t)}o.appendChild(l),e.appendChild(o),r||vI(e,t,i,a)}function fI(e,t,n,r,i,a,o){let s=document.createElement(`table`);s.style.cssText=cI;let c=document.createElement(`thead`),l=document.createElement(`tr`);mI(l,`Pos`,lI);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=BF(),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||mI(l,``,`width:2rem`),c.appendChild(l),s.appendChild(c);let u=document.createElement(`tbody`);for(let e of t){let t=document.createElement(`tr`);hI(t,e);for(let s of r){let r=document.createElement(`td`);r.style.cssText=`text-align:right;padding:2px 4px`;let c=tI(n[e],{level:s});i?(r.style.fontVariantNumeric=`tabular-nums`,r.textContent=oI(c),c===void 0&&(r.style.color=`var(--sp-muted)`)):r.appendChild(_I(c??0,t=>a.setLevelPositionPoints(o,e,s,t))),t.appendChild(r)}i||gI(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=NF(),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),yI(n,t,a,o),e.appendChild(n)}}function pI(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=cI;let o=document.createElement(`thead`),s=document.createElement(`tr`);if(mI(s,`Pos`,lI),r.type===`flight-columns`)for(let e of r.flights)mI(s,`F${e}`,`text-align:right;min-width:3.5rem`);else mI(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`);hI(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=tI(i,{flight:e});n.textContent=oI(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=oI(tI(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 mI(e,t,n){let r=document.createElement(`th`);r.textContent=t,r.style.cssText=n+`;padding:2px 4px`,e.appendChild(r)}function hI(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=XF(t),e.appendChild(n)}function gI(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=BF(),r.textContent=`×`,r.title=`Remove position`,r.style.cursor=`pointer`,r.addEventListener(`click`,t),n.appendChild(r),e.appendChild(n)}function _I(e,t){let n=document.createElement(`input`);return n.type=`number`,n.className=NF(),n.value=String(e),n.addEventListener(`change`,()=>{let e=Number.parseFloat(n.value);Number.isNaN(e)||t(e)}),n}function vI(e,t,n,r){let i=document.createElement(`div`);i.style.cssText=`display:flex;gap:8px;margin-top:6px;flex-wrap:wrap`,yI(i,t,n,r),e.appendChild(i)}function yI(e,t,n,r){let i=new Set(t),a=sI.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=XF(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 bI(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=EF();let i=document.createElement(`div`);i.className=DF(),i.textContent=`Per-Win`,i.style.minWidth=`80px`;let a=document.createElement(`input`);a.type=`number`,a.className=NF(),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=`${oI(tI(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 xI(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(XF).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=NF(),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=NF(),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=BF(),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 SI(e){let t=document.createElement(`div`);t.style.cssText=`display:inline-flex;gap:0.25rem;flex-wrap:wrap;margin-bottom:0`;let n=aI(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 CI=[{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}],wI=[[`maxDrawSize`,`Max draw size`],[`maxLevel`,`Max level`],[`priority`,`Priority`],[`participationOrder`,`Participation order`]];function TI(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 CI){let t=a[e.field]??[];o&&!t.length||i.appendChild(s(e,t,o))}for(let[n,r]of wI){let s=a[n];if(o&&s===void 0)continue;let c=document.createElement(`div`);c.className=EF();let l=document.createElement(`div`);if(l.className=DF(),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=kF(),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=CI.map(e=>n?.[e.field]??[]),i=wI.map(([e])=>n?.[e]),o=JSON.stringify([r,i,e.readonly]);o!==a&&(a=o,c(e))}return{element:n,update:l}}function EI(e,t){let n=document.createElement(`div`);n.className=PF();let r=document.createElement(`div`);r.className=FF();let i=document.createElement(`span`);i.className=CF(),i.style.flexShrink=`0`,r.appendChild(i);let a=document.createElement(`input`);a.type=`text`,a.className=IF(),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=RF();let l=document.createElement(`button`);l.className=zF(),l.textContent=`⎘`,l.title=`Duplicate profile`,l.addEventListener(`click`,n=>{n.stopPropagation(),e.duplicateProfile(t)});let u=document.createElement(`button`);u.className=BF(),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=LF();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=uI(e,t);d.appendChild(p.element);let m=bI(e,t);d.appendChild(m.element);let h=xI(e,t);d.appendChild(h.element);let g=TI(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=SI(r);if(y.style.flexGrow=`1`,o.appendChild(y),s.textContent=l?``:iI(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 DI(e,t){let n=document.createElement(`div`);n.className=HF();let r=qF(e),i=GF(e),a=WF(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=xF();let c=document.createElement(`div`);c.className=SF();let l=document.createElement(`span`);l.className=CF();let u=document.createElement(`span`);u.textContent=t.label;let d=document.createElement(`span`);d.className=wF(),c.appendChild(l),c.appendChild(u),c.appendChild(d),c.addEventListener(`click`,()=>e.toggleSection(t.id));let f=document.createElement(`div`);f.className=TF(),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=EI(e,t);c.push(s),r.appendChild(s.element),a++}if(!a){let e=document.createElement(`div`);e.className=VF(),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 OI=class e{constructor(e){this.container=null,this.store=new bF(e),this.panel=DI(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 kI(e){return AI[e]??e}var AI={"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 jI(){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 $(e){return structuredClone(e)}var MI=class{constructor(e){this.listeners=new Set,this.config=e,this.state={draft:$(e.initialPolicy??jI()),expandedSections:new Set([`modificationFlags`,`dailyLimits`,`defaultTimes`,`averageTimes`,`recoveryTimes`]),dirty:!1}}getState(){return this.state}getData(){return $(this.state.draft)}setData(e){this.state={...this.state,draft:$(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=$(this.state.draft);n.allowModificationWhenMatchUpsScheduled||={courts:!1,venues:!1},n.allowModificationWhenMatchUpsScheduled[e]=t,this.commitDraft(n)}setDailyLimit(e,t){let n=$(this.state.draft);n.defaultDailyLimits||={},n.defaultDailyLimits[e]=t,this.commitDraft(n)}setDefaultAverageTime(e,t,n){let r=$(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=$(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=$(this.state.draft);e.matchUpAverageTimes||=[],e.matchUpAverageTimes.push({matchUpFormatCodes:[],averageTimes:[{categoryNames:[],minutes:{default:60}}]}),this.commitDraft(e)}removeAverageFormatGroup(e){let t=$(this.state.draft);t.matchUpAverageTimes&&(t.matchUpAverageTimes.splice(e,1),this.commitDraft(t))}setAverageFormatCodes(e,t){let n=$(this.state.draft),r=n.matchUpAverageTimes?.[e];r&&(r.matchUpFormatCodes=t,this.commitDraft(n))}setAverageTime(e,t,n,r){let i=$(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=$(this.state.draft),n=t.matchUpAverageTimes?.[e];n&&(n.averageTimes.push({categoryTypes:[],minutes:{default:60}}),this.commitDraft(t))}removeAverageCategoryOverride(e,t){let n=$(this.state.draft),r=n.matchUpAverageTimes?.[e];r&&(r.averageTimes.splice(t,1),this.commitDraft(n))}setAverageOverrideCategories(e,t,n,r){let i=$(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=$(this.state.draft);e.matchUpRecoveryTimes||=[],e.matchUpRecoveryTimes.push({matchUpFormatCodes:[],recoveryTimes:[{categoryNames:[],minutes:{default:30}}]}),this.commitDraft(e)}removeRecoveryFormatGroup(e){let t=$(this.state.draft);t.matchUpRecoveryTimes&&(t.matchUpRecoveryTimes.splice(e,1),this.commitDraft(t))}setRecoveryFormatCodes(e,t){let n=$(this.state.draft),r=n.matchUpRecoveryTimes?.[e];r&&(r.matchUpFormatCodes=t,this.commitDraft(n))}setRecoveryTime(e,t,n,r){let i=$(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=$(this.state.draft),n=t.matchUpRecoveryTimes?.[e];n&&(n.recoveryTimes.push({categoryTypes:[],minutes:{default:30}}),this.commitDraft(t))}removeRecoveryCategoryOverride(e,t){let n=$(this.state.draft),r=n.matchUpRecoveryTimes?.[e];r&&(r.recoveryTimes.splice(t,1),this.commitDraft(n))}setRecoveryOverrideCategories(e,t,n,r){let i=$(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?.($(e))}emit(){for(let e of this.listeners)e(this.state)}},NI=()=>`se-section`,PI=()=>`se-section-header`,FI=()=>`se-section-chevron`,II=()=>`se-section-body`,LI=()=>`se-field-row`,RI=()=>`se-field-label`,zI=()=>`se-field-input`,BI=()=>`se-field-unit`,VI=()=>`se-checkbox-row`,HI=()=>`se-format-group`,UI=()=>`se-format-group-header`,WI=()=>`se-format-group-label`,GI=()=>`se-tag-picker`,KI=()=>`sp-chip`,qI=()=>`sp-chip__remove`,JI=()=>`se-tag-add-wrap`,YI=()=>`sp-btn-icon`,XI=()=>`se-override-row`,ZI=()=>`se-override-categories`,QI=()=>`se-override-remove`,$I=()=>`sp-btn sp-btn--sm sp-btn--outline se-add-btn`,eL=()=>`sp-btn-icon sp-btn-icon--danger`,tL=()=>`se-editor`;function nL(e){let t=document.createElement(`div`),n=document.createElement(`div`);n.className=VI();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=VI();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 rL=`is-success`,iL=`is-danger`;function aL(e){if(e===``)return!0;let t=parseInt(e,10);return!isNaN(t)&&t>=0&&String(t)===e.trim()}function oL(e,t){if(t===``){e.classList.remove(rL,iL);return}aL(t)?(e.classList.remove(iL),e.classList.add(rL)):(e.classList.remove(rL),e.classList.add(iL))}function sL(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=LI();let o=document.createElement(`div`);o.className=RI(),o.textContent=i;let s=document.createElement(`input`);s.type=`text`,s.className=zI(),s.placeholder=`0`,s.addEventListener(`input`,()=>{oL(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 cL=`is-success`,lL=`is-danger`;function uL(e){if(e===``)return!0;let t=parseInt(e,10);return!isNaN(t)&&t>=0&&String(t)===e.trim()}function dL(e,t,n){if(t===``&&n){e.classList.remove(cL,lL);return}uL(t)&&(t!==``||n)?(e.classList.remove(lL),e.classList.add(cL)):(e.classList.remove(cL),e.classList.add(lL))}function fL(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=pL(`Default`,`min`,!1),i=pL(`Doubles override`,`min`,!0);t.appendChild(r.row),t.appendChild(i.row),r.input.addEventListener(`input`,()=>{dL(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`,()=>{dL(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=pL(`Default`,`min`,!1),c=pL(`Doubles override`,`min`,!0);t.appendChild(s.row),t.appendChild(c.row),s.input.addEventListener(`input`,()=>{dL(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`,()=>{dL(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 pL(e,t,n){let r=document.createElement(`div`);r.className=LI();let i=document.createElement(`div`);i.className=RI(),i.textContent=e;let a=document.createElement(`input`);a.type=`text`,a.className=zI(),a.placeholder=n?`—`:`0`;let o=document.createElement(`div`);return o.className=BI(),o.textContent=t,r.appendChild(i),r.appendChild(a),r.appendChild(o),{row:r,input:a}}var mL=`is-success`,hL=`is-danger`;function gL(e){if(e===``)return!0;let t=parseInt(e,10);return!isNaN(t)&&t>=0&&String(t)===e.trim()}function _L(e,t,n){if(t===``&&n){e.classList.remove(mL,hL);return}gL(t)&&(t!==``||n)?(e.classList.remove(hL),e.classList.add(mL)):(e.classList.remove(mL),e.classList.add(hL))}function vL(e){let t=document.createElement(`div`);t.className=HI();let n=document.createElement(`div`);n.className=UI();let r=document.createElement(`div`);r.style.flex=`1`;let i=document.createElement(`div`);i.className=WI(),i.textContent=`Formats`,r.appendChild(i);let a=document.createElement(`div`);a.className=GI();for(let t of e.formatCodes){let n=document.createElement(`span`);n.className=KI(),n.title=`${t} — click to edit`;let r=document.createElement(`span`);r.textContent=kI(t),n.addEventListener(`click`,()=>{wa({existingMatchUpFormat:t,callback:n=>{if(!n||n===t)return;let r=e.formatCodes.map(e=>e===t?n:e);e.onFormatCodesChange(r)}})});let i=document.createElement(`span`);i.className=qI(),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=JI();let s=document.createElement(`button`);s.className=YI(),s.textContent=`+`,s.type=`button`,s.title=`Add format code`,s.addEventListener(`click`,t=>{t.stopPropagation(),wa({existingMatchUpFormat:`SET3-S:6/TB7`,callback:t=>{t&&!e.formatCodes.includes(t)&&e.onFormatCodesChange([...e.formatCodes,t])}})}),o.appendChild(s),a.appendChild(o),r.appendChild(a);let c=document.createElement(`button`);c.className=eL(),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=XI();let a=document.createElement(`div`);a.className=`${ZI()}${r.isDefault?` all`:``}`,a.textContent=r.categoryLabel;let o=document.createElement(`input`);o.type=`text`,o.className=zI(),o.value=String(r.defaultMinutes),o.placeholder=`0`;let s=n;o.addEventListener(`input`,()=>{_L(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=BI(),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=zI(),u.value=r.doublesMinutes===void 0?``:String(r.doublesMinutes),u.placeholder=`—`,u.addEventListener(`input`,()=>{_L(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=QI(),t.textContent=`×`,t.addEventListener(`click`,()=>e.onRemoveOverride(s)),i.appendChild(t)}t.appendChild(i)}let l=document.createElement(`button`);return l.className=$I(),l.textContent=`+ Add Override`,l.type=`button`,l.addEventListener(`click`,()=>e.onAddOverride()),t.appendChild(l),t}function yL(e,t){let n=document.createElement(`div`),r=document.createElement(`div`);n.appendChild(r);let i=document.createElement(`button`);i.className=$I(),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=vL({formatCodes:a.matchUpFormatCodes,overrides:o,availableFormats:t.matchUpFormatCodes??bL(),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 bL(){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 xL(e,t){let n=document.createElement(`div`),r=document.createElement(`div`);n.appendChild(r);let i=document.createElement(`button`);i.className=$I(),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=vL({formatCodes:a.matchUpFormatCodes,overrides:o,availableFormats:t.matchUpFormatCodes??SL(),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 SL(){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 CL(e,t){let n=document.createElement(`div`);n.className=tL();let r=[{id:`modificationFlags`,label:`Modification Flags`,factory:()=>nL(e)},{id:`dailyLimits`,label:`Daily Limits`,factory:()=>sL(e)},{id:`defaultTimes`,label:`Default Times`,factory:()=>fL(e)},{id:`averageTimes`,label:`Match Average Times`,factory:()=>yL(e,t)},{id:`recoveryTimes`,label:`Match Recovery Times`,factory:()=>xL(e,t)}],i=[];for(let t of r){let r=document.createElement(`div`);r.className=NI();let a=document.createElement(`div`);a.className=PI();let o=document.createElement(`span`);o.className=FI();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=II();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 wL=class e{constructor(e){this.container=null,this.store=new MI(e),this.panel=CL(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 TL(e,t){let n=new wL(e);return n.render(t),n}var EL=()=>`pc-layout`,DL=()=>`pc-panel`,OL=()=>`pc-panel-header`,kL=()=>`pc-panel-title`,AL=()=>`pc-panel-meta`,jL=()=>`pc-toolbar`,ML=()=>`pc-input`,NL=()=>`pc-select`,PL=()=>`pc-catalog`,FL=()=>`pc-group`,IL=()=>`pc-group-header`,LL=()=>`pc-group-chevron`,RL=()=>`pc-group-body`,zL=()=>`pc-card`,BL=()=>`pc-card-title`,VL=()=>`pc-card-meta`,HL=()=>`pc-type-badge`,UL=()=>`pc-editor`,WL=()=>`pc-editor-header`,GL=()=>`pc-editor-header-left`,KL=()=>`pc-editor-actions`,qL=()=>`sp-btn sp-btn--sm`,JL=()=>`sp-btn sp-btn--sm sp-btn--accent`,YL=()=>`pc-dirty-dot`,XL=()=>`pc-editor-body`,ZL=()=>`pc-empty`,QL=()=>`pc-json-editor`,$L=()=>`pc-json-error`;function eR(e){let t=document.createElement(`div`);t.className=EL(),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 tR=`scheduling`,nR=`scoring`,rR=`seeding`,iR=`draws`,aR=`avoidance`,oR=`feedIn`,sR=`progression`,cR=`roundNaming`,lR=`positionActions`,uR=`matchUpActions`,dR=`roundRobinTally`,fR=`rankingPoints`,pR=`competitiveBands`,mR=`voluntaryConsolation`,hR=`participant`,gR=`display`,_R=`audit`,vR=`Tournament Operations`,yR=`Scoring & Results`,bR=`Ranking Points`,xR=`Draw Configuration`,SR=`Participants`,CR=`Display & Audit`,wR=(e,t,n,r,i)=>({policyType:e,label:t,description:n,group:r,hasEditor:i}),TR=[wR(tR,`Scheduling`,`Match scheduling, average times, recovery times, daily limits`,vR,!0),wR(lR,`Position Actions`,`Allowed position actions (alternates, walkovers, withdrawals)`,vR,!1),wR(uR,`MatchUp Actions`,`Allowed matchUp status transitions and actions`,vR,!1),wR(aR,`Avoidance`,`Draw placement avoidance rules (club, nationality, region)`,vR,!1),wR(nR,`Scoring`,`Score entry validation and completion rules`,yR,!1),wR(dR,`Round Robin Tally`,`Round-robin group standing calculation method`,yR,!1),wR(fR,`Ranking Points`,`Point allocation by draw size, round, and result`,bR,!0),wR(pR,`Competitive Bands`,`Rating/ranking band definitions for competitive grouping`,yR,!1),wR(iR,`Draws`,`Draw generation rules and structure options`,xR,!1),wR(rR,`Seeding`,`Seeding thresholds and placement rules by draw size`,xR,!1),wR(oR,`Feed-In`,`Feed-in consolation structure rules`,xR,!1),wR(sR,`Progression`,`Player progression between draw structures`,xR,!1),wR(mR,`Voluntary Consolation`,`Voluntary consolation entry rules`,xR,!1),wR(cR,`Round Naming`,`Custom round name labels (QF, SF, F, etc.)`,xR,!1),wR(hR,`Participant`,`Participant display and data rules`,SR,!1),wR(gR,`Display`,`Client display configuration (public vs admin views)`,CR,!1),wR(_R,`Audit`,`Audit trail and change logging configuration`,CR,!1)];function ER(e){return TR.find(t=>t.policyType===e)}function DR(e){return e===`rankingPoints`?yF():e===`scheduling`?jI():{}}var OR=[vR,yR,bR,xR,SR,CR];function kR(e,t){let n=t.toLowerCase().trim();return n?e.filter(e=>{let t=ER(e.policyType);return[e.name,e.description,e.policyType,t?.label??``,e.source].join(` `).toLowerCase().includes(n)}):e}function AR(e,t){let n=new Map;if(t===`type`){for(let e of OR)n.set(e,[]);for(let t of e){let e=ER(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 jR(e){let t=document.createElement(`div`);t.className=DL(),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=OL();let a=document.createElement(`div`);a.className=kL(),a.textContent=`Policy Catalog`;let o=document.createElement(`div`);o.className=AL(),i.appendChild(a),i.appendChild(o),t.appendChild(i);let s=document.createElement(`div`);s.className=jL();let c=document.createElement(`input`);c.type=`text`,c.placeholder=`Search policies...`,c.className=ML(),c.addEventListener(`input`,()=>e.onSearchChange(c.value));let l=document.createElement(`select`);l.className=NL();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=TR.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=PL(),t.appendChild(m);function h(t){r=t;let i=kR(t.catalog,t.searchQuery),a=AR(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=FL();let s=n.has(i),c=document.createElement(`div`);c.className=IL();let l=document.createElement(`span`);l.className=LL(),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=RL(),s&&(d.style.display=`none`);for(let n of o){let r=document.createElement(`div`);r.className=zL(),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=BL(),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=VL();let s=ER(n.policyType),c=document.createElement(`span`);c.className=HL(),c.textContent=s?.label??n.policyType;let l=document.createElement(`span`);l.className=`${HL()} ${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 MR(e){return structuredClone(e)}var NR=class{constructor(e){this.listeners=new Set,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,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:MR(t.policyData),dirty:!1}),this.config.onSelectionChanged?.(t))}clearSelection(){this.state.selectedId&&(this.setState({selectedId:null,editorDraft:null,dirty:!1}),this.config.onSelectionChanged?.(null))}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,policyData:MR(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:MR(e.policyData),dirty:!1})}applyPolicy(){let e=this.getSelectedItem();if(!e)return;let t={...e,policyData:this.state.editorDraft?MR(this.state.editorDraft):MR(e.policyData)};this.config.onPolicyApplied?.(t)}addNewPolicy(e){let t=`user-${e}-${Date.now()}`,n={id:t,name:`New ${e} policy`,policyType:e,source:`user`,description:``,policyData:DR(e)},r=[...this.state.catalog,n];return this.state={...this.state,catalog:r,selectedId:t,editorDraft:MR(n.policyData),dirty:!1},this.emit(),this.config.onPolicyCreated?.(n),this.config.onSelectionChanged?.(n),t}duplicatePolicy(e){let t=this.state.catalog.find(t=>t.id===e);if(!t)return null;let n=`user-${t.policyType}-${Date.now()}`,r={id:n,name:`${t.name} (Copy)`,policyType:t.policyType,source:`user`,description:t.description,policyData:MR(t.policyData)},i=[...this.state.catalog,r];return this.state={...this.state,catalog:i,selectedId:n,editorDraft:MR(r.policyData),dirty:!1},this.emit(),this.config.onPolicyCreated?.(r),this.config.onSelectionChanged?.(r),n}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)}};function PR(e){let t=document.createElement(`div`);t.className=DL();let n=document.createElement(`div`);n.className=UL();let r=document.createElement(`div`);r.className=WL();let i=document.createElement(`div`);i.className=GL();let a=document.createElement(`div`);a.className=kL();let o=document.createElement(`span`);o.className=HL();let s=document.createElement(`span`);s.className=HL(),s.textContent=`read-only`,s.style.display=`none`;let c=document.createElement(`div`);c.className=YL(),c.style.display=`none`,c.title=`Unsaved changes`,i.appendChild(c),i.appendChild(a),i.appendChild(o),i.appendChild(s);let l=document.createElement(`div`);l.className=KL();let u=document.createElement(`button`);u.className=qL(),u.textContent=`Reset`,u.addEventListener(`click`,()=>e.onReset());let d=document.createElement(`button`);d.className=JL(),d.textContent=`Save`,d.addEventListener(`click`,()=>e.onSave());let f=document.createElement(`button`);f.className=qL(),f.textContent=`Apply`,f.addEventListener(`click`,()=>e.onApply());let p=document.createElement(`button`);p.className=qL(),p.textContent=`Duplicate`,p.addEventListener(`click`,()=>e.onDuplicate()),l.appendChild(u),l.appendChild(d),l.appendChild(f),l.appendChild(p);let m=document.createElement(`div`);m.className=KL();let h=document.createElement(`button`);h.className=JL(),h.textContent=`Use as Template`,h.addEventListener(`click`,()=>e.onDuplicate()),m.appendChild(h),r.appendChild(i),r.appendChild(l),r.appendChild(m);let g=document.createElement(`div`);g.className=XL(),n.appendChild(r),n.appendChild(g);let _=document.createElement(`div`);_.className=ZL(),_.textContent=`Select a policy to edit`,t.appendChild(n),t.appendChild(_);function v(e){let t=e.selectedId!==null;if(n.style.display=t?`flex`:`none`,_.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`;a.textContent=r.name,o.textContent=ER(r.policyType)?.label??r.policyType,s.style.display=i?``:`none`,l.style.display=i?`none`:`flex`,m.style.display=i?`flex`:`none`,c.style.display=!i&&e.dirty?`block`:`none`}return{element:t,update:v,bodyElement:g}}function FR(e){let t=document.createElement(`div`);t.className=QL();let n=document.createElement(`textarea`);n.value=JSON.stringify(e.initialData,null,2);let r=document.createElement(`div`);r.className=$L(),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 IR=class{constructor(e){this.currentEditor=null,this.container=null,this.store=new NR(e);let t=jR({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=PR({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())}}),this.layout=eR({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=wL.createEditorInstance(n):e.policyType===`rankingPoints`?this.currentEditor=OI.createEditorInstance(n):this.currentEditor=FR(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 LR(e,t,n,r){e!==void 0&&e<0&&r.push({severity:`error`,path:t,message:n})}function RR(e,t){if(!e.defaultTimes)return;let n=e.defaultTimes.averageTimes;if(n)for(let e=0;e<n.length;e++)LR(n[e].minutes.default,`defaultTimes.averageTimes[${e}].minutes.default`,`Default average time must be non-negative`,t),LR(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++)LR(r[e].minutes.default,`defaultTimes.recoveryTimes[${e}].minutes.default`,`Default recovery time must be non-negative`,t)}function zR(e,t){if(!e.defaultDailyLimits)return;let n=e.defaultDailyLimits;LR(n.SINGLES,`defaultDailyLimits.SINGLES`,`Singles daily limit must be non-negative`,t),LR(n.DOUBLES,`defaultDailyLimits.DOUBLES`,`Doubles daily limit must be non-negative`,t),LR(n.total,`defaultDailyLimits.total`,`Total daily limit must be non-negative`,t)}function BR(e){let t=[];return RR(e,t),zR(e,t),e.matchUpAverageTimes&&VR(e.matchUpAverageTimes,`matchUpAverageTimes`,`averageTimes`,t),e.matchUpRecoveryTimes&&HR(e.matchUpRecoveryTimes,`matchUpRecoveryTimes`,t),UR(e,t),t}function VR(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++)LR(o[e].minutes.default,`${t}[${i}].${n}[${e}].minutes.default`,`Time must be non-negative`,r),LR(o[e].minutes.DOUBLES,`${t}[${i}].${n}[${e}].minutes.DOUBLES`,`Doubles time must be non-negative`,r)}}function HR(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++)LR(i.recoveryTimes[e].minutes.default,`${t}[${r}].recoveryTimes[${e}].minutes.default`,`Recovery time must be non-negative`,n),LR(i.recoveryTimes[e].minutes.DOUBLES,`${t}[${r}].recoveryTimes[${e}].minutes.DOUBLES`,`Doubles recovery time must be non-negative`,n)}}function UR(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 WR(e,t){let n=new IR(e);return n.render(t),n}e.CompositionEditorStore=LN,e.DEFAULT_SCHEDULE_CELL_CONFIG=hN,e.DrawStateManager=dh,e.InlineScoringManager=Qo,e.MATCH_FORMATS=eh,e.POLICY_TYPE_GROUPS=OR,e.POLICY_TYPE_METADATA=TR,e.PolicyCatalogControl=IR,e.PolicyCatalogStore=NR,e.ProfileStore=OT,e.SchedulePageControl=fN,e.SchedulePageStore=dN,e.SchedulingEditorControl=wL,e.SchedulingEditorStore=MI,e.SchedulingProfileControl=VT,e.TemporalGrid=FO,e.TopologyBuilderControl=Lj,e.TopologyStore=Ik,e.activateScheduleCellTypeAhead=FN,e.applyDropCommit=wT,e.badmintonCourt=Xm,e.barButton=bC,e.baseballDiamond=qm,e.basketballCourt=Km,e.buildCourtGridSlot=uN,e.buildDateStrip=zT,e.buildEdgeEditor=jA,e.buildEditorShell=PR,e.buildInspectorPanel=Qw,e.buildInteractiveScoringShell=fF,e.buildIssueIndex=ST,e.buildIssuesPanel=sT,e.buildJsonEditor=FR,e.buildMatchUpCard=nN,e.buildMatchUpCatalog=aN,e.buildNodeEditor=yA,e.buildPolicyCatalogLayout=eR,e.buildPolicyCatalogPanel=jR,e.buildRoundCard=PT,e.buildRoundCatalog=oT,e.buildScheduleDateStrip=lN,e.buildScheduleGridCell=gN,e.buildScheduleInspectorPanel=XM,e.buildScheduleIssueIndex=oN,e.buildScheduleIssuesPanel=cN,e.buildSchedulePageLayout=KM,e.buildSchedulingEditorPanel=CL,e.buildSchedulingProfileLayout=Rw,e.buildSetScore=Ds,e.buildStructureCard=xk,e.buildToolbar=oj,e.buildTopologyBuilderLayout=sj,e.buildTopologyCanvas=qk,e.buildVenueBoard=IT,e.burstChart=qS,e.cModal=F,e.calculateComplement=Cs,e.compositions=ii,e.controlBar=RC,e.courthiveComponentsVersion=$m,e.createCardPopoverManager=zw,e.createCompositionEditor=MP,e.createInlineScoringFooter=uF,e.createPolicyCatalog=WR,e.createPrintCompositionEditor=RP,e.createSchedulePage=IN,e.createSchedulingEditor=TL,e.createSchedulingProfile=HT,e.createTemporalGrid=IO,e.destroyTipster=Hm,e.drawer=od,e.dropDownButton=hC,e.emptySchedulingPolicy=jI,e.engineToMatchUp=Xo,e.filterCatalog=tT,e.filterMatchUpCatalog=eN,e.filterPolicyCatalog=kR,e.findIssuesForLocator=Jw,e.formatCodeLabel=kI,e.fromFactoryDrawData=$S,e.fromLegacyDraw=nC,e.generatePreviewMatchUps=ZO,e.getAgeCategoryModal=fo,e.getCategoryModal=ho,e.getFlightProfileModal=Ko,e.getGenerateTeamsModal=Oi,e.getMatchUpFormatModal=wa,e.getMatchWinner=Ss,e.getMaxAllowedScore=vs,e.getMockParticipantsModal=Si,e.getPlannedRoundKeys=rT,e.getPolicyTypeMeta=ER,e.getPortPosition=Sk,e.getRoundAt=qw,e.getScoringConfig=ts,e.getSetFormatForIndex=hs,e.getSetWinner=bs,e.getVenueRounds=Kw,e.groupCatalog=nT,e.groupMatchUpCatalog=tN,e.groupPolicyCatalog=AR,e.hockeyRink=Jm,e.initDrawer=sd,e.isCompletedStatus=$M,e.isMatchComplete=xs,e.isSetComplete=ys,e.isSetTiebreakOnly=gs,e.isSetTimed=_s,e.mapMatchUpToCellData=PN,e.matchUpLabel=qM,e.matchUpSearchKey=YM,e.maxSeverity=Xw,e.notesToolbar=xm,e.openCompositionEditorModal=Pi,e.openScheduleCellConfigModal=Ii,e.padelCourt=Zm,e.participantLabel=JM,e.pickleballCourt=Ym,e.renderButtons=th,e.renderContainer=Yr,e.renderField=un,e.renderForm=di,e.renderInlineMatchUp=Jo,e.renderMatchUp=Gr,e.renderMenu=zm,e.renderOptions=ln,e.renderParticipant=lr,e.renderParticipantInput=_n,e.renderRound=Kr,e.renderRoundHeader=dr,e.renderSchematicMatchUp=ci,e.renderSchematicRound=li,e.renderSchematicStructure=ui,e.renderScorecard=eF,e.renderStructure=qr,e.renderTeamVsHeader=tF,e.resetScoringConfig=rs,e.resolvePublishedComposition=oi,e.scoringModal=Gl,e.selectItem=_C,e.setScoringConfig=ns,e.shouldApplySmartComplement=ws,e.shouldCreateNextSet=Es,e.shouldShowTiebreak=Ts,e.showCourtAvailabilityModal=NO,e.standardTemplates=Dj,e.tennisCourt=Gm,e.tipster=Um,e.toggleOverlay=OC,e.topologyToDrawOptions=eM,e.updateHeadingSelect=Cm,e.updateTieScore=nF,e.updateToolbarState=Sm,e.validateProfile=dT,e.validateSchedulingPolicy=BR,e.validateTopology=VA,e.validator=on,Object.defineProperty(e,`validators`,{enumerable:!0,get:function(){return uh}})});
|
|
321
|
+
`),disabled:!0})}function gA(e,t,n,r,i,a){let o=t.edges.find(t=>t.targetNodeId===e.id&&t.linkType===cA);if(!o||t.nodes.find(e=>e.id===o.sourceNodeId)?.structureType!==Yk)return;let s=e.structureOptions?.playoffDrawType||Jk;if(i.push({label:`Playoff Draw Type`,field:`playoffDrawType`,value:s,disabled:n,options:lA.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===Yk){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 _A(e,t,n,r,i){let a=fA(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 vA(e,t,n){let r=BO(e.drawSize),i=new Map,a=[];for(let n of t.edges){if(n.linkType!==sA||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!==iA)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 yA(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:nh(1),error:`Name required`}},{label:`Stage`,field:`stage`,value:i.stage,disabled:n,options:dA.map(e=>({...e,selected:e.value===i.stage}))},{label:`Structure Type`,field:`structureType`,value:i.structureType,disabled:n,options:uA.map(e=>({...e,selected:e.value===i.structureType}))},{label:i.stage===rA?`Draw Size`:`Structure Size`,field:`drawSize`,type:`number`,value:String(i.drawSize),...n?{disabled:!0}:i.structureType===tA?{validator:ih(0,256),error:`Must be 0-256`}:{validator:ih(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===tA?0:2))return;let r={drawSize:n};if(i.structureType===Yk){let e=i.structureOptions?.groupSize||4,t=pA(n);!t.includes(e)&&t.length>0&&(r.structureOptions={...i.structureOptions,groupSize:t[0]})}e.onUpdateNode(i.id,r)}}];i.structureType===Yk&&mA(i,r,n,e,s,c),i.stage===oA&&gA(i,r,n,e,s,c),i.stage===iA&&_A(i,n,e,s,c),di(o,s,c);let l=document.createElement(`div`);l.className=`field font-medium`,l.style.cssText=`flex-grow: 1`;let u=document.createElement(`label`);u.style.cssText=`font-weight: bold; font-size: larger;`,u.textContent=`MatchUp Format`,l.appendChild(u);let d=document.createElement(`div`);if(d.className=`tb-format-trigger`,d.textContent=i.matchUpFormat||`Not set`,n?(d.style.cursor=`default`,d.style.opacity=`0.7`):d.onclick=()=>{wa({existingMatchUpFormat:i.matchUpFormat,callback:t=>{e.onUpdateNode(i.id,{matchUpFormat:t||void 0}),d.textContent=t||`Not set`}})},l.appendChild(d),o.appendChild(l),vA(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:bA,LOSER:xA,TOP_DOWN:SA,BOTTOM_UP:CA,QUALIFYING:wA,ROUND_ROBIN:TA}=t.drawDefinitionConstants,EA=`POSITION`,DA=`ALTERNATING`,OA=e=>e===TA,kA=[{label:`Winner`,value:bA},{label:`Loser`,value:xA},{label:`Position`,value:EA}],AA=[{label:`Top-Down`,value:SA},{label:`Bottom-Up`,value:CA},{label:`Alternating`,value:DA}];function jA(e){let t=document.createElement(`div`),n=!!e.readOnly;function r(t,r,i,a,o,s){let c=[],l=[],u=r?ik(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===EA),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===bA&&s?.stage===wA,p=s?GO(s.structureType,s.drawSize,s.structureOptions):8,m=c?GO(c.structureType,c.drawSize,c.structureOptions):8,h=o.linkType===EA&&s&&OA(s.structureType),g=[{label:`Link Type`,field:`linkType`,value:o.linkType,disabled:n,options:kA.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===xA&&(g.push({label:`Feed Profile`,field:`feedProfile`,value:o.feedProfile||SA,disabled:n,options:AA.map(e=>({...e,selected:e.value===(o.feedProfile||SA)}))}),n||_.push({control:`feedProfile`,onChange:({e:t})=>e.onUpdateEdge(o.id,{feedProfile:t.target.value})})),o.linkType===EA&&!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})}})),di(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:MA,QUALIFYING:NA,CONSOLATION:PA,WINNER:FA,LOSER:IA,SINGLE_ELIMINATION:LA,ROUND_ROBIN:RA,AD_HOC:zA}=t.drawDefinitionConstants,BA=`POSITION`;function VA(e){let t=[],n=HA(e,t);return WA(e,UA(e),t),GA(e,t),KA(e,t),qA(e,t),JA(e,n,t),YA(e,t),XA(e,t),QA(e,t),$A(e,t),ej(e)&&t.push({severity:`error`,message:`Circular dependency detected between structures`}),t}function HA(e,t){let n=e.nodes.filter(e=>e.stage===MA);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 UA(e){let t=new Set;for(let n of e.edges)n.linkType===FA&&(n.targetRoundNumber||1)>1&&e.nodes.find(e=>e.id===n.sourceNodeId)?.stage===NA&&t.add(n.targetNodeId);let n=new Map;for(let t of e.edges)t.linkType===IA&&n.set(t.targetNodeId,(n.get(t.targetNodeId)||0)+1);for(let[e,r]of n)r>1&&t.add(e);return t}function WA(e,t,n){for(let r of e.nodes){if(r.structureType===LA&&!t.has(r.id)){let t=e.edges.some(e=>e.targetNodeId===r.id);(r.stage===MA||r.stage===NA)&&!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===zA?0:2;r.drawSize<i&&n.push({message:`"${r.structureName}" draw size must be at least ${i}`,severity:`error`,nodeId:r.id})}}function GA(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=GO(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=GO(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 KA(e,t){let n=new Map;for(let t of e.edges)t.linkType===FA&&(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 qA(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 JA(e,t,n){let r=e.nodes.filter(e=>e.stage===NA);for(let i of r){let r=e.edges.find(e=>e.sourceNodeId===i.id&&e.linkType===FA&&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 YA(e,t){let n=new Map;for(let t of e.edges){if(t.linkType!==FA)continue;let r=t.targetRoundNumber||1;if(r<=1)continue;let i=e.nodes.find(e=>e.id===t.sourceNodeId);if(!i||i.stage!==NA)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=BO(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 XA(e,t){for(let n of e.edges){if(n.linkType!==IA)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=KO(r.structureType,r.drawSize,a),c=BO(i.drawSize);o!==1&&ZA(c,o,s,r,i,a,n.id,t)}}function ZA(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 QA(e,t){let n=e.nodes.filter(e=>e.stage===PA);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===IA){let e=t.sourceRoundNumber||1;i+=KO(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 $A(e,t){let n=new Map;for(let r of e.edges){if(r.linkType!==BA)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===RA){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 ej(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:tj,QUALIFYING:nj,CONSOLATION:rj,PLAY_OFF:ij,LUCKY_DRAW:aj}=t.drawDefinitionConstants;function oj(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=VA(s);if(o.innerHTML=``,e.length===0){o.style.display=`block`;let e=document.createElement(`div`);e.className=`tb-validation-item`,e.innerHTML=`<span style="color:var(--chc-status-success)">✓ Valid topology</span>`,o.appendChild(e)}else{o.style.display=`block`;for(let t of e){let e=document.createElement(`div`);e.className=`tb-validation-item`;let n=document.createElement(`span`);n.className=`tb-validation-icon tb-validation-icon--${t.severity}`,n.textContent=t.severity===`error`?`!`:`?`;let r=document.createElement(`span`);r.textContent=t.message,e.appendChild(n),e.appendChild(r),o.appendChild(e)}}setTimeout(()=>{o.style.display=`none`},5e3)},l=[];if(!n.readOnly){let t=[{label:`Main`,value:tj,onClick:()=>e.onAddStructure(tj),close:!0},{label:`Lucky Draw`,value:aj,onClick:()=>e.onAddStructure(tj,aj),close:!0},{label:`Qualifying`,value:nj,onClick:()=>e.onAddStructure(nj),close:!0},{label:`Consolation`,value:rj,onClick:()=>e.onAddStructure(rj),close:!0},{label:`Playoff`,value:ij,onClick:()=>e.onAddStructure(ij),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()}),RC({target:a,items:l});function u(e){s=e}return{element:r,update:u}}function sj({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:cj,FEED_IN:lj,ROUND_ROBIN:uj,LUCKY_DRAW:dj,MAIN:fj,QUALIFYING:pj,CONSOLATION:mj,PLAY_OFF:hj}=t.drawDefinitionConstants,gj=`WINNER`,_j=`LOSER`,vj=`POSITION`,yj=`tpl-edge-1`,bj=`tpl-edge-2`,xj=`tpl-edge-3`,Sj=`tpl-edge-4`,Cj=`tpl-edge-5`,wj=`tpl-edge-6`,Tj=`tpl-edge-7`,Ej=`R1 losers → R1`,Dj=[{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:fj,structureType:cj,drawSize:32,position:{x:320,y:40}},{id:`tpl-qual`,structureName:`Qualifying`,stage:pj,structureType:cj,drawSize:16,qualifyingPositions:4,position:{x:40,y:40}}],edges:[{id:yj,sourceNodeId:`tpl-qual`,targetNodeId:`tpl-main`,linkType:gj,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:fj,structureType:cj,drawSize:32,position:{x:40,y:40}},{id:`tpl-cons`,structureName:`Consolation`,stage:mj,structureType:cj,drawSize:16,position:{x:320,y:40}}],edges:[{id:yj,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:_j,sourceRoundNumber:1,targetRoundNumber:1,label:Ej}]}},{name:`Feed-In Championship (FIC)`,description:`Main draw with multi-round fed consolation`,state:{drawName:`FIC`,nodes:[{id:`tpl-main`,structureName:`Main Draw`,stage:fj,structureType:cj,drawSize:32,position:{x:40,y:40}},{id:`tpl-cons`,structureName:`Consolation`,stage:mj,structureType:lj,drawSize:31,position:{x:460,y:40}}],edges:[{id:yj,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:_j,sourceRoundNumber:1,targetRoundNumber:1,label:Ej},{id:bj,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:_j,sourceRoundNumber:2,targetRoundNumber:2,label:`R2 losers → R2`},{id:xj,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:_j,sourceRoundNumber:3,targetRoundNumber:4,label:`R3 losers → R4`},{id:Sj,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:_j,sourceRoundNumber:4,targetRoundNumber:6,label:`R4 losers → R6`},{id:Cj,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:_j,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:fj,structureType:cj,drawSize:32,position:{x:40,y:40}},{id:`tpl-west`,structureName:`West`,stage:mj,structureType:cj,drawSize:16,position:{x:400,y:40}},{id:`tpl-north`,structureName:`North`,stage:mj,structureType:cj,drawSize:8,position:{x:400,y:210}},{id:`tpl-ne`,structureName:`Northeast`,stage:mj,structureType:cj,drawSize:4,position:{x:400,y:380}},{id:`tpl-south`,structureName:`South`,stage:mj,structureType:cj,drawSize:8,position:{x:680,y:40}},{id:`tpl-sw`,structureName:`Southwest`,stage:mj,structureType:cj,drawSize:4,position:{x:680,y:210}},{id:`tpl-nw`,structureName:`Northwest`,stage:mj,structureType:cj,drawSize:4,position:{x:680,y:380}},{id:`tpl-se`,structureName:`Southeast`,stage:mj,structureType:cj,drawSize:4,position:{x:960,y:40}}],edges:[{id:yj,sourceNodeId:`tpl-east`,targetNodeId:`tpl-west`,linkType:_j,sourceRoundNumber:1,targetRoundNumber:1,label:Ej},{id:bj,sourceNodeId:`tpl-east`,targetNodeId:`tpl-north`,linkType:_j,sourceRoundNumber:2,targetRoundNumber:1,label:`R2 losers → R1`},{id:xj,sourceNodeId:`tpl-east`,targetNodeId:`tpl-ne`,linkType:_j,sourceRoundNumber:3,targetRoundNumber:1,label:`R3 losers → R1`},{id:Sj,sourceNodeId:`tpl-west`,targetNodeId:`tpl-south`,linkType:_j,sourceRoundNumber:1,targetRoundNumber:1,label:Ej},{id:Cj,sourceNodeId:`tpl-west`,targetNodeId:`tpl-sw`,linkType:_j,sourceRoundNumber:2,targetRoundNumber:1,label:`R2 losers → R1`},{id:wj,sourceNodeId:`tpl-north`,targetNodeId:`tpl-nw`,linkType:_j,sourceRoundNumber:1,targetRoundNumber:1,label:Ej},{id:Tj,sourceNodeId:`tpl-south`,targetNodeId:`tpl-se`,linkType:_j,sourceRoundNumber:1,targetRoundNumber:1,label:Ej}]}},{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:fj,structureType:uj,drawSize:16,structureOptions:{groupSize:4},position:{x:40,y:40}},{id:`tpl-playoff-gold`,structureName:`Gold Flight`,stage:hj,structureType:cj,drawSize:8,position:{x:320,y:40}},{id:`tpl-playoff-silver`,structureName:`Silver Flight`,stage:hj,structureType:cj,drawSize:8,position:{x:320,y:220}}],edges:[{id:yj,sourceNodeId:`tpl-main`,targetNodeId:`tpl-playoff-gold`,linkType:vj,finishingPositions:[1,2],label:`positions 1,2`},{id:bj,sourceNodeId:`tpl-main`,targetNodeId:`tpl-playoff-silver`,linkType:vj,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:fj,structureType:dj,drawSize:11,position:{x:40,y:40}},{id:`tpl-cons`,structureName:`Consolation`,stage:mj,structureType:cj,drawSize:4,position:{x:340,y:40}}],edges:[{id:yj,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons`,linkType:_j,sourceRoundNumber:1,targetRoundNumber:1,label:Ej}]}},{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:fj,structureType:dj,drawSize:25,position:{x:40,y:40}},{id:`tpl-cons-rr`,structureName:`Consolation RR`,stage:mj,structureType:uj,drawSize:12,structureOptions:{groupSize:4},position:{x:500,y:40}}],edges:[{id:yj,sourceNodeId:`tpl-main`,targetNodeId:`tpl-cons-rr`,linkType:_j,sourceRoundNumber:1,targetRoundNumber:1,label:Ej}]}},{name:`Adaptive (drawSize 11)`,description:`Compass-like multi-structure topology with lucky draw structures`,state:{drawName:`Adaptive`,nodes:[{id:`tpl-east`,structureName:`East`,stage:fj,structureType:dj,drawSize:11,position:{x:40,y:40}},{id:`tpl-west`,structureName:`West`,stage:mj,structureType:dj,drawSize:6,position:{x:340,y:40}},{id:`tpl-north`,structureName:`North`,stage:mj,structureType:cj,drawSize:2,position:{x:340,y:250}},{id:`tpl-south`,structureName:`South`,stage:mj,structureType:cj,drawSize:2,position:{x:600,y:40}}],edges:[{id:yj,sourceNodeId:`tpl-east`,targetNodeId:`tpl-west`,linkType:_j,sourceRoundNumber:1,targetRoundNumber:1,label:`R1 losers → R1 (6 losers)`},{id:bj,sourceNodeId:`tpl-east`,targetNodeId:`tpl-north`,linkType:_j,sourceRoundNumber:2,targetRoundNumber:1,label:`R2 losers → R1 (2 losers)`},{id:xj,sourceNodeId:`tpl-west`,targetNodeId:`tpl-south`,linkType:_j,sourceRoundNumber:1,targetRoundNumber:1,label:`R1 losers → R1 (2 losers)`}]}}],{MAIN:Oj,QUALIFYING:kj,CONSOLATION:Aj,PLAY_OFF:jj,SINGLE_ELIMINATION:Mj,LUCKY_DRAW:Nj,WINNER:Pj,LOSER:Fj}=t.drawDefinitionConstants,Ij=`POSITION`,Lj=class{constructor(e={}){this.config=e,this.store=new Ik(e.initialState);let t=[...Dj,...e.templates||[]],n=!!e.readOnly,r=this.buildToolbarPanel(t,n),i=this.buildCanvasPanel(n),a=yA({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=jA({onUpdateEdge:n?()=>{}:(e,t)=>this.store.updateEdge(e,t),onDeleteEdge:n?()=>{}:e=>this.store.removeEdge(e),readOnly:n});this.layout=sj({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 oj({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 qk({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===Ij){let i=this.store.getState().edges.filter(t=>t.sourceNodeId===e&&t.linkType===Ij),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===Fj){let i=this.store.getState().edges.filter(t=>t.sourceNodeId===e&&t.linkType===Fj),a=new Set(i.map(e=>e.sourceRoundNumber)),o=r?GO(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===Pj&&r?.stage===kj;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===Nj,r=this.store.getState().nodes.filter(t=>t.stage===e).length,i={[Oj]:n?`Lucky Draw`:`Main Draw`,[kj]:`Qualifying ${r+1}`,[Aj]:`Consolation`,[jj]:`Playoff ${r+1}`},a={[Oj]:n?11:32,[kj]:16,[Aj]:16,[jj]:4}[e]||16,o=this.store.addNode({structureName:i[e]||e,stage:e,structureType:t||Mj,drawSize:a,...e===kj&&{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+yk(e)+40;n>t.scrollLeft+t.clientWidth&&t.scrollTo({left:n-t.clientWidth,behavior:`smooth`})})}handleGenerate(){let e=this.store.getState(),t=VA(e);t.some(e=>e.severity===`error`)&&console.warn(`Topology validation errors:`,t),this.config.onGenerate&&this.config.onGenerate(e)}},{MAIN:Rj,CONSOLATION:zj,QUALIFYING:Bj,PLAY_OFF:Vj,SINGLE_ELIMINATION:Hj,FEED_IN:Uj,FIRST_MATCH_LOSER_CONSOLATION:Wj,FEED_IN_CHAMPIONSHIP:Gj,COMPASS:Kj,WINNER:qj,LOSER:Jj,ROUND_ROBIN:Yj,AD_HOC:Xj,LUCKY_DRAW:Zj}=t.drawDefinitionConstants,Qj=`POSITION`;function $j(e,t){let n=e.nodes.filter(e=>e.stage===zj),r=e.nodes.filter(e=>e.stage===Bj),i=e.nodes.filter(e=>e.stage===Vj);if(t.structureType===Yj)return e.edges.some(n=>n.sourceNodeId===t.id&&n.linkType===Qj&&e.nodes.some(e=>e.id===n.targetNodeId&&e.stage===Vj))?`ROUND_ROBIN_WITH_PLAYOFF`:Yj;if(t.structureType===Xj)return Xj;if(t.structureType===Uj)return Uj;if(t.structureType===Zj)return Zj;if(n.length===7&&r.length===0&&i.length===0){let n=e.edges.filter(e=>e.linkType===Jj&&e.sourceNodeId===t.id),r=new Set(n.map(e=>e.sourceRoundNumber));if(r.has(1)&&r.has(2)&&r.has(3))return Kj}if(n.length===1&&r.length===0&&i.length===0){let r=n[0],i=e.edges.filter(e=>e.linkType===Jj&&e.sourceNodeId===t.id&&e.targetNodeId===r.id);if(r.structureType===Uj||i.length>1)return Gj;if(i.length===1&&i[0].sourceRoundNumber===1)return Wj}return Hj}function eM(e){let t=e.nodes.find(e=>e.stage===Rj);if(!t)throw Error(`No main structure node found`);let n=e.nodes.filter(e=>e.stage===Bj),r=e.nodes.filter(e=>e.stage===Vj),i=$j(e,t);i===Hj&&!aM(t.drawSize)&&(i=Uj);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&&rM(a,n,e.edges);let o=[];return tM(e,t,i,o),nM(e,t,r,a),{drawOptions:a,postGenerationMethods:o}}function tM(e,t,n,r){let i=e.nodes.filter(e=>e.stage===zj),a=e.edges.filter(e=>e.linkType===Jj&&e.sourceNodeId===t.id&&i.some(t=>t.id===e.targetNodeId)),o=[Wj,Gj,Kj];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 nM(e,t,n,r){let i=t.structureType===Yj,a=i?e.edges.filter(e=>e.sourceNodeId===t.id&&e.linkType===Qj&&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||Hj,s={finishingPositions:a,structureName:e.structureName,drawType:o};o===Yj&&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=iM(t.id,n,e.edges);i&&(r.withPlayoffs=i)}}function rM(e,t,n){let r=n.filter(e=>e.linkType===qj&&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 iM(e,t,n){let r=n.filter(n=>n.sourceNodeId===e&&n.linkType===Jj&&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=iM(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 aM(e){return e>0&&(e&e-1)==0}var{MAIN:oM}=t.drawDefinitionConstants,sM=()=>`spl-layout`,cM=()=>`spl-left`,lM=()=>`spl-toggle`,uM=()=>`spl-center`,dM=()=>`spl-center-header`,fM=()=>`spl-center-title`,pM=()=>`spl-center-meta`,mM=()=>`spl-grid-slot`,hM=()=>`spl-right`,gM=()=>`spl-matchup-card`,_M=()=>`spl-card-title`,vM=()=>`spl-card-sides`,yM=()=>`spl-card-meta`,bM=()=>`spl-card-chips`,xM=()=>`spl-card-chip`,SM=()=>`sp-panel`,CM=()=>`sp-panel-header`,wM=()=>`sp-panel-title`,TM=()=>`sp-panel-meta`,EM=()=>`sp-date-strip`,DM=()=>`sp-date-chip`,OM=()=>`sp-badges`,kM=()=>`sp-catalog`,AM=()=>`sp-catalog-toolbar`,jM=()=>`sp-input`,MM=()=>`sp-select`,NM=()=>`sp-group`,PM=()=>`sp-group-header`,FM=()=>`sp-group-body`,IM=()=>`sp-group-chevron`,LM=()=>`sp-issues`,RM=()=>`sp-issue`,zM=()=>`sp-issue-code`,BM=()=>`sp-issue-msg`,VM=()=>`sp-inspector`,HM=()=>`sp-kv`,UM=()=>`sp-kv-key`,WM=()=>`sp-kv-value`,GM=()=>`sp-small`;function KM(e,t,n){let r=!!n?.hideLeft,i=n?.catalogSide===`left`,a=document.createElement(`div`);a.className=sM();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=cM(),s=document.createElement(`button`),s.className=lM(),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=hM(),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 qM(e){let t=e.sides;if(t?.length===2){let e=JM(t[0]),n=JM(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 JM(e){return e?`${e.participantName??``}${e.seedNumber?` [${e.seedNumber}]`:``}`:``}function YM(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 XM(){let e=document.createElement(`div`);e.className=SM();let t=document.createElement(`div`);t.className=CM();let n=document.createElement(`div`);n.className=wM(),n.textContent=`Inspector`,t.appendChild(n),e.appendChild(t);let r=document.createElement(`div`);r.className=VM(),e.appendChild(r);function i(e){r.innerHTML=``;let t=e.selectedMatchUp;if(!t){let e=document.createElement(`div`);e.className=GM(),e.textContent=`Select a matchUp in the catalog to see details.`,r.appendChild(e);return}if(ZM(r,`Event`,t.eventName),ZM(r,`Draw`,t.drawName??t.drawId),ZM(r,`Round`,t.roundName??`Round ${t.roundNumber}`),ZM(r,`Type`,t.matchUpType??`—`),ZM(r,`Format`,t.matchUpFormat??`—`),ZM(r,`Scheduled`,t.isScheduled?`Yes`:`No`),t.scheduledTime&&ZM(r,`Time`,t.scheduledTime),t.scheduledCourtName&&ZM(r,`Court`,t.scheduledCourtName),t.sides?.length){let e=document.createElement(`div`);e.className=GM(),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=JM(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 ZM(e,t,n){let r=document.createElement(`div`);r.className=HM();let i=document.createElement(`div`);i.className=UM(),i.textContent=t;let a=document.createElement(`div`);a.className=WM(),a.textContent=n,r.appendChild(i),r.appendChild(a),e.appendChild(r)}var QM=new Set([`COMPLETED`,`RETIRED`,`WALKOVER`,`DEFAULTED`,`DOUBLE_WALKOVER`,`DOUBLE_DEFAULT`,`CANCELLED`,`ABANDONED`,`DEAD_RUBBER`]);function $M(e){return!!e&&QM.has(e)}function eN(e,t,n=`dim`,r,i=!1){let a=t.toLowerCase().trim();return e.filter(e=>n===`hide`&&e.isScheduled||!i&&$M(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?YM(e).includes(a):!0)}function tN(e,t){let n=new Map,r=e=>t===`draw`?`${e.eventName} \u2014 ${e.drawName??e.drawId}`:t===`round`?e.roundName??`Round ${e.roundNumber}`:t===`structure`?`${e.eventName} \u2014 ${e.structureId}`: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 nN(e,t){let n=document.createElement(`div`);n.className=gM(),n.setAttribute(`data-matchup-id`,e.matchUpId);let r=$M(e.matchUpStatus);e.isScheduled?(n.classList.add(`scheduled`),n.draggable=!1):r?(n.classList.add(`completed`),n.draggable=!1):(n.draggable=!0,n.addEventListener(`dragstart`,t=>{t.stopPropagation(),t.dataTransfer.setDragImage(n,n.offsetWidth/2,20),t.dataTransfer.setData(`application/json`,JSON.stringify({type:`CATALOG_MATCHUP`,matchUp:e})),t.dataTransfer.effectAllowed=`copyMove`})),t.onClick&&n.addEventListener(`click`,n=>{n.stopPropagation(),t.onClick(e)});let i=document.createElement(`div`);i.className=_M(),i.textContent=`${e.eventName} \u2014 ${e.roundName??`Round `+e.roundNumber}`,n.appendChild(i);let a=document.createElement(`div`);a.className=vM(),a.textContent=qM(e),n.appendChild(a);let o=document.createElement(`div`);o.className=yM();let s=[];e.drawName&&s.push(e.drawName),e.matchUpType&&s.push(e.matchUpType.toLowerCase()),o.textContent=s.join(` · `),n.appendChild(o);let c=document.createElement(`div`);if(c.className=bM(),e.scheduledTime&&c.appendChild(rN(e.scheduledTime,`time`)),e.scheduledCourtName&&c.appendChild(rN(e.scheduledCourtName,`court`)),e.matchUpFormat&&c.appendChild(rN(e.matchUpFormat,`type`)),r&&e.matchUpStatus){let t=e.matchUpStatus.replace(/_/g,` `);c.appendChild(rN(t,`status`))}if(c.children.length&&n.appendChild(c),e.isScheduled){let e=document.createElement(`span`);e.className=`spl-matchup-check`,e.textContent=`✓`,n.appendChild(e)}return n}function rN(e,t){let n=document.createElement(`div`);return n.className=xM()+` `+t,n.textContent=e,n}function iN(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 aN(e){let t=document.createElement(`div`);t.className=SM();let n=`spl-catalog-drop-over`,r=new Set,i=null,a,o={};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 s=document.createElement(`div`);s.className=CM();let c=document.createElement(`div`);c.className=`spl-catalog-title-row`;let l=document.createElement(`div`);l.className=wM(),l.textContent=`MatchUp Catalog`;let u=document.createElement(`button`);u.className=`spl-catalog-filter-btn`,u.title=`Filter matchUps`,u.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>`,c.appendChild(l),c.appendChild(u);let d=document.createElement(`div`);d.className=TM(),s.appendChild(c),s.appendChild(d),t.appendChild(s);let f=document.createElement(`div`);f.className=AM();let p=document.createElement(`input`);p.type=`text`,p.placeholder=`Search matchUps...`,p.className=jM(),p.addEventListener(`input`,()=>e.onSearchChange(p.value));let m=document.createElement(`select`);m.className=MM();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,m.appendChild(n)}m.addEventListener(`change`,()=>e.onGroupByChange(m.value)),f.appendChild(p),f.appendChild(m),t.appendChild(f);function h(){a&&=(a.destroy(),void 0)}function g(){return!!(o.eventType||o.eventName||o.drawName||o.gender||o.roundName)}function _(){u.classList.toggle(`active`,g())}function v(){let t=i?.matchUpCatalog??[],n=document.createElement(`div`);n.className=`spl-filter-popover`;let r=document.createElement(`div`);r.className=`spl-filter-header`;let a=document.createElement(`button`);a.className=`spl-filter-clear-btn`,a.textContent=`Clear All`,a.addEventListener(`click`,t=>{t.stopPropagation(),o={},e.onFilterChange(o),_();for(let e of n.querySelectorAll(`select`))e.value=``}),r.appendChild(a);let s=document.createElement(`button`);s.className=`spl-filter-close-btn`,s.textContent=`×`,s.addEventListener(`click`,e=>{e.stopPropagation(),h()}),r.appendChild(s),n.appendChild(r);let c=[{label:`All Event Types`,key:`eventType`,values:iN(t,e=>e.matchUpType)},{label:`All Events`,key:`eventName`,values:iN(t,e=>e.eventName)},{label:`All Flights`,key:`drawName`,values:iN(t,e=>e.drawName)},{label:`All Genders`,key:`gender`,values:iN(t,e=>e.gender)},{label:`All Rounds`,key:`roundName`,values:iN(t,e=>e.roundName)}];for(let t of c){if(t.values.length<2)continue;let r=document.createElement(`label`);r.className=`spl-filter-label`,r.textContent=t.label,n.appendChild(r);let i=document.createElement(`select`);i.className=`spl-filter-select`;let a=document.createElement(`option`);a.value=``,a.textContent=t.label,i.appendChild(a);for(let e of t.values){let t=document.createElement(`option`);t.value=e,t.textContent=e,i.appendChild(t)}i.value=o[t.key]??``,i.addEventListener(`change`,()=>{o={...o,[t.key]:i.value||void 0},e.onFilterChange(o),_()}),n.appendChild(i)}let l=document.createElement(`label`);l.className=`spl-filter-toggle`;let u=document.createElement(`input`);u.type=`checkbox`,u.checked=i?.showScheduled??!1,u.addEventListener(`change`,()=>{e.onShowScheduledChange?.(u.checked)}),l.appendChild(u),l.appendChild(document.createTextNode(` Show assigned`)),n.appendChild(l);let d=document.createElement(`label`);d.className=`spl-filter-toggle`;let f=document.createElement(`input`);return f.type=`checkbox`,f.checked=i?.showCompleted??!1,f.addEventListener(`change`,()=>{e.onShowCompletedChange(f.checked)}),d.appendChild(f),d.appendChild(document.createTextNode(` Show completed`)),n.appendChild(d),n}u.addEventListener(`click`,()=>{h(),a=hm(u,{content:v(),placement:`bottom-start`,interactive:!0,trigger:`manual`,appendTo:()=>t,onClickOutside:()=>h(),theme:``}),a.show()});let y=document.createElement(`div`);y.className=kM(),t.appendChild(y);function b(t){i=t,o=t.catalogFilters??{},_();let n=t.showScheduled?t.scheduledBehavior:`hide`,a=eN(t.matchUpCatalog,t.catalogSearchQuery,n,t.catalogFilters,t.showCompleted),s=tN(a,t.catalogGroupBy);d.textContent=`${a.filter(e=>!e.isScheduled).length} unscheduled`,p.value!==t.catalogSearchQuery&&(p.value=t.catalogSearchQuery),m.value!==t.catalogGroupBy&&(m.value=t.catalogGroupBy),y.innerHTML=``;for(let[n,a]of s){let o=document.createElement(`div`);o.className=NM();let s=r.has(n),c=document.createElement(`div`);c.className=PM();let l=document.createElement(`span`);l.className=IM(),l.textContent=s?`▶`:`▼`;let u=document.createElement(`span`);u.textContent=`${n} (${a.length})`,c.appendChild(l),c.appendChild(u),c.addEventListener(`click`,()=>{r.has(n)?r.delete(n):r.add(n),i&&b(i)});let d=document.createElement(`div`);d.className=FM(),s&&(d.style.display=`none`);for(let n of a){let r=nN(n,{onClick:t=>e.onMatchUpSelected?.(t)});t.selectedMatchUp?.matchUpId===n.matchUpId&&r.classList.add(`selected`),d.appendChild(r)}o.appendChild(c),o.appendChild(d),y.appendChild(o)}}return{element:t,update:b}}function oN(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 sN=`spl-cell--issue-pulse`;function cN(){let e=document.createElement(`div`);e.className=SM();let t=document.createElement(`div`);t.className=CM();let n=document.createElement(`div`);n.className=wM(),n.textContent=`Issues`;let r=document.createElement(`div`);r.className=TM(),t.appendChild(n),t.appendChild(r),e.appendChild(t);let i=document.createElement(`div`);i.className=LM(),e.appendChild(i);function a(e){let t=oN(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=GM(),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=RM(),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=zM(),n.textContent=e.severity;let r=document.createElement(`div`);if(r.className=BM(),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(sN),n.offsetWidth,n.classList.add(sN),n.addEventListener(`animationend`,()=>n.classList.remove(sN),{once:!0}))}return{element:e,update:a}}function lN(e){let t=document.createElement(`div`);t.className=SM();let n=document.createElement(`div`);n.className=CM();let r=document.createElement(`div`);r.className=wM(),r.textContent=`Dates`;let i=document.createElement(`div`);i.className=TM(),n.appendChild(r),n.appendChild(i),t.appendChild(n);let a=document.createElement(`div`);a.className=EM(),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=DM(),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=OM(),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 uN(e,t,n){let r=document.createElement(`div`);r.className=uM();let i=document.createElement(`div`);i.className=dM();let a=document.createElement(`div`);a.className=fM(),a.textContent=`Court Grid`;let o=document.createElement(`div`);o.className=pM(),i.appendChild(a),i.appendChild(o),r.appendChild(i);let s=document.createElement(`div`);s.className=mM(),n?.gridMaxHeight&&(s.style.maxHeight=n.gridMaxHeight),e&&s.appendChild(e),s.addEventListener(`dragover`,e=>{e.preventDefault(),e.dataTransfer.dropEffect=`move`}),s.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(s);function c(e){o.textContent=e.selectedDate??`No date selected`}return{element:r,update:c}}var dN=class{constructor(e){this.listeners=new Set,this.config=e,this.state={matchUpCatalog:e.matchUpCatalog,scheduleDates:e.scheduleDates,issues:e.issues??[],selectedDate:e.scheduleDates[0]?.date??null,selectedMatchUp:null,catalogSearchQuery:``,catalogGroupBy:`event`,catalogFilters:{},showCompleted:!1,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)}},fN=class{constructor(e){this.container=null,this.store=new dN(e);let t=lN({onDateSelected:e=>this.store.selectDate(e)}),n=cN(),r=uN(e.courtGridElement,{onMatchUpDrop:(e,t)=>{this.store.handleMatchUpDrop(e,t)}},{gridMaxHeight:e.gridMaxHeight}),i=aN({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=XM();this.layout=KM({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}},pN=new Set([`IN_PROGRESS`,`SUSPENDED`]),mN=new Set([`CANCELLED`,`ABANDONED`,`COMPLETED`,`DEAD_RUBBER`,`DEFAULTED`,`DOUBLE_WALKOVER`,`DOUBLE_DEFAULT`,`RETIRED`,`WALKOVER`]),hN=`in-progress`,gN=`pending`,_N=`completed`;function vN(e,t,n){let r=e.matchUpStatus;return r&&t.has(r)||e.hasScore&&e.winningSide===void 0&&(!r||!n.has(r))?hN:r&&n.has(r)||e.winningSide!==void 0?_N:gN}function yN(e,t){let n=t?.inProgressStatuses??pN,r=t?.completedStatuses??mN,i=e.cells,a=-1;for(let t=0;t<i.length;t++){let o=i[t];if(!o)continue;let s=vN(o,n,r);if(s===hN)return{courtId:e.courtId,state:hN,matchUp:o,rowIndex:t};s===gN&&a===-1&&(a=t)}return a===-1?{courtId:e.courtId,state:`free`}:{courtId:e.courtId,state:`next`,matchUp:i[a],rowIndex:a}}function bN(e,t){return e.columns.map(e=>yN(e,t))}function xN(e,t){if(t.size===0)return!1;for(let n of e.participantIds)if(t.has(n))return!0;return!1}function SN(e,t){return t.roundNumber!==void 0&&t.drawId!==void 0&&e.drawId===t.drawId&&e.roundNumber!==void 0&&e.roundNumber<t.roundNumber}function CN(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&&xN(o,n)&&(r=e),e>i&&SN(o,t)&&(i=e))}return{participantFloor:r,earlierRoundFloor:i}}function wN(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 TN(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}=CN(e,n);return{courtId:t,rowIndex:wN(r,Math.max(0,i+1,a+1),n.matchUpId)}}var EN=`drop-over`;function DN(e,t,n,r){e.addEventListener(`dragover`,t=>{t.preventDefault(),e.classList.add(EN),t.dataTransfer&&(t.dataTransfer.dropEffect=`move`)}),e.addEventListener(`dragleave`,()=>{e.classList.remove(EN)}),e.addEventListener(`drop`,i=>{if(e.classList.remove(EN),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=TN(r(),t.courtId,o);n.onMatchUpDrop(a,s,i)})}function ON(e){return e===`in-progress`?`LIVE`:e===`next`?`NEXT`:null}function kN(e,t,n,r){let i=document.createElement(`div`);if(i.className=`spl-active-strip-cell state-${e.state}`,i.dataset.courtId=e.courtId,e.rowIndex!==void 0&&(i.dataset.rowIndex=String(e.rowIndex)),r.cellHeight&&(i.style.minHeight=r.cellHeight),e.state!==`free`&&e.matchUp){let t=r.renderCell?.(e.matchUp);if(t)i.appendChild(t);else{let t=document.createElement(`div`);t.className=`spl-active-strip-body`,t.textContent=e.matchUp.participantIds.join(` – `)||e.matchUp.matchUpId,i.appendChild(t)}}let a=ON(e.state);if(a){let e=document.createElement(`span`);e.className=`spl-active-strip-state-pill`,e.textContent=a,i.appendChild(e)}return DN(i,e,t,n),i}function AN(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 jN(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(AN(t));let a=bN(r.grid,t.statusOptions);for(let r of a)n.appendChild(kN(r,e,i,t))}function o(e){r=e,a()}function s(e){n.hidden=!e.activeStripVisible}return{element:n,setData:o,update:s}}var MN=`spl-cell--conflict-highlight`,NN=`spl-cell--complete`,PN={header:[`time`],body:[`eventRound`,`participants`],footer:[`score`],participantDisplay:{nameFormat:`full`,showSeed:!1,showRanking:!1,showNationality:!1,boldWinner:!0,showPotentials:!0}};function FN(e,t){let n=t??PN;return e.isBlocked?IN(e):e.matchUpId?RN(e,n):LN()}function IN(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)}return t.appendChild(r),t}function LN(){let e=document.createElement(`div`);return e.className=`spl-grid-cell spl-cell--empty`,e}function RN(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),zN(n,e),t.header.length){let r=document.createElement(`div`);r.className=`spl-grid-cell__header`,BN(r,t.header,e,t),n.appendChild(r)}if(t.body.length){let r=document.createElement(`div`);r.className=`spl-grid-cell__body`,BN(r,t.body,e,t),n.appendChild(r)}if(t.footer.length){let r=document.createElement(`div`);r.className=`spl-grid-cell__footer`,BN(r,t.footer,e,t),n.appendChild(r)}return e.issueIds?.length&&(n.addEventListener(`mouseenter`,()=>{n.classList.add(MN);for(let t of e.issueIds)document.querySelectorAll(`[data-matchup-id="${t}"]`).forEach(e=>e.classList.add(MN))}),n.addEventListener(`mouseleave`,()=>{n.classList.remove(MN);for(let t of e.issueIds)document.querySelectorAll(`[data-matchup-id="${t}"]`).forEach(e=>e.classList.remove(MN))})),n}function zN(e,t){let n=t.matchUpStatus?.toUpperCase();n===`COMPLETED`||n===`RETIRED`||n===`DEFAULTED`||n===`WALKOVER`?e.classList.add(NN):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 BN(e,t,n,r){for(let i of t){let t=VN(i,n,r);t&&e.appendChild(t)}}function VN(e,t,n){switch(e){case`time`:return HN(t);case`eventRound`:return UN(t);case`participants`:return WN(t,n.participantDisplay);case`score`:return YN(t);case`matchUpStatus`:return XN(t);case`matchUpFormat`:return ZN(t);case`umpire`:return QN(t);default:return null}}function HN(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 UN(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 WN(e,t){let n=t??PN.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(qN());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(KN()):(t>0&&!i[t-1]?.bye&&r.appendChild(qN()),r.appendChild(GN(a,e,n,a.sideNumber??t+1)))}return(a||o)&&i.length===1&&!i[0].bye&&r.appendChild(KN()),r}function GN(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=JN(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 KN(){let e=document.createElement(`div`);return e.className=`spl-grid-cell__bye`,e.textContent=`BYE`,e}function qN(){let e=document.createElement(`div`);return e.className=`spl-grid-cell__vs`,e.textContent=`vs.`,e}function JN(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 YN(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 XN(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 ZN(e){if(!e.matchUpFormat)return null;let t=document.createElement(`div`);return t.className=`spl-grid-cell__format`,t.textContent=e.matchUpFormat,t}function QN(e){if(!e.umpire)return null;let t=document.createElement(`div`);return t.className=`spl-grid-cell__umpire`,t.textContent=e.umpire,t}function $N(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 eP({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++}re({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 tP(e,t){let n=new fN(e);return n.render(t),n}var nP=class{constructor(e){this.listeners=new Set,this.config=e,this.state={compositionName:e.compositionName||`Custom`,theme:e.composition?.theme||``,configuration:{...e.composition?.configuration||{}},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()}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){this.setState({compositionName:e,theme:t,configuration:{...n},isDirty:!1}),this.notifyChange()}resetToInitial(){this.setState({compositionName:this.config.compositionName||`Custom`,theme:this.config.composition?.theme||``,configuration:{...this.config.composition?.configuration||{}},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})}},rP=()=>`ce-layout`,iP=()=>`ce-left`,aP=()=>`ce-right`,oP=()=>`ce-name-row`,sP=()=>`ce-name-label`,cP=()=>`ce-name-input`,lP=()=>`ce-section`,uP=()=>`ce-section-header`,dP=()=>`ce-section-chevron`,fP=()=>`ce-section-body`,pP=()=>`ce-field`,mP=()=>`ce-field-label`,hP=()=>`ce-field-control`,gP=()=>`ce-select`,_P=()=>`ce-text-input`,vP=()=>`ce-color-input`,yP=()=>`ce-toggle`,bP=()=>`ce-toggle-track`,xP=()=>`ce-preview`,SP=()=>`ce-preview-header`,CP=()=>`ce-preview-body`,wP=()=>`ce-preview-matchup`,TP=()=>`ce-subgroup`,EP=()=>`ce-subgroup-title`;function DP(e,t){let n=document.createElement(`div`);n.className=lP();let r=document.createElement(`div`);r.className=uP();let i=document.createElement(`span`);i.className=dP();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=fP();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 OP(e,t,n,r=!1){let i=document.createElement(`div`);i.className=pP();let a=document.createElement(`span`);a.className=mP(),a.textContent=e,i.appendChild(a);let o=document.createElement(`label`);o.className=yP();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=bP(),o.appendChild(s),o.appendChild(c);let l=document.createElement(`div`);return l.className=hP(),l.appendChild(o),i.appendChild(l),{element:i,setChecked:e=>{s.checked=e},setDisabled:e=>{s.disabled=e}}}function kP(e,t,n,r,i=!1){let a=document.createElement(`div`);a.className=pP();let o=document.createElement(`span`);o.className=mP(),o.textContent=e,a.appendChild(o);let s=document.createElement(`select`);s.className=gP(),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=hP(),c.appendChild(s),a.appendChild(c),{element:a,setValue:e=>{s.value=e}}}function AP(e,t,n,r=``,i=!1){let a=document.createElement(`div`);a.className=pP();let o=document.createElement(`span`);o.className=mP(),o.textContent=e,a.appendChild(o);let s=document.createElement(`input`);s.type=`text`,s.className=_P(),s.value=t,s.placeholder=r,s.disabled=i,s.addEventListener(`input`,()=>n(s.value));let c=document.createElement(`div`);return c.className=hP(),c.appendChild(s),a.appendChild(c),{element:a,setValue:e=>{s.value=e}}}function jP(e,t,n,r=!1){let i=document.createElement(`div`);i.className=pP();let a=document.createElement(`span`);a.className=mP(),a.textContent=e,i.appendChild(a);let o=document.createElement(`input`);o.type=`color`,o.className=vP(),o.value=t||`#000000`,o.disabled=r,o.addEventListener(`input`,()=>n(o.value));let s=document.createElement(`div`);return s.className=hP(),s.appendChild(o),i.appendChild(s),{element:i,setValue:e=>{o.value=e||`#000000`}}}var MP=[],NP=new Set;for(let[,e]of Object.entries(ii))if(!NP.has(e.theme)){NP.add(e.theme);let t=e.theme.replace(`chc-theme-`,``).replace(/-/g,` `).replace(/\b\w/g,e=>e.toUpperCase());MP.push({value:e.theme,label:t})}function PP(e){let t=document.createElement(`div`),n=kP(`Load preset`,[{value:``,label:`— Load preset —`},...Object.keys(ii).map(e=>({value:e,label:e}))],``,t=>{if(!t)return;let r=ii[t];r&&e.loadComposition(t,r.theme,r.configuration||{}),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=kP(`Color theme`,MP,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}}function FP(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration,i=OP(`Nationality flags`,!!r.flags,t=>e.setConfigField(`flags`,t),n),a=kP(`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=kP(`Seed element`,[{value:``,label:`Default`},{value:`sup`,label:`Superscript`},{value:`span`,label:`Inline`}],r.seedingElement||``,t=>e.setConfigField(`seedingElement`,t||void 0),n),s=OP(`Draw positions (1st round)`,!!r.drawPositions,t=>e.setConfigField(`drawPositions`,t),n),c=OP(`Draw positions (all rounds)`,!!r.allDrawPositions,t=>e.setConfigField(`allDrawPositions`,t),n),l=OP(`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 IP(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration,i=OP(`Score box`,!!r.scoreBox,t=>e.setConfigField(`scoreBox`,t),n),a=OP(`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=TP();let s=document.createElement(`div`);s.className=EP(),s.textContent=`Game Score Display`,o.appendChild(s);let c=kP(`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=OP(`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 LP(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration,i=OP(`Gender color`,!!r.genderColor,t=>e.setConfigField(`genderColor`,t),n),a=OP(`Winner color`,!!r.winnerColor,t=>e.setConfigField(`winnerColor`,t),n),o=kP(`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=AP(`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 RP(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration,i=AP(`TBD text`,r.placeHolders?.tbd||``,t=>e.setConfigNestedField(`placeHolders`,`tbd`,t||void 0),`TBD`,n),a=AP(`Bye text`,r.placeHolders?.bye||``,t=>e.setConfigNestedField(`placeHolders`,`bye`,t||void 0),`Bye`,n),o=AP(`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 zP=[{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 BP(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration.scaleAttributes||{},i=kP(`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=kP(`Scale name`,[{value:``,label:`None`},...zP.map(e=>({value:e.scaleName,label:e.label}))],r.scaleName||``,t=>{e.setConfigNestedField(`scaleAttributes`,`scaleName`,t||void 0);let n=zP.find(e=>e.scaleName===t);e.setConfigNestedField(`scaleAttributes`,`accessor`,n?.accessor||void 0)},n),o=jP(`Color`,r.scaleColor||`#ff0000`,t=>e.setConfigNestedField(`scaleAttributes`,`scaleColor`,t),n),s=kP(`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=OP(`Fallback`,!!r.fallback,t=>e.setConfigNestedField(`scaleAttributes`,`fallback`,t),n),l=OP(`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 VP(e){let t=document.createElement(`div`),n=e.getState().readOnly,r=e.getState().configuration,i=OP(`Schedule info`,!!r.scheduleInfo,t=>e.setConfigField(`scheduleInfo`,t),n),a=OP(`MatchUp footer`,!!r.matchUpFooter,t=>e.setConfigField(`matchUpFooter`,t),n),o=OP(`Center info`,!!r.centerInfo,t=>e.setConfigField(`centerInfo`,t),n),s=OP(`Set number`,!!r.resultsInfo,t=>e.setConfigField(`resultsInfo`,t),n),c=OP(`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);function l(e){let t=e.configuration;i.setChecked(!!t.scheduleInfo),a.setChecked(!!t.matchUpFooter),o.setChecked(!!t.centerInfo),s.setChecked(!!t.resultsInfo),c.setChecked(!!t.winnerChevron)}return{element:t,update:l}}var{DOUBLES:HP,SINGLES:UP}=t.eventConstants,{AD_HOC:WP}=t.drawDefinitionConstants,{INDIVIDUAL:GP}=t.participantConstants;function KP({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===HP?HP:UP,completionGoal:f,qualifyingProfiles:r,participantsCount:i,seedsCount:8,matchUpFormat:e,drawSize:o,drawType:l,outcomes:c};l===WP&&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:[GP]}});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||UP}})})}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 qP=null;function JP(){if(!qP){let{matchUps:e}=KP({drawSize:8,eventType:`SINGLES`,randomWinningSide:!0,matchUpFormat:`SET3-S:6/TB7`,withAllRatings:zP.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}]};qP=[...t,i,a,o,s]}return qP}function YP(){let e=document.createElement(`div`);e.className=xP();let t=document.createElement(`div`);t.className=SP(),t.textContent=`Preview`,e.appendChild(t);let n=document.createElement(`div`);n.className=CP(),e.appendChild(n);let r=``,i=``;function a(e){let t=JSON.stringify(e.configuration);if(e.theme===r&&t===i)return;r=e.theme,i=t,n.innerHTML=``;let a={theme:e.theme,configuration:{...e.configuration}},o=JP();for(let e of o){let t=document.createElement(`div`);t.className=wP();let r=Gr({matchUp:e,composition:a,isLucky:!0});t.appendChild(r),n.appendChild(t)}}return{element:e,update:a}}var XP=[{id:`theme`,label:`Theme & Preset`,factory:PP},{id:`display`,label:`Display`,factory:FP},{id:`score`,label:`Score`,factory:IP},{id:`participant`,label:`Participant`,factory:LP},{id:`placeholder`,label:`Placeholders`,factory:RP},{id:`scale`,label:`Scale Attributes`,factory:BP},{id:`layout`,label:`Layout & Info`,factory:VP}];function ZP(e,t){let n=new nP(t),r=document.createElement(`div`);r.className=rP();let i=document.createElement(`div`);i.className=iP();let a=document.createElement(`div`);a.className=oP();let o=document.createElement(`span`);o.className=sP(),o.textContent=`Name`;let s=document.createElement(`input`);s.type=`text`,s.className=cP(),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=XP.map(e=>{let t=DP(e,n);return i.appendChild(t.element),t}),l=document.createElement(`div`);l.className=aP();let u=YP();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,version:1}}}}var QP=[`grand-slam`,`itf`,`minimal`,`none`],$P=[`standard`,`seedings`,`officials`,`none`],eF=[`a4`,`letter`],tF=[`auto`,`portrait`,`landscape`],nF={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 rF(e,t){let n=gF(nF,t.config??{}),r=!!t.readOnly,i=Z(`div`,`pce-root`),a=Z(`div`,`pce-form`),o=Z(`div`,`pce-aside`);i.appendChild(a),i.appendChild(o);let s=null;function c(){a.innerHTML=``,a.appendChild(iF(n,r,l)),a.appendChild(aF(n,r,l)),a.appendChild(oF(n,r,l)),a.appendChild(sF(n,r,t.printType,l)),!r&&t.onSave&&a.appendChild(cF(()=>t.onSave?.(_F(n)))),o.innerHTML=``;let e=Z(`div`,`pce-aside-title`);e.textContent=`Print Type`,o.appendChild(e);let i=Z(`span`,`pce-print-type-pill`);i.textContent=t.printType,o.appendChild(i);let c=Z(`div`,`pce-aside-title`);c.textContent=`Resolved Config`,c.style.marginTop=`8px`,o.appendChild(c),s=Z(`div`,`pce-preview-stub`),s.textContent=JSON.stringify(n,null,2),o.appendChild(s);let u=Z(`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?.(_F(n))}return c(),e.appendChild(i),{destroy:()=>{i.parentNode&&i.parentNode.removeChild(i)},getConfig:()=>_F(n),setConfig:e=>{Object.assign(n,gF(nF,e)),c()}}}function iF(e,t,n){let{section:r,body:i}=pF(`Page`);i.appendChild(lF(`Size`,eF,e.page?.pageSize??`a4`,t,t=>{hF(e,`page`).pageSize=t,n()})),i.appendChild(lF(`Orientation`,tF,e.page?.orientation??`auto`,t,t=>{hF(e,`page`).orientation=t,n()}));let a=Z(`div`,`pce-field pce-field-full`);a.appendChild(mF(`Margins (mm)`));let o=Z(`div`);return o.style.display=`grid`,o.style.gridTemplateColumns=`repeat(4, 1fr)`,o.style.gap=`6px`,[`top`,`right`,`bottom`,`left`].forEach(r=>{o.appendChild(dF(r,e.page?.margins?.[r]??10,t,t=>{let i=hF(hF(e,`page`),`margins`);i[r]=t,n()}))}),a.appendChild(o),i.appendChild(a),r}function aF(e,t,n){let{section:r,body:i}=pF(`Header`);return i.appendChild(lF(`Layout`,QP,e.header?.layout??`itf`,t,t=>{hF(e,`header`).layout=t,n()})),i.appendChild(uF(`Tournament name`,e.header?.tournamentName??``,t,t=>{hF(e,`header`).tournamentName=t,n()})),i.appendChild(uF(`Subtitle`,e.header?.subtitle??``,t,t=>{hF(e,`header`).subtitle=t||void 0,n()})),r}function oF(e,t,n){let{section:r,body:i}=pF(`Footer`);return i.appendChild(lF(`Layout`,$P,e.footer?.layout??`standard`,t,t=>{hF(e,`footer`).layout=t,n()})),i.appendChild(fF(`Show timestamp`,e.footer?.showTimestamp??!0,t,t=>{hF(e,`footer`).showTimestamp=t,n()})),i.appendChild(fF(`Show page numbers`,e.footer?.showPageNumbers??!0,t,t=>{hF(e,`footer`).showPageNumbers=t,n()})),r}function sF(e,t,n,r){let{section:i,body:a}=pF(`Content — ${n}`);if(n===`draw`){let n=hF(hF(e,`content`),`draw`);a.appendChild(fF(`Include seedings`,!!n.includeSeedings,t,e=>{n.includeSeedings=e,r()})),a.appendChild(fF(`Include scores`,!!n.includeScores,t,e=>{n.includeScores=e,r()})),a.appendChild(fF(`Show byes`,!!n.showByes,t,e=>{n.showByes=e,r()})),a.appendChild(fF(`Show draw positions`,!!n.showDrawPositions,t,e=>{n.showDrawPositions=e,r()}))}else if(n===`schedule`){let n=hF(hF(e,`content`),`schedule`);a.appendChild(lF(`Cell style`,[`detailed`,`compact`],n.cellStyle??`detailed`,t,e=>{n.cellStyle=e,r()})),a.appendChild(fF(`Show match numbers`,!!n.showMatchNumbers,t,e=>{n.showMatchNumbers=e,r()})),a.appendChild(uF(`Alert banner`,n.alertBanner??``,t,e=>{n.alertBanner=e||void 0,r()}))}else{let e=Z(`div`,`pce-field pce-field-full`),t=Z(`div`,`pce-preview-note`);t.textContent=`Content options for "${n}" not yet implemented.`,e.appendChild(t),a.appendChild(e)}return i}function cF(e){let t=Z(`div`,`pce-actions`),n=Z(`button`,`pce-button pce-button-primary`);return n.type=`button`,n.textContent=`Save`,n.addEventListener(`click`,e),t.appendChild(n),t}function lF(e,t,n,r,i){let a=Z(`div`,`pce-field`);a.appendChild(mF(e));let o=Z(`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 uF(e,t,n,r){let i=Z(`div`,`pce-field`);i.appendChild(mF(e));let a=Z(`input`,`pce-input`);return a.type=`text`,a.value=t,a.disabled=n,a.addEventListener(`input`,()=>r(a.value)),i.appendChild(a),i}function dF(e,t,n,r){let i=Z(`div`,`pce-field`);i.appendChild(mF(e));let a=Z(`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 fF(e,t,n,r){let i=Z(`div`,`pce-field pce-checkbox-row pce-field-full`),a=Z(`input`);a.type=`checkbox`,a.checked=t,a.disabled=n,a.addEventListener(`change`,()=>r(a.checked)),i.appendChild(a);let o=mF(e);return o.style.fontSize=`13px`,o.style.color=`var(--chc-text-primary, #222)`,i.appendChild(o),i}function pF(e){let t=Z(`div`,`pce-section`),n=Z(`div`,`pce-section-header`);n.textContent=e;let r=Z(`div`,`pce-section-body`);return t.appendChild(n),t.appendChild(r),{section:t,body:r}}function Z(e,t){let n=document.createElement(e);return t&&(n.className=t),n}function mF(e){let t=Z(`label`,`pce-field-label`);return t.textContent=e,t}function hF(e,t){return(e[t]===void 0||e[t]===null)&&(e[t]={}),e[t]}function gF(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 _F(e){return JSON.parse(JSON.stringify(e))}var vF=`chc-scorecard-side-score--winner`;function yF({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=OF(e,a)||``,c=OF(e,o)||``,l=r?TF(e.winningSide):e.winningSide,u=bF({side1Name:s,side2Name:c,sets:r?EF(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=wF({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 bF({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=SF(e,`end`),l=SF(t,`start`),u=CF(n,1,r,i),d=CF(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 xF(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(vF),o.classList.remove(vF);let s=r?`side2Score`:`side1Score`,c=r?`side1Score`:`side2Score`;a.textContent=String(i[s]??0),o.textContent=String(i[c]??0);let l=r?TF(e.winningSide):e.winningSide;l===1&&a.classList.add(vF),l===2&&o.classList.add(vF)}function SF(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 CF(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(vF),a.textContent=String(i),a}function wF({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=Gr({matchUp:i?DF(e):e,isLucky:!0,eventHandlers:r,composition:n});t.classList.add(`chc-scorecard-card`),f.appendChild(t)}return a.appendChild(f),a}function TF(e){if(e===1)return 2;if(e===2)return 1}function EF(e){if(e)return e.map(e=>({...e,side1Score:e.side2Score,side2Score:e.side1Score,side1TiebreakScore:e.side2TiebreakScore,side2TiebreakScore:e.side1TiebreakScore}))}function DF(e){let t=e.sides?.map(e=>({...e,sideNumber:e.sideNumber===1?2:1}));return{...e,sides:t,score:e.score?{...e.score,sets:EF(e.score.sets)}:e.score,winningSide:TF(e.winningSide)}}function OF(e,t){return e.sides?.find(e=>e.sideNumber===t)?.participant?.participantName}function kF(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 AF=`chc-iss-score-cell`;function jF(e){if(!e?.matchUpId)throw Error(`buildInteractiveScoringShell: matchUpId is required`);if(!e?.matchUpFormat)throw Error(`buildInteractiveScoringShell: matchUpFormat is required`);let t=e.initialMatchUp??MF(e),n=new Set,r=new Qo({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)))}function c(){LF()&&(r.reset(e.matchUpId,t),l(),a(r.getMatchUp(e.matchUpId,t),!1))}function l(){i.innerHTML=``,i.append(NF(e),PF(r,e,t),FF(r,e,o),IF(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 MF(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 NF(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 PF(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=AF,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=AF,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=AF,e.textContent=`0`,s.append(e);let t=document.createElement(`div`);t.className=AF,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 FF(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 IF(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 LF(){return typeof globalThis>`u`||typeof globalThis.confirm!=`function`?!1:globalThis.confirm(`Reset the scoring session? This will clear all points.`)}function RF(){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 Q(e){return structuredClone(e)}var zF=class{constructor(e){this.listeners=new Set,this.config=e;let t=Q(e.initialPolicy??RF()),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 Q(this.state.draft)}setData(e){let t=e.awardProfiles?.length??0;this.state={...this.state,draft:Q(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=Q(this.state.draft);t.policyName=e,this.commitDraft(t)}setPolicyVersion(e){let t=Q(this.state.draft);t.policyVersion=e,this.commitDraft(t)}setValidDateRange(e,t){let n=Q(this.state.draft);n.validDateRange||={},n.validDateRange[e]=t||void 0,this.commitDraft(n)}setGlobalFlag(e,t){let n=Q(this.state.draft);n[e]=t,this.commitDraft(n)}setDoublesAttribution(e){let t=Q(this.state.draft);t.doublesAttribution=e||void 0,this.commitDraft(t)}setCategoryResolution(e){let t=Q(this.state.draft);t.categoryResolution=e||void 0,this.commitDraft(t)}addProfile(){let e=Q(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=Q(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=Q(this.state.draft);if(!t.awardProfiles||e<0||e>=t.awardProfiles.length)return;let n=Q(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=Q(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=Q(this.state.draft);n.awardProfiles?.[e]&&(n.awardProfiles[e].profileName=t,this.commitDraft(n))}setProfileFlag(e,t,n){let r=Q(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=Q(this.state.draft),i=r.awardProfiles?.[e];i&&(i.finishingPositionRanges||={},i.finishingPositionRanges[t]=n,this.commitDraft(r))}addPositionRow(e,t){let n=Q(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=Q(this.state.draft),r=n.awardProfiles?.[e];r?.finishingPositionRanges&&(delete r.finishingPositionRanges[t],this.commitDraft(n))}setPointsPerWin(e,t){let n=Q(this.state.draft),r=n.awardProfiles?.[e];r&&(t===void 0?delete r.pointsPerWin:r.pointsPerWin=t,this.commitDraft(n))}addBonusPoint(e){let t=Q(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=Q(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=Q(this.state.draft),i=r.awardProfiles?.[e]?.bonusPoints?.[t];i&&(i.finishingPositions=n,this.commitDraft(r))}setBonusPointValue(e,t,n){let r=Q(this.state.draft),i=r.awardProfiles?.[e]?.bonusPoints?.[t];i&&(i.value=n,this.commitDraft(r))}setLevelPositionPoints(e,t,n,r){let i=Q(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=Q(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=Q(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=Q(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=Q(this.state.draft),i=r.awardProfiles?.[e];i&&(n===void 0||n===``?delete i[t]:i[t]=n,this.commitDraft(r))}addQualityWinProfile(){let e=Q(this.state.draft);e.qualityWinProfiles||=[],e.qualityWinProfiles.push({rankingScaleName:`New Profile`,rankingRanges:[{rankRange:[1,10],value:10}]}),this.commitDraft(e)}removeQualityWinProfile(e){let t=Q(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=Q(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=Q(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=Q(this.state.draft),r=n.qualityWinProfiles?.[e];r&&(r.rankingRanges.splice(t,1),this.commitDraft(n))}setQualityWinRange(e,t,n,r){let i=Q(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=Q(this.state.draft);n.aggregationRules||={},t===void 0||t===``?delete n.aggregationRules[e]:n.aggregationRules[e]=t,this.commitDraft(n)}addTiebreakCriterion(e){let t=Q(this.state.draft);t.aggregationRules||={},t.aggregationRules.tiebreakCriteria||(t.aggregationRules.tiebreakCriteria=[]),t.aggregationRules.tiebreakCriteria.push(e),this.commitDraft(t)}removeTiebreakCriterion(e){let t=Q(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=Q(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=Q(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=Q(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?.(Q(e))}emit(){for(let e of this.listeners)e(this.state)}},BF=()=>`re-section`,VF=()=>`re-section-header`,HF=()=>`re-section-chevron`,UF=()=>`re-section-count`,WF=()=>`re-section-body`,GF=()=>`re-field-row`,KF=()=>`re-field-label`,qF=()=>`re-field-input re-field-input--text`,JF=()=>`re-field-input re-field-input--number`,YF=()=>`re-field-input re-field-input--date`,XF=()=>`re-field-select`,ZF=()=>`re-checkbox-row`,QF=()=>`re-points-input`,$F=()=>`re-profile-card`,eI=()=>`re-profile-header`,tI=()=>`re-profile-name-input`,nI=()=>`re-profile-body`,rI=()=>`re-profile-actions`,iI=()=>`re-icon-btn`,aI=()=>`re-icon-btn re-icon-btn--danger`,oI=()=>`re-empty`,sI=()=>`re-editor`,cI=[`totalPoints`,`bestResult`,`headToHead`,`numberOfWins`,`recentResults`,`drawSize`,`numberOfResults`];function lI(e){let t=document.createElement(`div`),n=``;function r(t,n,r,i,a,o){let s=document.createElement(`div`);s.className=GF();let c=document.createElement(`div`);if(c.className=KF(),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=XF();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=JF(),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=aI(),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=oI(),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=XF(),i.style.fontSize=`0.75rem`;let a=new Set(n),o=cI.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=aI(),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=GF();let a=document.createElement(`div`);a.className=KF(),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=JF(),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=oI(),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=ZF();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 uI(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=qF(),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=aI(),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(dI(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(dI(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(dI(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=aI(),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=GF();let s=document.createElement(`div`);if(s.className=KF(),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`?JF():qF(),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=oI(),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=ZF();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 dI(e,t){let n=document.createElement(`input`);return n.type=`number`,n.className=QF(),n.value=String(e),n.addEventListener(`change`,()=>{let e=Number.parseFloat(n.value);Number.isNaN(e)||t(e)}),n}function fI(e){let t=document.createElement(`div`),n=document.createElement(`div`);n.className=GF();let r=document.createElement(`div`);r.className=KF(),r.textContent=`Name`;let i=document.createElement(`input`);i.type=`text`,i.className=qF(),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=GF();let o=document.createElement(`div`);o.className=KF(),o.textContent=`Version`;let s=document.createElement(`input`);s.type=`text`,s.className=qF(),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=GF();let l=document.createElement(`div`);l.className=KF(),l.textContent=`Valid from`;let u=document.createElement(`input`);u.type=`date`,u.className=YF(),u.addEventListener(`change`,()=>e.setValidDateRange(`startDate`,u.value)),c.appendChild(l),c.appendChild(u),t.appendChild(c);let d=document.createElement(`div`);d.className=GF();let f=document.createElement(`div`);f.className=KF(),f.textContent=`Valid until`;let p=document.createElement(`input`);p.type=`date`,p.className=YF(),p.addEventListener(`change`,()=>e.setValidDateRange(`endDate`,p.value)),d.appendChild(f),d.appendChild(p),t.appendChild(d);let m=document.createElement(`div`);m.className=GF();let h=document.createElement(`div`);h.className=KF(),h.textContent=`Doubles attribution`;let g=document.createElement(`select`);g.className=XF();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=GF();let v=document.createElement(`div`);v.className=KF(),v.textContent=`Category resolution`;let y=document.createElement(`select`);y.className=XF();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=ZF();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=ZF();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 pI={1:`W`,2:`F`,4:`SF`,8:`QF`,16:`R16`,32:`R32`,64:`R64`,128:`R128`,256:`R256`},mI=`level-keyed`;function hI(e){return pI[e]??`R${e}`}function gI(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=_I(t);return n.hasConditionalArray?{type:`conditional`}:n.hasLevelFlightNesting?vI(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 _I(e){let t=new Set,n=new Set,r=!1,i=!1;for(let a of e){let e=yI(a);if(e.type===mI){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 vI(e,t){let n={},r=[...t].sort((e,t)=>e-t);for(let t of e){let e=yI(t);if(e.type===mI&&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 yI(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:mI,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:mI,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 bI(e,t={}){if(typeof e==`number`)return e;if(e!=null){if(Array.isArray(e))return xI(e,t);if(typeof e==`object`){if(e.level!==void 0&&t.level!==void 0)return SI(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 xI(e,t){for(let n of e){if(n.drawSizes&&t.drawSize&&n.drawSizes.includes(t.drawSize))return bI(n,t);if(n.drawSize!==void 0&&t.drawSize!==void 0&&(n.threshold?t.drawSize>=n.drawSize:t.drawSize===n.drawSize))return bI({...n,drawSize:void 0,drawSizes:void 0,threshold:void 0},t);if(n.drawSize===void 0&&n.drawSizes===void 0)return bI(n,t)}}function SI(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?bI(n,t):typeof n==`number`?n:void 0}function CI(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 wI(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 TI(e){return e==null?`--`:e.toLocaleString()}var EI=[1,2,4,8,16,32,64,128],DI=`font-size:0.8rem;margin-bottom:0;border-collapse:collapse`,OI=`width:3.5rem;text-align:center`;function kI(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=oI(),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=gI(i),o=Object.keys(i).map(Number).sort((e,t)=>e-t);a.type===`flat`?AI(n,o,i,r.readonly,e,t):a.type===`level-columns`?jI(n,o,i,a.levels,r.readonly,e,t):MI(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 AI(e,t,n,r,i,a){let o=document.createElement(`table`);o.style.cssText=DI;let s=document.createElement(`thead`),c=document.createElement(`tr`);NI(c,`Pos`,OI),NI(c,`Points`,`text-align:right`),r||NI(c,``,`width:2rem`),s.appendChild(c),o.appendChild(s);let l=document.createElement(`tbody`);for(let e of t){let t=document.createElement(`tr`);PI(t,e);let o=document.createElement(`td`);o.style.cssText=`text-align:right;padding:2px 4px`,r?(o.style.fontVariantNumeric=`tabular-nums`,o.textContent=TI(typeof n[e]==`number`?n[e]:bI(n[e]))):o.appendChild(II(typeof n[e]==`number`?n[e]:bI(n[e])??0,t=>i.setFlatPositionPoints(a,e,t))),t.appendChild(o),r||FI(t,()=>i.removePositionRow(a,e)),l.appendChild(t)}o.appendChild(l),e.appendChild(o),r||LI(e,t,i,a)}function jI(e,t,n,r,i,a,o){let s=document.createElement(`table`);s.style.cssText=DI;let c=document.createElement(`thead`),l=document.createElement(`tr`);NI(l,`Pos`,OI);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=aI(),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||NI(l,``,`width:2rem`),c.appendChild(l),s.appendChild(c);let u=document.createElement(`tbody`);for(let e of t){let t=document.createElement(`tr`);PI(t,e);for(let s of r){let r=document.createElement(`td`);r.style.cssText=`text-align:right;padding:2px 4px`;let c=bI(n[e],{level:s});i?(r.style.fontVariantNumeric=`tabular-nums`,r.textContent=TI(c),c===void 0&&(r.style.color=`var(--sp-muted)`)):r.appendChild(II(c??0,t=>a.setLevelPositionPoints(o,e,s,t))),t.appendChild(r)}i||FI(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=QF(),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),RI(n,t,a,o),e.appendChild(n)}}function MI(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=DI;let o=document.createElement(`thead`),s=document.createElement(`tr`);if(NI(s,`Pos`,OI),r.type===`flight-columns`)for(let e of r.flights)NI(s,`F${e}`,`text-align:right;min-width:3.5rem`);else NI(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`);PI(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=bI(i,{flight:e});n.textContent=TI(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=TI(bI(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 NI(e,t,n){let r=document.createElement(`th`);r.textContent=t,r.style.cssText=n+`;padding:2px 4px`,e.appendChild(r)}function PI(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=hI(t),e.appendChild(n)}function FI(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=aI(),r.textContent=`×`,r.title=`Remove position`,r.style.cursor=`pointer`,r.addEventListener(`click`,t),n.appendChild(r),e.appendChild(n)}function II(e,t){let n=document.createElement(`input`);return n.type=`number`,n.className=QF(),n.value=String(e),n.addEventListener(`change`,()=>{let e=Number.parseFloat(n.value);Number.isNaN(e)||t(e)}),n}function LI(e,t,n,r){let i=document.createElement(`div`);i.style.cssText=`display:flex;gap:8px;margin-top:6px;flex-wrap:wrap`,RI(i,t,n,r),e.appendChild(i)}function RI(e,t,n,r){let i=new Set(t),a=EI.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=hI(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 zI(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=GF();let i=document.createElement(`div`);i.className=KF(),i.textContent=`Per-Win`,i.style.minWidth=`80px`;let a=document.createElement(`input`);a.type=`number`,a.className=QF(),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=`${TI(bI(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 BI(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(hI).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=QF(),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=QF(),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=aI(),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 VI(e){let t=document.createElement(`div`);t.style.cssText=`display:inline-flex;gap:0.25rem;flex-wrap:wrap;margin-bottom:0`;let n=wI(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 HI=[{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}],UI=[[`maxDrawSize`,`Max draw size`],[`maxLevel`,`Max level`],[`priority`,`Priority`],[`participationOrder`,`Participation order`]];function WI(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 HI){let t=a[e.field]??[];o&&!t.length||i.appendChild(s(e,t,o))}for(let[n,r]of UI){let s=a[n];if(o&&s===void 0)continue;let c=document.createElement(`div`);c.className=GF();let l=document.createElement(`div`);if(l.className=KF(),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=JF(),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=HI.map(e=>n?.[e.field]??[]),i=UI.map(([e])=>n?.[e]),o=JSON.stringify([r,i,e.readonly]);o!==a&&(a=o,c(e))}return{element:n,update:l}}function GI(e,t){let n=document.createElement(`div`);n.className=$F();let r=document.createElement(`div`);r.className=eI();let i=document.createElement(`span`);i.className=HF(),i.style.flexShrink=`0`,r.appendChild(i);let a=document.createElement(`input`);a.type=`text`,a.className=tI(),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=rI();let l=document.createElement(`button`);l.className=iI(),l.textContent=`⎘`,l.title=`Duplicate profile`,l.addEventListener(`click`,n=>{n.stopPropagation(),e.duplicateProfile(t)});let u=document.createElement(`button`);u.className=aI(),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=nI();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=kI(e,t);d.appendChild(p.element);let m=zI(e,t);d.appendChild(m.element);let h=BI(e,t);d.appendChild(h.element);let g=WI(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=VI(r);if(y.style.flexGrow=`1`,o.appendChild(y),s.textContent=l?``:CI(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 KI(e,t){let n=document.createElement(`div`);n.className=sI();let r=fI(e),i=uI(e),a=lI(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=BF();let c=document.createElement(`div`);c.className=VF();let l=document.createElement(`span`);l.className=HF();let u=document.createElement(`span`);u.textContent=t.label;let d=document.createElement(`span`);d.className=UF(),c.appendChild(l),c.appendChild(u),c.appendChild(d),c.addEventListener(`click`,()=>e.toggleSection(t.id));let f=document.createElement(`div`);f.className=WF(),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=GI(e,t);c.push(s),r.appendChild(s.element),a++}if(!a){let e=document.createElement(`div`);e.className=oI(),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 qI=class e{constructor(e){this.container=null,this.store=new zF(e),this.panel=KI(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 JI(e){return YI[e]??e}var YI={"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 XI(){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 $(e){return structuredClone(e)}var ZI=class{constructor(e){this.listeners=new Set,this.config=e,this.state={draft:$(e.initialPolicy??XI()),expandedSections:new Set([`modificationFlags`,`dailyLimits`,`defaultTimes`,`averageTimes`,`recoveryTimes`]),dirty:!1}}getState(){return this.state}getData(){return $(this.state.draft)}setData(e){this.state={...this.state,draft:$(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=$(this.state.draft);n.allowModificationWhenMatchUpsScheduled||={courts:!1,venues:!1},n.allowModificationWhenMatchUpsScheduled[e]=t,this.commitDraft(n)}setDailyLimit(e,t){let n=$(this.state.draft);n.defaultDailyLimits||={},n.defaultDailyLimits[e]=t,this.commitDraft(n)}setDefaultAverageTime(e,t,n){let r=$(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=$(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=$(this.state.draft);e.matchUpAverageTimes||=[],e.matchUpAverageTimes.push({matchUpFormatCodes:[],averageTimes:[{categoryNames:[],minutes:{default:60}}]}),this.commitDraft(e)}removeAverageFormatGroup(e){let t=$(this.state.draft);t.matchUpAverageTimes&&(t.matchUpAverageTimes.splice(e,1),this.commitDraft(t))}setAverageFormatCodes(e,t){let n=$(this.state.draft),r=n.matchUpAverageTimes?.[e];r&&(r.matchUpFormatCodes=t,this.commitDraft(n))}setAverageTime(e,t,n,r){let i=$(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=$(this.state.draft),n=t.matchUpAverageTimes?.[e];n&&(n.averageTimes.push({categoryTypes:[],minutes:{default:60}}),this.commitDraft(t))}removeAverageCategoryOverride(e,t){let n=$(this.state.draft),r=n.matchUpAverageTimes?.[e];r&&(r.averageTimes.splice(t,1),this.commitDraft(n))}setAverageOverrideCategories(e,t,n,r){let i=$(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=$(this.state.draft);e.matchUpRecoveryTimes||=[],e.matchUpRecoveryTimes.push({matchUpFormatCodes:[],recoveryTimes:[{categoryNames:[],minutes:{default:30}}]}),this.commitDraft(e)}removeRecoveryFormatGroup(e){let t=$(this.state.draft);t.matchUpRecoveryTimes&&(t.matchUpRecoveryTimes.splice(e,1),this.commitDraft(t))}setRecoveryFormatCodes(e,t){let n=$(this.state.draft),r=n.matchUpRecoveryTimes?.[e];r&&(r.matchUpFormatCodes=t,this.commitDraft(n))}setRecoveryTime(e,t,n,r){let i=$(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=$(this.state.draft),n=t.matchUpRecoveryTimes?.[e];n&&(n.recoveryTimes.push({categoryTypes:[],minutes:{default:30}}),this.commitDraft(t))}removeRecoveryCategoryOverride(e,t){let n=$(this.state.draft),r=n.matchUpRecoveryTimes?.[e];r&&(r.recoveryTimes.splice(t,1),this.commitDraft(n))}setRecoveryOverrideCategories(e,t,n,r){let i=$(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?.($(e))}emit(){for(let e of this.listeners)e(this.state)}},QI=()=>`se-section`,$I=()=>`se-section-header`,eL=()=>`se-section-chevron`,tL=()=>`se-section-body`,nL=()=>`se-field-row`,rL=()=>`se-field-label`,iL=()=>`se-field-input`,aL=()=>`se-field-unit`,oL=()=>`se-checkbox-row`,sL=()=>`se-format-group`,cL=()=>`se-format-group-header`,lL=()=>`se-format-group-label`,uL=()=>`se-tag-picker`,dL=()=>`sp-chip`,fL=()=>`sp-chip__remove`,pL=()=>`se-tag-add-wrap`,mL=()=>`sp-btn-icon`,hL=()=>`se-override-row`,gL=()=>`se-override-categories`,_L=()=>`se-override-remove`,vL=()=>`sp-btn sp-btn--sm sp-btn--outline se-add-btn`,yL=()=>`sp-btn-icon sp-btn-icon--danger`,bL=()=>`se-editor`;function xL(e){let t=document.createElement(`div`),n=document.createElement(`div`);n.className=oL();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=oL();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 SL=`is-success`,CL=`is-danger`;function wL(e){if(e===``)return!0;let t=parseInt(e,10);return!isNaN(t)&&t>=0&&String(t)===e.trim()}function TL(e,t){if(t===``){e.classList.remove(SL,CL);return}wL(t)?(e.classList.remove(CL),e.classList.add(SL)):(e.classList.remove(SL),e.classList.add(CL))}function EL(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=nL();let o=document.createElement(`div`);o.className=rL(),o.textContent=i;let s=document.createElement(`input`);s.type=`text`,s.className=iL(),s.placeholder=`0`,s.addEventListener(`input`,()=>{TL(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 DL=`is-success`,OL=`is-danger`;function kL(e){if(e===``)return!0;let t=parseInt(e,10);return!isNaN(t)&&t>=0&&String(t)===e.trim()}function AL(e,t,n){if(t===``&&n){e.classList.remove(DL,OL);return}kL(t)&&(t!==``||n)?(e.classList.remove(OL),e.classList.add(DL)):(e.classList.remove(DL),e.classList.add(OL))}function jL(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=ML(`Default`,`min`,!1),i=ML(`Doubles override`,`min`,!0);t.appendChild(r.row),t.appendChild(i.row),r.input.addEventListener(`input`,()=>{AL(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`,()=>{AL(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=ML(`Default`,`min`,!1),c=ML(`Doubles override`,`min`,!0);t.appendChild(s.row),t.appendChild(c.row),s.input.addEventListener(`input`,()=>{AL(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`,()=>{AL(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 ML(e,t,n){let r=document.createElement(`div`);r.className=nL();let i=document.createElement(`div`);i.className=rL(),i.textContent=e;let a=document.createElement(`input`);a.type=`text`,a.className=iL(),a.placeholder=n?`—`:`0`;let o=document.createElement(`div`);return o.className=aL(),o.textContent=t,r.appendChild(i),r.appendChild(a),r.appendChild(o),{row:r,input:a}}var NL=`is-success`,PL=`is-danger`;function FL(e){if(e===``)return!0;let t=parseInt(e,10);return!isNaN(t)&&t>=0&&String(t)===e.trim()}function IL(e,t,n){if(t===``&&n){e.classList.remove(NL,PL);return}FL(t)&&(t!==``||n)?(e.classList.remove(PL),e.classList.add(NL)):(e.classList.remove(NL),e.classList.add(PL))}function LL(e){let t=document.createElement(`div`);t.className=sL();let n=document.createElement(`div`);n.className=cL();let r=document.createElement(`div`);r.style.flex=`1`;let i=document.createElement(`div`);i.className=lL(),i.textContent=`Formats`,r.appendChild(i);let a=document.createElement(`div`);a.className=uL();for(let t of e.formatCodes){let n=document.createElement(`span`);n.className=dL(),n.title=`${t} — click to edit`;let r=document.createElement(`span`);r.textContent=JI(t),n.addEventListener(`click`,()=>{wa({existingMatchUpFormat:t,callback:n=>{if(!n||n===t)return;let r=e.formatCodes.map(e=>e===t?n:e);e.onFormatCodesChange(r)}})});let i=document.createElement(`span`);i.className=fL(),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=pL();let s=document.createElement(`button`);s.className=mL(),s.textContent=`+`,s.type=`button`,s.title=`Add format code`,s.addEventListener(`click`,t=>{t.stopPropagation(),wa({existingMatchUpFormat:`SET3-S:6/TB7`,callback:t=>{t&&!e.formatCodes.includes(t)&&e.onFormatCodesChange([...e.formatCodes,t])}})}),o.appendChild(s),a.appendChild(o),r.appendChild(a);let c=document.createElement(`button`);c.className=yL(),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=hL();let a=document.createElement(`div`);a.className=`${gL()}${r.isDefault?` all`:``}`,a.textContent=r.categoryLabel;let o=document.createElement(`input`);o.type=`text`,o.className=iL(),o.value=String(r.defaultMinutes),o.placeholder=`0`;let s=n;o.addEventListener(`input`,()=>{IL(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=aL(),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=iL(),u.value=r.doublesMinutes===void 0?``:String(r.doublesMinutes),u.placeholder=`—`,u.addEventListener(`input`,()=>{IL(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=_L(),t.textContent=`×`,t.addEventListener(`click`,()=>e.onRemoveOverride(s)),i.appendChild(t)}t.appendChild(i)}let l=document.createElement(`button`);return l.className=vL(),l.textContent=`+ Add Override`,l.type=`button`,l.addEventListener(`click`,()=>e.onAddOverride()),t.appendChild(l),t}function RL(e,t){let n=document.createElement(`div`),r=document.createElement(`div`);n.appendChild(r);let i=document.createElement(`button`);i.className=vL(),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=LL({formatCodes:a.matchUpFormatCodes,overrides:o,availableFormats:t.matchUpFormatCodes??zL(),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 zL(){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 BL(e,t){let n=document.createElement(`div`),r=document.createElement(`div`);n.appendChild(r);let i=document.createElement(`button`);i.className=vL(),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=LL({formatCodes:a.matchUpFormatCodes,overrides:o,availableFormats:t.matchUpFormatCodes??VL(),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 VL(){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 HL(e,t){let n=document.createElement(`div`);n.className=bL();let r=[{id:`modificationFlags`,label:`Modification Flags`,factory:()=>xL(e)},{id:`dailyLimits`,label:`Daily Limits`,factory:()=>EL(e)},{id:`defaultTimes`,label:`Default Times`,factory:()=>jL(e)},{id:`averageTimes`,label:`Match Average Times`,factory:()=>RL(e,t)},{id:`recoveryTimes`,label:`Match Recovery Times`,factory:()=>BL(e,t)}],i=[];for(let t of r){let r=document.createElement(`div`);r.className=QI();let a=document.createElement(`div`);a.className=$I();let o=document.createElement(`span`);o.className=eL();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=tL();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 UL=class e{constructor(e){this.container=null,this.store=new ZI(e),this.panel=HL(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 WL(e,t){let n=new UL(e);return n.render(t),n}var GL=()=>`pc-layout`,KL=()=>`pc-panel`,qL=()=>`pc-panel-header`,JL=()=>`pc-panel-title`,YL=()=>`pc-panel-meta`,XL=()=>`pc-toolbar`,ZL=()=>`pc-input`,QL=()=>`pc-select`,$L=()=>`pc-catalog`,eR=()=>`pc-group`,tR=()=>`pc-group-header`,nR=()=>`pc-group-chevron`,rR=()=>`pc-group-body`,iR=()=>`pc-card`,aR=()=>`pc-card-title`,oR=()=>`pc-card-meta`,sR=()=>`pc-type-badge`,cR=()=>`pc-editor`,lR=()=>`pc-editor-header`,uR=()=>`pc-editor-header-left`,dR=()=>`pc-editor-actions`,fR=()=>`sp-btn sp-btn--sm`,pR=()=>`sp-btn sp-btn--sm sp-btn--accent`,mR=()=>`pc-dirty-dot`,hR=()=>`pc-editor-body`,gR=()=>`pc-empty`,_R=()=>`pc-json-editor`,vR=()=>`pc-json-error`;function yR(e){let t=document.createElement(`div`);t.className=GL(),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 bR=`scheduling`,xR=`scoring`,SR=`seeding`,CR=`draws`,wR=`avoidance`,TR=`feedIn`,ER=`progression`,DR=`roundNaming`,OR=`positionActions`,kR=`matchUpActions`,AR=`roundRobinTally`,jR=`rankingPoints`,MR=`competitiveBands`,NR=`voluntaryConsolation`,PR=`participant`,FR=`display`,IR=`audit`,LR=`Tournament Operations`,RR=`Scoring & Results`,zR=`Ranking Points`,BR=`Draw Configuration`,VR=`Participants`,HR=`Display & Audit`,UR=(e,t,n,r,i)=>({policyType:e,label:t,description:n,group:r,hasEditor:i}),WR=[UR(bR,`Scheduling`,`Match scheduling, average times, recovery times, daily limits`,LR,!0),UR(OR,`Position Actions`,`Allowed position actions (alternates, walkovers, withdrawals)`,LR,!1),UR(kR,`MatchUp Actions`,`Allowed matchUp status transitions and actions`,LR,!1),UR(wR,`Avoidance`,`Draw placement avoidance rules (club, nationality, region)`,LR,!1),UR(xR,`Scoring`,`Score entry validation and completion rules`,RR,!1),UR(AR,`Round Robin Tally`,`Round-robin group standing calculation method`,RR,!1),UR(jR,`Ranking Points`,`Point allocation by draw size, round, and result`,zR,!0),UR(MR,`Competitive Bands`,`Rating/ranking band definitions for competitive grouping`,RR,!1),UR(CR,`Draws`,`Draw generation rules and structure options`,BR,!1),UR(SR,`Seeding`,`Seeding thresholds and placement rules by draw size`,BR,!1),UR(TR,`Feed-In`,`Feed-in consolation structure rules`,BR,!1),UR(ER,`Progression`,`Player progression between draw structures`,BR,!1),UR(NR,`Voluntary Consolation`,`Voluntary consolation entry rules`,BR,!1),UR(DR,`Round Naming`,`Custom round name labels (QF, SF, F, etc.)`,BR,!1),UR(PR,`Participant`,`Participant display and data rules`,VR,!1),UR(FR,`Display`,`Client display configuration (public vs admin views)`,HR,!1),UR(IR,`Audit`,`Audit trail and change logging configuration`,HR,!1)];function GR(e){return WR.find(t=>t.policyType===e)}function KR(e){return e===`rankingPoints`?RF():e===`scheduling`?XI():{}}var qR=[LR,RR,zR,BR,VR,HR];function JR(e,t){let n=t.toLowerCase().trim();return n?e.filter(e=>{let t=GR(e.policyType);return[e.name,e.description,e.policyType,t?.label??``,e.source].join(` `).toLowerCase().includes(n)}):e}function YR(e,t){let n=new Map;if(t===`type`){for(let e of qR)n.set(e,[]);for(let t of e){let e=GR(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 XR(e){let t=document.createElement(`div`);t.className=KL(),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=qL();let a=document.createElement(`div`);a.className=JL(),a.textContent=`Policy Catalog`;let o=document.createElement(`div`);o.className=YL(),i.appendChild(a),i.appendChild(o),t.appendChild(i);let s=document.createElement(`div`);s.className=XL();let c=document.createElement(`input`);c.type=`text`,c.placeholder=`Search policies...`,c.className=ZL(),c.addEventListener(`input`,()=>e.onSearchChange(c.value));let l=document.createElement(`select`);l.className=QL();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=WR.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=$L(),t.appendChild(m);function h(t){r=t;let i=JR(t.catalog,t.searchQuery),a=YR(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=eR();let s=n.has(i),c=document.createElement(`div`);c.className=tR();let l=document.createElement(`span`);l.className=nR(),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=rR(),s&&(d.style.display=`none`);for(let n of o){let r=document.createElement(`div`);r.className=iR(),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=aR(),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=oR();let s=GR(n.policyType),c=document.createElement(`span`);c.className=sR(),c.textContent=s?.label??n.policyType;let l=document.createElement(`span`);l.className=`${sR()} ${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 ZR(e){return structuredClone(e)}var QR=class{constructor(e){this.listeners=new Set,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,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:ZR(t.policyData),dirty:!1}),this.config.onSelectionChanged?.(t))}clearSelection(){this.state.selectedId&&(this.setState({selectedId:null,editorDraft:null,dirty:!1}),this.config.onSelectionChanged?.(null))}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,policyData:ZR(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:ZR(e.policyData),dirty:!1})}applyPolicy(){let e=this.getSelectedItem();if(!e)return;let t={...e,policyData:this.state.editorDraft?ZR(this.state.editorDraft):ZR(e.policyData)};this.config.onPolicyApplied?.(t)}addNewPolicy(e){let t=`user-${e}-${Date.now()}`,n={id:t,name:`New ${e} policy`,policyType:e,source:`user`,description:``,policyData:KR(e)},r=[...this.state.catalog,n];return this.state={...this.state,catalog:r,selectedId:t,editorDraft:ZR(n.policyData),dirty:!1},this.emit(),this.config.onPolicyCreated?.(n),this.config.onSelectionChanged?.(n),t}duplicatePolicy(e){let t=this.state.catalog.find(t=>t.id===e);if(!t)return null;let n=`user-${t.policyType}-${Date.now()}`,r={id:n,name:`${t.name} (Copy)`,policyType:t.policyType,source:`user`,description:t.description,policyData:ZR(t.policyData)},i=[...this.state.catalog,r];return this.state={...this.state,catalog:i,selectedId:n,editorDraft:ZR(r.policyData),dirty:!1},this.emit(),this.config.onPolicyCreated?.(r),this.config.onSelectionChanged?.(r),n}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)}};function $R(e){let t=document.createElement(`div`);t.className=KL();let n=document.createElement(`div`);n.className=cR();let r=document.createElement(`div`);r.className=lR();let i=document.createElement(`div`);i.className=uR();let a=document.createElement(`div`);a.className=JL();let o=document.createElement(`span`);o.className=sR();let s=document.createElement(`span`);s.className=sR(),s.textContent=`read-only`,s.style.display=`none`;let c=document.createElement(`div`);c.className=mR(),c.style.display=`none`,c.title=`Unsaved changes`,i.appendChild(c),i.appendChild(a),i.appendChild(o),i.appendChild(s);let l=document.createElement(`div`);l.className=dR();let u=document.createElement(`button`);u.className=fR(),u.textContent=`Reset`,u.addEventListener(`click`,()=>e.onReset());let d=document.createElement(`button`);d.className=pR(),d.textContent=`Save`,d.addEventListener(`click`,()=>e.onSave());let f=document.createElement(`button`);f.className=fR(),f.textContent=`Apply`,f.addEventListener(`click`,()=>e.onApply());let p=document.createElement(`button`);p.className=fR(),p.textContent=`Duplicate`,p.addEventListener(`click`,()=>e.onDuplicate()),l.appendChild(u),l.appendChild(d),l.appendChild(f),l.appendChild(p);let m=document.createElement(`div`);m.className=dR();let h=document.createElement(`button`);h.className=pR(),h.textContent=`Use as Template`,h.addEventListener(`click`,()=>e.onDuplicate()),m.appendChild(h),r.appendChild(i),r.appendChild(l),r.appendChild(m);let g=document.createElement(`div`);g.className=hR(),n.appendChild(r),n.appendChild(g);let _=document.createElement(`div`);_.className=gR(),_.textContent=`Select a policy to edit`,t.appendChild(n),t.appendChild(_);function v(e){let t=e.selectedId!==null;if(n.style.display=t?`flex`:`none`,_.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`;a.textContent=r.name,o.textContent=GR(r.policyType)?.label??r.policyType,s.style.display=i?``:`none`,l.style.display=i?`none`:`flex`,m.style.display=i?`flex`:`none`,c.style.display=!i&&e.dirty?`block`:`none`}return{element:t,update:v,bodyElement:g}}function ez(e){let t=document.createElement(`div`);t.className=_R();let n=document.createElement(`textarea`);n.value=JSON.stringify(e.initialData,null,2);let r=document.createElement(`div`);r.className=vR(),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 tz=class{constructor(e){this.currentEditor=null,this.container=null,this.store=new QR(e);let t=XR({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=$R({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())}}),this.layout=yR({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=UL.createEditorInstance(n):e.policyType===`rankingPoints`?this.currentEditor=qI.createEditorInstance(n):this.currentEditor=ez(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 nz(e,t,n,r){e!==void 0&&e<0&&r.push({severity:`error`,path:t,message:n})}function rz(e,t){if(!e.defaultTimes)return;let n=e.defaultTimes.averageTimes;if(n)for(let e=0;e<n.length;e++)nz(n[e].minutes.default,`defaultTimes.averageTimes[${e}].minutes.default`,`Default average time must be non-negative`,t),nz(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++)nz(r[e].minutes.default,`defaultTimes.recoveryTimes[${e}].minutes.default`,`Default recovery time must be non-negative`,t)}function iz(e,t){if(!e.defaultDailyLimits)return;let n=e.defaultDailyLimits;nz(n.SINGLES,`defaultDailyLimits.SINGLES`,`Singles daily limit must be non-negative`,t),nz(n.DOUBLES,`defaultDailyLimits.DOUBLES`,`Doubles daily limit must be non-negative`,t),nz(n.total,`defaultDailyLimits.total`,`Total daily limit must be non-negative`,t)}function az(e){let t=[];return rz(e,t),iz(e,t),e.matchUpAverageTimes&&oz(e.matchUpAverageTimes,`matchUpAverageTimes`,`averageTimes`,t),e.matchUpRecoveryTimes&&sz(e.matchUpRecoveryTimes,`matchUpRecoveryTimes`,t),cz(e,t),t}function oz(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++)nz(o[e].minutes.default,`${t}[${i}].${n}[${e}].minutes.default`,`Time must be non-negative`,r),nz(o[e].minutes.DOUBLES,`${t}[${i}].${n}[${e}].minutes.DOUBLES`,`Doubles time must be non-negative`,r)}}function sz(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++)nz(i.recoveryTimes[e].minutes.default,`${t}[${r}].recoveryTimes[${e}].minutes.default`,`Recovery time must be non-negative`,n),nz(i.recoveryTimes[e].minutes.DOUBLES,`${t}[${r}].recoveryTimes[${e}].minutes.DOUBLES`,`Doubles recovery time must be non-negative`,n)}}function cz(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 lz(e,t){let n=new tz(e);return n.render(t),n}e.CompositionEditorStore=nP,e.DEFAULT_SCHEDULE_CELL_CONFIG=PN,e.DrawStateManager=dh,e.InlineScoringManager=Qo,e.MATCH_FORMATS=eh,e.POLICY_TYPE_GROUPS=qR,e.POLICY_TYPE_METADATA=WR,e.PolicyCatalogControl=tz,e.PolicyCatalogStore=QR,e.ProfileStore=OT,e.SchedulePageControl=fN,e.SchedulePageStore=dN,e.SchedulingEditorControl=UL,e.SchedulingEditorStore=ZI,e.SchedulingProfileControl=VT,e.TemporalGrid=FO,e.TopologyBuilderControl=Lj,e.TopologyStore=Ik,e.activateScheduleCellTypeAhead=eP,e.applyDropCommit=wT,e.badmintonCourt=Xm,e.barButton=bC,e.baseballDiamond=qm,e.basketballCourt=Km,e.buildActiveStripPanel=jN,e.buildCourtGridSlot=uN,e.buildDateStrip=zT,e.buildEdgeEditor=jA,e.buildEditorShell=$R,e.buildInspectorPanel=Qw,e.buildInteractiveScoringShell=jF,e.buildIssueIndex=ST,e.buildIssuesPanel=sT,e.buildJsonEditor=ez,e.buildMatchUpCard=nN,e.buildMatchUpCatalog=aN,e.buildNodeEditor=yA,e.buildPolicyCatalogLayout=yR,e.buildPolicyCatalogPanel=XR,e.buildRoundCard=PT,e.buildRoundCatalog=oT,e.buildScheduleDateStrip=lN,e.buildScheduleGridCell=FN,e.buildScheduleInspectorPanel=XM,e.buildScheduleIssueIndex=oN,e.buildScheduleIssuesPanel=cN,e.buildSchedulePageLayout=KM,e.buildSchedulingEditorPanel=HL,e.buildSchedulingProfileLayout=Rw,e.buildSetScore=Ds,e.buildStructureCard=xk,e.buildToolbar=oj,e.buildTopologyBuilderLayout=sj,e.buildTopologyCanvas=qk,e.buildVenueBoard=IT,e.burstChart=qS,e.cModal=F,e.calculateComplement=Cs,e.compositions=ii,e.controlBar=RC,e.courthiveComponentsVersion=$m,e.createCardPopoverManager=zw,e.createCompositionEditor=ZP,e.createInlineScoringFooter=kF,e.createPolicyCatalog=lz,e.createPrintCompositionEditor=rF,e.createSchedulePage=tP,e.createSchedulingEditor=WL,e.createSchedulingProfile=HT,e.createTemporalGrid=IO,e.destroyTipster=Hm,e.drawer=od,e.dropDownButton=hC,e.emptySchedulingPolicy=XI,e.engineToMatchUp=Xo,e.filterCatalog=tT,e.filterMatchUpCatalog=eN,e.filterPolicyCatalog=JR,e.findIssuesForLocator=Jw,e.formatCodeLabel=JI,e.fromFactoryDrawData=$S,e.fromLegacyDraw=nC,e.generatePreviewMatchUps=ZO,e.getAgeCategoryModal=fo,e.getCategoryModal=ho,e.getFlightProfileModal=Ko,e.getGenerateTeamsModal=Oi,e.getMatchUpFormatModal=wa,e.getMatchWinner=Ss,e.getMaxAllowedScore=vs,e.getMockParticipantsModal=Si,e.getPlannedRoundKeys=rT,e.getPolicyTypeMeta=GR,e.getPortPosition=Sk,e.getRoundAt=qw,e.getScoringConfig=ts,e.getSetFormatForIndex=hs,e.getSetWinner=bs,e.getVenueRounds=Kw,e.groupCatalog=nT,e.groupMatchUpCatalog=tN,e.groupPolicyCatalog=YR,e.hockeyRink=Jm,e.initDrawer=sd,e.isCompletedStatus=$M,e.isMatchComplete=xs,e.isSetComplete=ys,e.isSetTiebreakOnly=gs,e.isSetTimed=_s,e.mapMatchUpToCellData=$N,e.matchUpLabel=qM,e.matchUpSearchKey=YM,e.maxSeverity=Xw,e.notesToolbar=xm,e.openCompositionEditorModal=Pi,e.openScheduleCellConfigModal=Ii,e.padelCourt=Zm,e.participantLabel=JM,e.pickleballCourt=Ym,e.renderButtons=th,e.renderContainer=Yr,e.renderField=un,e.renderForm=di,e.renderInlineMatchUp=Jo,e.renderMatchUp=Gr,e.renderMenu=zm,e.renderOptions=ln,e.renderParticipant=lr,e.renderParticipantInput=_n,e.renderRound=Kr,e.renderRoundHeader=dr,e.renderSchematicMatchUp=ci,e.renderSchematicRound=li,e.renderSchematicStructure=ui,e.renderScorecard=yF,e.renderStructure=qr,e.renderTeamVsHeader=bF,e.resetScoringConfig=rs,e.resolvePublishedComposition=oi,e.scoringModal=Gl,e.selectItem=_C,e.setScoringConfig=ns,e.shouldApplySmartComplement=ws,e.shouldCreateNextSet=Es,e.shouldShowTiebreak=Ts,e.showCourtAvailabilityModal=NO,e.standardTemplates=Dj,e.tennisCourt=Gm,e.tipster=Um,e.toggleOverlay=OC,e.topologyToDrawOptions=eM,e.updateHeadingSelect=Cm,e.updateTieScore=xF,e.updateToolbarState=Sm,e.validateProfile=dT,e.validateSchedulingPolicy=az,e.validateTopology=VA,e.validator=on,Object.defineProperty(e,`validators`,{enumerable:!0,get:function(){return uh}})});
|