!function(){var t={3886:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.isMatchGame=e.isMatch=e.rankingHeader=e.isMajorRound=e.getOriginAbbreviation=e.completeWithBlankMatches=e.findRoot=e.sortBy=e.splitByWithLeftovers=e.splitBy=void 0;const o=n(1491);function r(t){return"child_count"in t}e.splitBy=function(t,e){const n={};for(const o of t){const t=o[e];n[t]||(n[t]=[]),n[t].push(o)}return Object.values(n)},e.splitByWithLeftovers=function(t,e){var n;const o={};for(const r of t){const t=null!==(n=r[e])&&void 0!==n?n:"-1";o[t]||(o[t]=[]),o[t].push(r)}const r=[...Object.entries(o).filter((([t])=>"-1"!==t)).map((([t,e])=>e))];return r[-1]=o[-1],r},e.sortBy=function(t,e){return[...t].sort(((t,n)=>t[e]-n[e]))},e.findRoot=function(t){const e=document.querySelectorAll(t||".brackets-viewer");if(0===e.length)throw Error("Root not found. You must have at least one root element.");if(e.length>1)throw Error("Multiple possible roots were found. Please use `config.selector` to choose a specific root.");const n=e[0];if(!n.classList.contains("brackets-viewer"))throw Error("The selected root must have a `.brackets-viewer` class.");return n},e.completeWithBlankMatches=function(t,e,n){if(!n)return{matches:e,fromToornament:!1};let o=[];return"single_bracket"!==t&&"winner_bracket"!==t||(o=n.map((t=>{var e,n;return[(null===(e=t.opponent1)||void 0===e?void 0:e.position)||null,(null===(n=t.opponent2)||void 0===n?void 0:n.position)||null]})).flat()),"loser_bracket"===t&&(o=n.map((t=>{var e;return(null===(e=t.opponent2)||void 0===e?void 0:e.position)||null}))),0===o.filter((t=>null!==t)).length?{matches:e,fromToornament:!1}:{matches:o.map((t=>t&&e.find((e=>e.number===t))||null)),fromToornament:!0}},e.getOriginAbbreviation=function(t,e,n,r){return n=n||-1,e&&"loser_bracket"===t&&1===n||"single_bracket"===t||"winner_bracket"===t&&1===n?(0,o.t)("abbreviations.seed"):"loser_bracket"===t&&n%2==0&&"opponent1"===r?(0,o.t)("abbreviations.position"):null},e.isMajorRound=function(t){return 1===t||t%2==0},e.rankingHeader=function(t){return(0,o.t)(`ranking.${t}`,{returnObjects:!0})},e.isMatch=r,e.isMatchGame=function(t){return!r(t)}},1491:function(t,e,n){"use strict";var o=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.getLoserBracketRoundName=e.getWinnerBracketRoundName=e.getRoundName=e.getBracketName=e.getGroupName=e.getMatchStatus=e.getFinalMatchLabel=e.getMatchLabel=e.getFinalOriginHint=e.getOriginHint=e.toI18nKey=e.t=e.addLocale=e.locales=void 0;const r=o(n(6073)),i=o(n(13)),a=n(7021),s=n(3886),u=o(n(9583)),l=o(n(8159));function c(t,e){return r.default.t(t,e)}function d(t){return t.replace("_","-")}e.locales={en:u.default,fr:l.default},r.default.use(i.default).init({fallbackLng:"en",debug:!1,resources:{en:{translation:e.locales.en},fr:{translation:e.locales.fr}}}),e.addLocale=async function(t,e){r.default.addResourceBundle(t,"translation",e,!0,!0),await r.default.changeLanguage()},e.t=c,e.toI18nKey=d,e.getOriginHint=function(t,e,n,o){if(1===t){if("single_bracket"===o)return t=>c("origin-hint.seed",{position:t});if("winner_bracket"===o)return t=>c("origin-hint.seed",{position:t});if("loser_bracket"===o&&n)return t=>c("origin-hint.seed",{position:t})}if((0,s.isMajorRound)(t)&&"loser_bracket"===o){if(t===e-2)return t=>c("origin-hint.winner-bracket-semi-final",{position:t});if(t===e)return()=>c("origin-hint.winner-bracket-final");const o=Math.ceil((t+1)/2);return n?t=>c("origin-hint.winner-bracket",{round:o-1,position:t}):t=>c("origin-hint.winner-bracket",{round:o,position:t})}},e.getFinalOriginHint=function(t,e,n){return"single_elimination"===t?t=>c("origin-hint.consolation-final",{position:t}):"grand_final"===e?1===n?()=>c("origin-hint.grand-final"):void 0:t=>c(1===t?"origin-hint.double-elimination-consolation-final-opponent-1":"origin-hint.double-elimination-consolation-final-opponent-2")},e.getMatchLabel=function(t,e,n,o){if(void 0===e||void 0===n||void 0===o)return c("match-label.default",{matchNumber:t});const r=c("winner_bracket"===o?"match-label.winner-bracket":"loser_bracket"===o?"match-label.loser-bracket":"match-label.standard-bracket"),i=e===n-1,a=e===n;if("single_bracket"===o){if(i)return c("match-label.standard-bracket-semi-final",{matchNumber:t});if(a)return c("match-label.standard-bracket-final")}return i?c("match-label.double-elimination-semi-final",{matchPrefix:r,matchNumber:t}):a?c("match-label.double-elimination-final",{matchPrefix:r}):c("match-label.double-elimination",{matchPrefix:r,roundNumber:e,matchNumber:t})},e.getFinalMatchLabel=function(t,e,n){return"consolation_final"===t?c("match-label.consolation-final"):1===n?c("match-label.grand-final-single"):c("match-label.grand-final",{roundNumber:e})},e.getMatchStatus=function(t){switch(t){case a.Status.Locked:return c("match-status.locked");case a.Status.Waiting:return c("match-status.waiting");case a.Status.Ready:return c("match-status.ready");case a.Status.Running:return c("match-status.running");case a.Status.Completed:return c("match-status.completed");case a.Status.Archived:return c("match-status.archived");default:return"Unknown status"}},e.getGroupName=function(t){return c("common.group-name",{groupNumber:t})},e.getBracketName=function(t,e){switch(e){case"winner_bracket":case"loser_bracket":return c(`common.group-name-${d(e)}`,{stage:t});default:return}},e.getRoundName=function({roundNumber:t,roundCount:e},n){return t===e?n("common.round-name-final"):n("common.round-name",{roundNumber:t})},e.getWinnerBracketRoundName=function({roundNumber:t,roundCount:e},n){return t===e?n("common.round-name-winner-bracket-final"):n("common.round-name-winner-bracket",{roundNumber:t})},e.getLoserBracketRoundName=function({roundNumber:t,roundCount:e},n){return t===e?n("common.round-name-loser-bracket-final"):n("common.round-name-loser-bracket",{roundNumber:t})}},945:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BaseGetter=void 0;const o=n(4487);e.BaseGetter=class{constructor(t){this.storage=t}async getOrderedRounds(t){if(!(null==t?void 0:t.settings.size))throw Error("The stage has no size.");return"single_elimination"===t.type?this.getOrderedRoundsSingleElimination(t.id):this.getOrderedRoundsDoubleElimination(t.id)}async getOrderedRoundsSingleElimination(t){return[await this.getUpperBracketFirstRound(t)]}async getOrderedRoundsDoubleElimination(t){const e=await this.storage.select("round",{stage_id:t});if(!e)throw Error("Error getting rounds.");const n=await this.getLoserBracket(t);if(!n)throw Error("Loser bracket not found.");const r=e[0],i=e.filter((t=>t.group_id===n.id));return[r,...i.filter((t=>o.isOrderingSupportedLoserBracket(t.number,i.length)))]}async getRoundPositionalInfo(t){const e=await this.storage.select("round",t);if(!e)throw Error("Round not found.");const n=await this.storage.select("round",{group_id:e.group_id});if(!n)throw Error("Error getting rounds.");return{roundNumber:e.number,roundCount:n.length}}async getPreviousMatches(t,e,n,o){return"loser_bracket"===e?this.getPreviousMatchesLB(t,n,o):"final_group"===e?this.getPreviousMatchesFinal(t,n,o):1===o?[]:this.getMatchesBeforeMajorRound(t,o)}async getPreviousMatchesFinal(t,e,n){return"single_elimination"===e.type?this.getPreviousMatchesFinalSingleElimination(t,e):this.getPreviousMatchesFinalDoubleElimination(t,n)}async getPreviousMatchesFinalSingleElimination(t,e){const n=await this.getUpperBracket(t.stage_id),r=o.getUpperBracketRoundCount(e.settings.size),i=await this.storage.selectFirst("round",{group_id:n.id,number:r-1});if(!i)throw Error("Semi finals round not found.");const a=await this.storage.select("match",{round_id:i.id});if(!a)throw Error("Error getting semi final matches.");return a}async getPreviousMatchesFinalDoubleElimination(t,e){if(e>1)return[await this.findMatch(t.group_id,e-1,1)];const n=await this.getUpperBracket(t.stage_id),o=await this.getLastRound(n.id),r=await this.storage.selectFirst("match",{round_id:o.id,number:1});if(!r)throw Error("Match not found.");const i=await this.getLoserBracket(t.stage_id);if(!i)throw Error("Loser bracket not found.");const a=await this.getLastRound(i.id),s=await this.storage.selectFirst("match",{round_id:a.id,number:1});if(!s)throw Error("Match not found.");return[r,s]}async getPreviousMatchesLB(t,e,n){if(e.settings.skipFirstRound&&1===n)return[];if(o.hasBye(t))return[];const r=await this.getUpperBracket(t.stage_id),i=Math.ceil((n+1)/2),a=e.settings.skipFirstRound?i-1:i;return 1===n?this.getMatchesBeforeFirstRoundLB(t,r.id,a):o.isMajorRound(n)?this.getMatchesBeforeMajorRound(t,n):this.getMatchesBeforeMinorRoundLB(t,r.id,n,a)}async getMatchesBeforeMajorRound(t,e){return[await this.findMatch(t.group_id,e-1,2*t.number-1),await this.findMatch(t.group_id,e-1,2*t.number)]}async getMatchesBeforeFirstRoundLB(t,e,n){return[await this.findMatch(e,n,o.getOriginPosition(t,"opponent1")),await this.findMatch(e,n,o.getOriginPosition(t,"opponent2"))]}async getMatchesBeforeMinorRoundLB(t,e,n,r){const i=o.getOriginPosition(t,"opponent1");return[await this.findMatch(e,r,i),await this.findMatch(t.group_id,n-1,t.number)]}async getNextMatches(t,e,n,o,r){switch(e){case"single_bracket":return this.getNextMatchesUpperBracket(t,n,o,r);case"winner_bracket":return this.getNextMatchesWB(t,n,o,r);case"loser_bracket":return this.getNextMatchesLB(t,n,o,r);case"final_group":return this.getNextMatchesFinal(t,n,o,r);default:throw Error("Unknown bracket kind.")}}async getNextMatchesWB(t,e,n,r){const i=await this.getLoserBracket(t.stage_id);if(null===i)return[];const a=e.settings.skipFirstRound?n+1:n,s=a>1?2*(a-1):1,u=e.settings.size,l=o.getLoserOrdering(e.settings.seedOrdering,s),c=o.findLoserMatchNumber(u,s,t.number,l);return[...await this.getNextMatchesUpperBracket(t,e,n,r),await this.findMatch(i.id,s,c)]}async getNextMatchesUpperBracket(t,e,n,o){return"single_elimination"===e.type?this.getNextMatchesUpperBracketSingleElimination(t,e.type,n,o):this.getNextMatchesUpperBracketDoubleElimination(t,e.type,n,o)}async getNextMatchesUpperBracketSingleElimination(t,e,n,o){if(n===o-1){const o=await this.getFinalGroupId(t.stage_id,e),r=await this.getFinalGroupFirstMatch(o);return[await this.getDiagonalMatch(t.group_id,n,t.number),...r?[r]:[]]}return n===o?[]:[await this.getDiagonalMatch(t.group_id,n,t.number)]}async getNextMatchesUpperBracketDoubleElimination(t,e,n,o){if(n===o){const n=await this.getFinalGroupId(t.stage_id,e);return[await this.getFinalGroupFirstMatch(n)]}return[await this.getDiagonalMatch(t.group_id,n,t.number)]}async getNextMatchesLB(t,e,n,r){if(n===r-1){const o=await this.getFinalGroupId(t.stage_id,e.type),r=await this.getConsolationFinalMatchDoubleElimination(o);return[...await this.getMatchAfterMajorRoundLB(t,n),...r?[r]:[]]}if(n===r){const n=await this.getFinalGroupId(t.stage_id,e.type),o=await this.getFinalGroupFirstMatch(n),r=await this.getConsolationFinalMatchDoubleElimination(n);return[o,...r?[r]:[]]}return o.isMajorRound(n)?this.getMatchAfterMajorRoundLB(t,n):this.getMatchAfterMinorRoundLB(t,n)}async getFinalGroupFirstMatch(t){return null===t?null:this.findMatch(t,1,1)}async getConsolationFinalMatchDoubleElimination(t){return null===t?null:this.storage.selectFirst("match",{group_id:t,number:2})}async getNextMatchesFinal(t,e,n,o){return n===o||e.settings.consolationFinal&&1===t.number&&n===o-1?[]:[await this.findMatch(t.group_id,n+1,1)]}async getMatchAfterMajorRoundLB(t,e){return[await this.getParallelMatch(t.group_id,e,t.number)]}async getMatchAfterMinorRoundLB(t,e){return[await this.getDiagonalMatch(t.group_id,e,t.number)]}static getSeedingOrdering(t,e){return"round_robin"===t?e.getRoundRobinOrdering():e.getStandardBracketFirstRoundOrdering()}async getSeedingMatches(t,e){if("round_robin"===e)return this.storage.select("match",{stage_id:t});try{const e=await this.getUpperBracketFirstRound(t);return this.storage.select("match",{round_id:e.id})}catch{return[]}}async getUpperBracketFirstRound(t){const e=await this.storage.selectFirst("round",{stage_id:t,number:1},!1);if(!e)throw Error("Round not found.");return e}async getLastRound(t){const e=await this.storage.selectLast("round",{group_id:t},!1);if(!e)throw Error("Error getting rounds.");return e}async getFinalGroupId(t,e){const n="single_elimination"===e?2:3,o=await this.storage.selectFirst("group",{stage_id:t,number:n});return o?o.id:null}async getUpperBracket(t){const e=await this.storage.selectFirst("group",{stage_id:t,number:1});if(!e)throw Error("Winner bracket not found.");return e}async getLoserBracket(t){return this.storage.selectFirst("group",{stage_id:t,number:2})}async getDiagonalMatch(t,e,n){return this.findMatch(t,e+1,o.getDiagonalMatchNumber(n))}async getParallelMatch(t,e,n){return this.findMatch(t,e+1,n)}async findMatch(t,e,n){const o=await this.storage.selectFirst("round",{group_id:t,number:e});if(!o)throw Error("Round not found.");const r=await this.storage.selectFirst("match",{round_id:o.id,number:n});if(!r)throw Error("Match not found.");return r}async findMatchGame(t){if(void 0!==t.id){const e=await this.storage.select("match_game",t.id);if(!e)throw Error("Match game not found.");return e}if(void 0!==t.parent_id&&t.number){const e=await this.storage.selectFirst("match_game",{parent_id:t.parent_id,number:t.number});if(!e)throw Error("Match game not found.");return e}throw Error("No match game id nor parent id and number given.")}}},4267:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StageCreator=e.create=void 0;const o=n(2644),r=n(4487);e.create=async function(t){return new i(this.storage,t).run()};class i{constructor(t,e){if(this.storage=t,this.stage=e,this.stage.settings=this.stage.settings||{},this.seedOrdering=[...this.stage.settings.seedOrdering||[]],this.updateMode=!1,this.enableByesInUpdate=!1,!this.stage.name)throw Error("You must provide a name for the stage.");if(void 0===this.stage.tournamentId)throw Error("You must provide a tournament id for the stage.");"round_robin"===e.type&&(this.stage.settings.roundRobinMode=this.stage.settings.roundRobinMode||"simple"),"single_elimination"===e.type&&(this.stage.settings.consolationFinal=this.stage.settings.consolationFinal||!1),"double_elimination"===e.type&&(this.stage.settings.grandFinal=this.stage.settings.grandFinal||"none"),this.stage.settings.matchesChildCount=this.stage.settings.matchesChildCount||0}async run(){let t;switch(this.stage.type){case"round_robin":t=await this.roundRobin();break;case"single_elimination":t=await this.singleElimination();break;case"double_elimination":t=await this.doubleElimination();break;default:throw Error("Unknown stage type.")}if(-1===t.id)throw Error("Something went wrong when creating the stage.");return await this.ensureSeedOrdering(t.id),t}setExisting(t,e){this.updateMode=!0,this.currentStageId=t,this.enableByesInUpdate=e}async roundRobin(){const t=await this.getRoundRobinGroups(),e=await this.createStage();for(let n=0;n=0;e--){const n=Math.pow(2,e);a=this.getCurrentDuels(a,n),u.push(a.map(r.byeLoser)),await this.createRound(t,i,s++,n,a)}return{losers:u,winner:r.byeWinner(a[0])}}async createLowerBracket(t,e,n){var i;const a=null===(i=this.stage.settings)||void 0===i?void 0:i.size,s=r.getRoundPairCount(a);let u=0;const l=this.getMajorOrdering(a),c=o.ordering[l](n[u++]),d=await this.insertGroup({stage_id:t,number:e});if(-1===d)throw Error("Could not insert the group.");let p=r.makePairs(c),g=1;for(let e=0;ec&&(c=t)}}const d=await this.insertMatch({number:o,stage_id:t,group_id:e,round_id:n,child_count:a,status:c,...r.getInferredResult(s,u)},l);if(-1===d)throw Error("Could not insert the match.");for(let e=0;e({id:null,position:e+1})));if(!n)throw Error("Either size or seeding must be given.");return this.stage.settings={...this.stage.settings,size:o},r.ensureNoDuplicates(n),n=r.fixSeeding(n,o),"round_robin"!==this.stage.type&&this.stage.settings.balanceByes&&(n=r.balanceByes(n,this.stage.settings.size)),this.stage.seeding=n,void 0!==this.stage.seedingIds||r.isSeedingWithIds(n)?this.getSlotsUsingIds(n,t):this.getSlotsUsingNames(n,t)}async getSlotsUsingNames(t,e){const n=r.extractParticipantsFromSeeding(this.stage.tournamentId,t);if(!await this.registerParticipants(n))throw Error("Error registering the participants.");const o=await this.storage.select("participant",{tournament_id:this.stage.tournamentId});if(!o)throw Error("Error getting registered participant.");return r.mapParticipantsNamesToDatabase(t,o,e)}async getSlotsUsingIds(t,e){const n=await this.storage.select("participant",{tournament_id:this.stage.tournamentId});if(!n)throw Error("No available participants.");return r.mapParticipantsIdsToDatabase(t,n,e)}async getStageNumber(){const t=await this.storage.select("stage",{tournament_id:this.stage.tournamentId}),e=null==t?void 0:t.map((t=>{var e;return null!==(e=t.number)&&void 0!==e?e:0}));if(void 0!==this.stage.number){if(null==e?void 0:e.includes(this.stage.number))throw Error("The given stage number already exists.");return this.stage.number}return(null==e?void 0:e.length)?Math.max(...e)+1:1}getMatchesChildCount(){var t;return(null===(t=this.stage.settings)||void 0===t?void 0:t.matchesChildCount)?this.stage.settings.matchesChildCount:0}getOrdering(t,e,n){var o;if(!(null===(o=this.stage.settings)||void 0===o?void 0:o.seedOrdering))return this.seedOrdering.push(n),n;const r=this.stage.settings.seedOrdering[t];if(!r)return this.seedOrdering.push(n),n;if("elimination"===e&&r.match(/^groups\./))throw Error("You must specify a seed ordering method without a 'groups' prefix");if("groups"===e&&"natural"!==r&&!r.match(/^groups\./))throw Error("You must specify a seed ordering method with a 'groups' prefix");return r}async getRoundRobinGroups(){var t,e,n,i,a;if(void 0===(null===(t=this.stage.settings)||void 0===t?void 0:t.groupCount)||!Number.isInteger(this.stage.settings.groupCount))throw Error("You must specify a group count for round-robin stages.");if(this.stage.settings.groupCount<=0)throw Error("You must provide a strictly positive group count.");if(null===(e=this.stage.settings)||void 0===e?void 0:e.manualOrdering){if((null===(n=this.stage.settings)||void 0===n?void 0:n.manualOrdering.length)!==(null===(i=this.stage.settings)||void 0===i?void 0:i.groupCount))throw Error("Group count in the manual ordering does not correspond to the given group count.");const t=null===(a=this.stage.settings)||void 0===a?void 0:a.manualOrdering.flat(),e=await this.getSlots(t);return r.makeGroups(e,this.stage.settings.groupCount)}if(Array.isArray(this.stage.settings.seedOrdering)&&1!==this.stage.settings.seedOrdering.length)throw Error("You must specify one seed ordering method.");const s=this.getRoundRobinOrdering(),u=await this.getSlots(),l=o.ordering[s](u,this.stage.settings.groupCount);return r.makeGroups(l,this.stage.settings.groupCount)}getRoundRobinOrdering(){return this.getOrdering(0,"groups","groups.effort_balanced")}getStandardBracketFirstRoundOrdering(){return this.getOrdering(0,"elimination","inner_outer")}getMajorOrdering(t){var e;return this.getOrdering(1,"elimination",(null===(e=o.defaultMinorOrdering[t])||void 0===e?void 0:e[0])||"natural")}getMinorOrdering(t,e,n){var r;if(e!==n-1)return this.getOrdering(2+e,"elimination",(null===(r=o.defaultMinorOrdering[t])||void 0===r?void 0:r[1+e])||"natural")}async insertStage(t){let e=null;if(this.updateMode){if(e=await this.storage.select("stage",this.currentStageId),!e)throw Error("Stage not found.");const n={...e,...t,settings:{...e.settings,...t.settings}};if(!await this.storage.update("stage",this.currentStageId,n))throw Error("Could not update the stage.")}return e?e.id:this.storage.insert("stage",t)}async insertGroup(t){let e=null;return this.updateMode&&(e=await this.storage.selectFirst("group",{stage_id:t.stage_id,number:t.number})),e?e.id:this.storage.insert("group",t)}async insertRound(t){let e=null;return this.updateMode&&(e=await this.storage.selectFirst("round",{group_id:t.group_id,number:t.number})),e?e.id:this.storage.insert("round",t)}async insertMatch(t,e){if(!e)return this.storage.insert("match",t);const n=r.getUpdatedMatchResults(t,e,this.enableByesInUpdate);if(!await this.storage.update("match",e.id,n))throw Error("Could not update the match.");return e.id}async insertMatchGame(t){let e=null;if(this.updateMode&&(e=await this.storage.selectFirst("match_game",{parent_id:t.parent_id,number:t.number})),!e)return this.storage.insert("match_game",t);const n=r.getUpdatedMatchResults(t,e,this.enableByesInUpdate);if(!await this.storage.update("match_game",e.id,n))throw Error("Could not update the match game.");return e.id}async registerParticipants(t){const e=await this.storage.select("participant",{tournament_id:this.stage.tournamentId});if(!e||0===e.length)return this.storage.insert("participant",t);for(const n of t)if(!e.some((t=>t.name===n.name))&&-1===await this.storage.insert("participant",n))return!1;return!0}async createStage(){const t=await this.getStageNumber(),e={tournament_id:this.stage.tournamentId,name:this.stage.name,type:this.stage.type,number:t,settings:this.stage.settings||{}},n=await this.insertStage(e);if(-1===n)throw Error("Could not insert the stage.");return{...e,id:n}}async createConsolationFinal(t,e,n={}){var o;if(!(null===(o=this.stage.settings)||void 0===o?void 0:o.consolationFinal))return;const r=e[e.length-2];await this.createUniqueMatchBracket(t,2,[r],n)}async createGrandFinal(t,e,n){var o;const r=null===(o=this.stage.settings)||void 0===o?void 0:o.grandFinal;if("none"===r)return;const i=[[e,n]];return"double"===r&&i.push([{id:null},{id:null}]),await this.createUniqueMatchBracket(t,3,i)}async ensureSeedOrdering(t){var e,n;if((null===(n=null===(e=this.stage.settings)||void 0===e?void 0:e.seedOrdering)||void 0===n?void 0:n.length)===this.seedOrdering.length)return;const o=await this.storage.select("stage",t);if(!o)throw Error("Stage not found.");const r={...o,settings:{...o.settings,seedOrdering:this.seedOrdering}};if(!await this.storage.update("stage",t,r))throw Error("Could not update the stage.")}}e.StageCreator=i},3517:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BaseUpdater=void 0;const o=n(7021),r=n(2644),i=n(4267),a=n(945),s=n(3576),u=n(4487);class l extends a.BaseGetter{async updateSeeding(t,{seeding:e,seedingIds:n},o){var s,u;const c=await this.storage.select("stage",t);if(!c)throw Error("Stage not found.");const d=o?c.settings.size:null!==(u=null===(s=n||e)||void 0===s?void 0:s.length)&&void 0!==u?u:0,p=new i.StageCreator(this.storage,{name:c.name,tournamentId:c.tournament_id,type:c.type,settings:{...c.settings,...0===d?{}:{size:d}},...n?{seedingIds:n}:{seeding:null!=e?e:void 0}});p.setExisting(t,!1);const g=a.BaseGetter.getSeedingOrdering(c.type,p),f=await p.getSlots(),h=await this.getSeedingMatches(c.id,c.type);if(!h)throw Error("Error getting matches associated to the seeding.");const m=r.ordering[g](f);l.assertCanUpdateSeeding(h,m),await p.run()}async confirmCurrentSeeding(t){const e=await this.storage.select("stage",t);if(!e)throw Error("Stage not found.");const n=new s.Get(this.storage),o=await n.seeding(t),r=u.convertSlotsToSeeding(o.map(u.convertTBDtoBYE)),a=new i.StageCreator(this.storage,{name:e.name,tournamentId:e.tournament_id,type:e.type,settings:e.settings,seeding:r});a.setExisting(t,!0),await a.run()}async updateParentMatch(t,e){const n=await this.storage.select("match",t);if(!n)throw Error("Parent not found.");const o=await this.storage.select("match_game",{parent_id:t});if(!o)throw Error("No match games.");const r=u.getChildGamesResults(o),i=u.getParentMatchResults(n,r);u.setParentMatchCompleted(i,n.child_count,e),await this.updateMatch(n,i,!0)}static assertCanUpdateSeeding(t,e){var n,r;let i=0;for(const a of t){if(a.status===o.Status.Archived)throw Error("A match of round 1 is archived, which means round 2 was started.");const t=e[i++],s=e[i++];if(u.isMatchParticipantLocked(a)&&((null===(n=a.opponent1)||void 0===n?void 0:n.id)!==(null==t?void 0:t.id)||(null===(r=a.opponent2)||void 0===r?void 0:r.id)!==(null==s?void 0:s.id)))throw Error("A match is locked.")}}async updateRelatedMatches(t,e,n){if(void 0===t.round_id)return;const{roundNumber:o,roundCount:r}=await this.getRoundPositionalInfo(t.round_id),i=await this.storage.select("stage",t.stage_id);if(!i)throw Error("Stage not found.");const a=await this.storage.select("group",t.group_id);if(!a)throw Error("Group not found.");const s=u.getMatchLocation(i.type,a.number);e&&await this.updatePrevious(t,s,i,o),n&&await this.updateNext(t,s,i,o,r)}async updateMatch(t,e,n){if(!n&&u.isMatchUpdateLocked(t))throw Error("The match is locked.");const o=await this.storage.select("stage",t.stage_id);if(!o)throw Error("Stage not found.");const r=u.isRoundRobin(o),{statusChanged:i,resultChanged:a}=u.setMatchResults(t,e,r);await this.applyMatchUpdate(t),(i||a)&&(u.isRoundRobin(o)||await this.updateRelatedMatches(t,i,a))}async updateMatchGame(t,e){if(u.isMatchUpdateLocked(t))throw Error("The match game is locked.");const n=await this.storage.select("stage",t.stage_id);if(!n)throw Error("Stage not found.");const o=u.isRoundRobin(n);if(u.setMatchResults(t,e,o),!await this.storage.update("match_game",t.id,t))throw Error("Could not update the match game.");await this.updateParentMatch(t.parent_id,o)}async applyMatchUpdate(t){if(!await this.storage.update("match",t.id,t))throw Error("Could not update the match.");if(0===t.child_count)return;const e={opponent1:u.toResult(t.opponent1),opponent2:u.toResult(t.opponent2)};if((t.status<=o.Status.Ready||t.status===o.Status.Archived)&&(e.status=t.status),!await this.storage.update("match_game",{parent_id:t.id},e))throw Error("Could not update the match game.")}async updatePrevious(t,e,n,r){const i=await this.getPreviousMatches(t,e,n,r);0!==i.length&&(t.status>=o.Status.Running?await this.archiveMatches(i):await this.resetMatchesStatus(i))}async archiveMatches(t){for(const e of t)e.status!==o.Status.Archived&&(e.status=o.Status.Archived,await this.applyMatchUpdate(e))}async resetMatchesStatus(t){for(const e of t)e.status=u.getMatchStatus(e),await this.applyMatchUpdate(e)}async updateNext(t,e,n,r,i){const a=await this.getNextMatches(t,e,n,r,i);if(0===a.length)return void(t.status===o.Status.Completed&&await this.archiveMatches([t]));const s=u.getMatchResult(t),l=n.settings.skipFirstRound&&"winner_bracket"===e?r+1:r;s?await this.applyToNextMatches(u.setNextOpponent,t,e,l,i,a,s):await this.applyToNextMatches(u.resetNextOpponent,t,e,l,i,a)}async applyToNextMatches(t,e,n,o,r,i,a){if("final_group"===n){if(!i[0])throw Error("First next match is null.");return t(i[0],"opponent1",e,"opponent1"),t(i[0],"opponent2",e,"opponent2"),void await this.applyMatchUpdate(i[0])}const s=u.getNextSide(e.number,o,r,n);if(i[0]&&(t(i[0],s,e,a),await this.propagateByeWinners(i[0])),2===i.length){if(!i[1])throw Error("Second next match is null.");if("single_bracket"===n)t(i[1],s,e,a&&u.getOtherSide(a)),await this.applyMatchUpdate(i[1]);else if("winner_bracket"===n){const n=u.getNextSideLoserBracket(e.number,i[1],o);t(i[1],n,e,a&&u.getOtherSide(a)),await this.propagateByeWinners(i[1])}else if("loser_bracket"===n){const n=u.getNextSideConsolationFinalDoubleElimination(o);t(i[1],n,e,a&&u.getOtherSide(a)),await this.propagateByeWinners(i[1])}}}async propagateByeWinners(t){u.setMatchResults(t,t,!1),await this.applyMatchUpdate(t),u.hasBye(t)&&await this.updateRelatedMatches(t,!0,!0)}}e.BaseUpdater=l},9765:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Create=void 0;const o=n(4267);e.Create=class{constructor(t){this.storage=t}async stage(t){return new o.StageCreator(this.storage,t).run()}}},4378:function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Delete=void 0,e.Delete=class{constructor(t){this.storage=t}async stage(t){if(!await this.storage.delete("match_game",{stage_id:t}))throw Error("Could not delete match games.");if(!await this.storage.delete("match",{stage_id:t}))throw Error("Could not delete matches.");if(!await this.storage.delete("round",{stage_id:t}))throw Error("Could not delete rounds.");if(!await this.storage.delete("group",{stage_id:t}))throw Error("Could not delete groups.");if(!await this.storage.delete("stage",{id:t}))throw Error("Could not delete the stage.")}async tournament(t){const e=await this.storage.select("stage",{tournament_id:t});if(!e)throw Error("Error getting the stages.");for(const t of e)await this.stage(t.id)}}},4063:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Find=void 0;const o=n(945),r=n(4487);class i extends o.BaseGetter{async upperBracket(t){const e=await this.storage.select("stage",t);if(!e)throw Error("Stage not found.");switch(e.type){case"round_robin":throw Error("Round-robin stages do not have an upper bracket.");case"single_elimination":case"double_elimination":return this.getUpperBracket(t);default:throw Error("Unknown stage type.")}}async loserBracket(t){const e=await this.storage.select("stage",t);if(!e)throw Error("Stage not found.");switch(e.type){case"round_robin":throw Error("Round-robin stages do not have a loser bracket.");case"single_elimination":throw Error("Single elimination stages do not have a loser bracket.");case"double_elimination":const e=await this.getLoserBracket(t);if(!e)throw Error("Loser bracket not found.");return e;default:throw Error("Unknown stage type.")}}async previousMatches(t,e){const n=await this.storage.select("match",t);if(!n)throw Error("Match not found.");const o=await this.storage.select("stage",n.stage_id);if(!o)throw Error("Stage not found.");const i=await this.storage.select("group",n.group_id);if(!i)throw Error("Group not found.");const a=await this.storage.select("round",n.round_id);if(!a)throw Error("Round not found.");const s=r.getMatchLocation(o.type,i.number),u=await this.getPreviousMatches(n,s,o,a.number);return void 0!==e?u.filter((t=>r.isParticipantInMatch(t,e))):u}async nextMatches(t,e){const n=await this.storage.select("match",t);if(!n)throw Error("Match not found.");const o=await this.storage.select("stage",n.stage_id);if(!o)throw Error("Stage not found.");const i=await this.storage.select("group",n.group_id);if(!i)throw Error("Group not found.");const{roundNumber:a,roundCount:s}=await this.getRoundPositionalInfo(n.round_id),u=r.getMatchLocation(o.type,i.number),l=r.getNonNull(await this.getNextMatches(n,u,o,a,s));if(void 0!==e){if(!r.isParticipantInMatch(n,e))throw Error("The participant does not belong to this match.");if(!r.isMatchStale(n))throw Error("The match is not stale yet, so it is not possible to conclude the next matches for this participant.");const t=r.getLoser(n);if("single_elimination"===o.type&&(null==t?void 0:t.id)===e)return[];if("double_elimination"===o.type){const{winnerBracketMatch:o,loserBracketMatch:a,finalGroupMatch:s}=await this.getMatchesByGroupDoubleElimination(l,new Map([[i.id,i]])),c=r.getWinner(n);if("loser_bracket"===u){if(e===(null==t?void 0:t.id))return[];if(e===(null==c?void 0:c.id))return a?[a]:[]}else if("winner_bracket"===u){if(!a)throw Error("All matches of winner bracket should lead to loser bracket.");if(e===(null==t?void 0:t.id))return[a];if(e===(null==c?void 0:c.id))return o?[o]:[]}else if("final_group"===u){if(!s)throw Error("All matches of a final group should also lead to the final group.");return[s]}}}return l}async match(t,e,n){return this.findMatch(t,e,n)}async matchGame(t){return this.findMatchGame(t)}async getMatchesByGroupDoubleElimination(t,e){var n,o,i;const a=async t=>{const n=e.get(t);if(n)return n;const o=await this.storage.select("group",t);if(!o)throw Error("Group not found.");return e.set(t,o),o};let s={};for(const e of t){const t=await a(e.group_id);s={winnerBracketMatch:null!==(n=s.winnerBracketMatch)&&void 0!==n?n:r.isWinnerBracket("double_elimination",t.number)?e:void 0,loserBracketMatch:null!==(o=s.loserBracketMatch)&&void 0!==o?o:r.isLoserBracket("double_elimination",t.number)?e:void 0,finalGroupMatch:null!==(i=s.finalGroupMatch)&&void 0!==i?i:r.isFinalGroup("double_elimination",t.number)?e:void 0}}return s}}e.Find=i},3576:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Get=void 0;const o=n(7021),r=n(945),i=n(4487);class a extends r.BaseGetter{async stageData(t){const e=await this.getStageSpecificData(t),n=await this.storage.select("participant",{tournament_id:e.stage.tournament_id});if(!n)throw Error("Error getting participants.");return{stage:[e.stage],group:e.groups,round:e.rounds,match:e.matches,match_game:e.matchGames,participant:n}}async tournamentData(t){const e=await this.storage.select("stage",{tournament_id:t});if(!e)throw Error("Error getting stages.");const n=await Promise.all(e.map((t=>this.getStageSpecificData(t.id)))),o=await this.storage.select("participant",{tournament_id:t});if(!o)throw Error("Error getting participants.");return{stage:e,group:n.reduce(((t,e)=>[...t,...e.groups]),[]),round:n.reduce(((t,e)=>[...t,...e.rounds]),[]),match:n.reduce(((t,e)=>[...t,...e.matches]),[]),match_game:n.reduce(((t,e)=>[...t,...e.matchGames]),[]),participant:o}}async matchGames(t){const e=t.filter((t=>t.child_count>0)),n=await Promise.all(e.map((t=>this.storage.select("match_game",{parent_id:t.id}))));if(n.some((t=>null===t)))throw Error("Error getting match games.");return i.getNonNull(n).flat()}async currentStage(t){const e=await this.storage.select("stage",{tournament_id:t});if(!e)throw Error("Error getting stages.");for(const t of e){const e=await this.storage.select("match",{stage_id:t.id});if(!e)throw Error("Error getting matches.");if(!e.every((t=>t.status>=o.Status.Completed)))return t}return null}async currentRound(t){const e=await this.storage.select("match",{stage_id:t});if(!e)throw Error("Error getting matches.");const n=i.splitBy(e,"round_id");for(const t of n){if(t.every((t=>t.status>=o.Status.Completed)))continue;const e=await this.storage.select("round",t[0].round_id);if(!e)throw Error("Round not found.");return e}return null}async currentMatches(t){const e=await this.storage.select("stage",t);if(!e)throw Error("Stage not found.");if("single_elimination"!==e.type)throw Error("Not implemented for round robin and double elimination. Ask if needed.");const n=await this.storage.select("match",{stage_id:t});if(!n)throw Error("Error getting matches.");const o=i.splitBy(n,"round_id"),r=i.getUpperBracketRoundCount(e.settings.size);let a=-1;const s=[];for(const t of o){if(a++,e.settings.consolationFinal&&a===r-1){const[e]=t,[n]=o[a+1],r=[e,n];return r.every((t=>!i.isMatchOngoing(t)))?s:r.filter((t=>i.isMatchOngoing(t)))}t.every((t=>!i.isMatchOngoing(t)))||s.push(...t.filter((t=>i.isMatchOngoing(t))))}return s}async seeding(t){const e=await this.storage.select("stage",t);if(!e)throw Error("Stage not found.");const n=t=>{if(null===t)return null;const{id:e,position:n}=t;return{id:e,position:n}};return"round_robin"===e.type?(await this.roundRobinSeeding(e)).map(n):(await this.eliminationSeeding(e)).map(n)}async finalStandings(t,e){const n=await this.storage.select("stage",t);if(!n)throw Error("Stage not found.");switch(n.type){case"round_robin":if(!e)throw Error("Computing the standings in a round-robin stage requires a ranking formula.");return this.roundRobinStandings(t,e);case"single_elimination":if(e)throw Error("Computing the standings in a single elimination stage with a ranking formula is not supported.");return this.singleEliminationStandings(t);case"double_elimination":if(e)throw Error("Computing the standings in a double elimination stage with a ranking formula is not supported.");return this.doubleEliminationStandings(t);default:throw Error("Unknown stage type.")}}async roundRobinSeeding(t){if(void 0===t.settings.size)throw Error("The size of the seeding is undefined.");const e=await this.storage.select("match",{stage_id:t.id});if(!e)throw Error("Error getting matches.");const n=i.convertMatchesToSeeding(e);if(n.lengtht&&t.position));return i.setArraySize(o,t.settings.size,null)}async eliminationSeeding(t){const e=await this.storage.selectFirst("round",{stage_id:t.id,number:1},!1);if(!e)throw Error("Error getting the first round.");const n=await this.storage.select("match",{round_id:e.id});if(!n)throw Error("Error getting matches.");return i.convertMatchesToSeeding(n)}async roundRobinStandings(t,e){const n=await this.storage.select("match",{stage_id:t});if(!n)throw Error("Error getting matches.");return i.getRanking(n,e)}async singleEliminationStandings(t){var e;const n=[],{stage:o,group:r,match:a,participant:u}=await this.stageData(t),[l]=o,[c,d]=r,p=a.filter((t=>t.group_id===c.id)).pop();if(!p)throw Error("Final not found.");n[0]=[i.findParticipant(u,s(p))];const g=i.getLosers(u,a.filter((t=>t.group_id===c.id)));if(n.push(...g.reverse()),null===(e=l.settings)||void 0===e?void 0:e.consolationFinal){const t=a.filter((t=>t.group_id===d.id)).pop();if(!t)throw Error("Consolation final not found.");const e=i.findParticipant(u,s(t)),o=i.findParticipant(u,i.getLoser(t));n.splice(2,1,[e],[o])}return i.makeFinalStandings(n)}async doubleEliminationStandings(t){var e,n;const o=[],{stage:r,group:a,match:u,participant:l}=await this.stageData(t),[c]=r,[d,p,g]=a;if("none"===(null===(e=c.settings)||void 0===e?void 0:e.grandFinal)){const t=u.filter((t=>t.group_id===d.id)).pop();if(!t)throw Error("WB final not found.");const e=u.filter((t=>t.group_id===p.id)).pop();if(!e)throw Error("LB final not found.");o[0]=[i.findParticipant(l,s(t))],o[1]=[i.findParticipant(l,s(e))]}else{const t=u.filter((t=>t.group_id===g.id)),e=i.getGrandFinalDecisiveMatch((null===(n=c.settings)||void 0===n?void 0:n.grandFinal)||"none",t);o[0]=[i.findParticipant(l,s(e))],o[1]=[i.findParticipant(l,i.getLoser(e))]}const f=i.getLosers(l,u.filter((t=>t.group_id===p.id)));return o.push(...f.reverse()),i.makeFinalStandings(o)}async getStageSpecificData(t){const e=await this.storage.select("stage",t);if(!e)throw Error("Stage not found.");const n=await this.storage.select("group",{stage_id:t});if(!n)throw Error("Error getting groups.");const o=await this.storage.select("round",{stage_id:t});if(!o)throw Error("Error getting rounds.");const r=await this.storage.select("match",{stage_id:t});if(!r)throw Error("Error getting matches.");return{stage:e,groups:n,rounds:o,matches:r,matchGames:await this.matchGames(r)}}}e.Get=a;const s=t=>{const e=i.getWinner(t);if(!e)throw Error("The final match does not have a winner.");return e}},4487:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.setExtraFields=e.resetMatchResults=e.setMatchResults=e.getMatchStatus=e.hasBye=e.isMatchParticipantLocked=e.isMatchUpdateLocked=e.isMatchByeCompleted=e.isMatchWinCompleted=e.isMatchDrawCompleted=e.isMatchResultCompleted=e.isMatchForfeitCompleted=e.isMatchStale=e.isMatchOngoing=e.isMatchCompleted=e.isMatchStarted=e.isMatchPending=e.getOtherSide=e.getSide=e.isParticipantInMatch=e.findPosition=e.getMatchResult=e.byeLoser=e.byeWinnerToGrandFinal=e.byeWinner=e.getLoser=e.getWinner=e.toResultWithPosition=e.toResult=e.convertTBDtoBYE=e.ensureNotTied=e.ensureValidSize=e.isPowerOfTwo=e.fixSeeding=e.ensureEquallySized=e.ensureNoDuplicates=e.ensureEvenSized=e.makePairs=e.setArraySize=e.normalizeParticipant=e.makeNormalizedIdMapping=e.normalizeIds=e.balanceByes=e.makeGroups=e.assertRoundRobin=e.makeRoundRobinDistribution=e.makeRoundRobinMatches=e.splitByParity=e.splitBy=e.isDefined=void 0,e.getLowerBracketRoundCount=e.getLoserOrdering=e.getLoserCountFromWbForLbRound=e.getLoserRoundMatchCount=e.findLoserMatchNumber=e.isDoubleEliminationNecessary=e.getRoundPairCount=e.getUpperBracketRoundCount=e.isOrderingSupportedLoserBracket=e.isOrderingSupportedUpperBracket=e.ensureOrderingSupported=e.getSeedCount=e.getSeeds=e.getChildGamesResults=e.getUpdatedMatchResults=e.getParentMatchResults=e.setParentMatchCompleted=e.transitionToMinor=e.transitionToMajor=e.isMinorRound=e.isMajorRound=e.uniqueBy=e.getNonNull=e.sortSeeding=e.convertSlotsToSeeding=e.convertMatchesToSeeding=e.mapParticipantsToDatabase=e.mapParticipantsIdsToDatabase=e.mapParticipantsNamesToDatabase=e.extractParticipantsFromSeeding=e.isSeedingWithIds=e.setForfeits=e.setResults=e.setCompleted=e.getInferredResult=e.setScores=e.invertOpponents=e.handleGivenStatus=e.handleOpponentsInversion=e.resetNextOpponent=e.setNextOpponent=e.getNextSideConsolationFinalDoubleElimination=e.getNextSideLoserBracket=e.getNextSide=e.findParticipant=e.getGrandFinalDecisiveMatch=e.makeFinalStandings=e.getLosers=e.getOriginPosition=e.getOpponentId=void 0,e.getRanking=e.getFractionOfFinal=e.getMatchLocation=e.isFinalGroup=e.isLoserBracket=e.isWinnerBracket=e.isRoundCompleted=e.ensureNotRoundRobin=e.isRoundRobin=e.minScoreToWinBestOfX=e.getNearestPowerOfTwo=e.getDiagonalMatchNumber=void 0;const o=n(7021),r=n(2644);function i(t){return null!=t}function a(t){const e=t.length,n=e%2==0?e:e+1,o=n-1,r=n/2,i=[];for(let a=0;a({...t,[n.id]:e++})),{})}function u(t,e){return null===t?null:{...t,id:null!==t.id?e[t.id]:null}}function l(t,e,n){return Array.from({length:e},((e,o)=>t[o]||n))}function c(t){return Number.isInteger(Math.log2(t))}function d(t){const e=g(t);return e?t[h(e)]:null}function p(t){return null===t[0]&&null===t[1]?null:null===t[0]&&null!==t[1]?{id:t[1].id}:null!==t[0]&&null===t[1]?{id:t[0].id}:{id:null}}function g(t){var e,n;if(!v(t))return null;if(w(t))return null;if(null===t.opponent1&&null===t.opponent2)return null;let o=null;if(("win"===(null===(e=t.opponent1)||void 0===e?void 0:e.result)||null===t.opponent2||t.opponent2.forfeit)&&(o="opponent1"),"win"===(null===(n=t.opponent2)||void 0===n?void 0:n.result)||null===t.opponent1||t.opponent1.forfeit){if(null!==o)throw Error("There are two winners.");o="opponent2"}return o}function f(t){return t%2==1?"opponent1":"opponent2"}function h(t){return"opponent1"===t?"opponent2":"opponent1"}function m(t){var e,n;return void 0!==(null===(e=t.opponent1)||void 0===e?void 0:e.score)||void 0!==(null===(n=t.opponent2)||void 0===n?void 0:n.score)}function v(t){return k(t)||b(t)||y(t)}function b(t){var e,n;return void 0!==(null===(e=t.opponent1)||void 0===e?void 0:e.forfeit)||void 0!==(null===(n=t.opponent2)||void 0===n?void 0:n.forfeit)}function y(t){return w(t)||_(t)}function w(t){var e,n;return"draw"===(null===(e=t.opponent1)||void 0===e?void 0:e.result)&&"draw"===(null===(n=t.opponent2)||void 0===n?void 0:n.result)}function _(t){var e,n,o,r;return"win"===(null===(e=t.opponent1)||void 0===e?void 0:e.result)||"win"===(null===(n=t.opponent2)||void 0===n?void 0:n.result)||"loss"===(null===(o=t.opponent1)||void 0===o?void 0:o.result)||"loss"===(null===(r=t.opponent2)||void 0===r?void 0:r.result)}function k(t){var e,n;return null===t.opponent1&&null!==(null===(e=t.opponent2)||void 0===e?void 0:e.id)||null===t.opponent2&&null!==(null===(n=t.opponent1)||void 0===n?void 0:n.id)||null===t.opponent1&&null===t.opponent2}function S(t){return null===t.opponent1||null===t.opponent2}function O(t){var e,n,r,i;const a=Array.isArray(t)?{opponent1:t[0],opponent2:t[1]}:t;return S(a)||null===(null===(e=a.opponent1)||void 0===e?void 0:e.id)&&null===(null===(n=a.opponent2)||void 0===n?void 0:n.id)?o.Status.Locked:null===(null===(r=a.opponent1)||void 0===r?void 0:r.id)||null===(null===(i=a.opponent2)||void 0===i?void 0:i.id)?o.Status.Waiting:v(a)?o.Status.Completed:m(a)?o.Status.Running:o.Status.Ready}function E(t){t.opponent1&&(t.opponent1.forfeit=void 0,t.opponent1.result=void 0),t.opponent2&&(t.opponent2.forfeit=void 0,t.opponent2.result=void 0),t.status=O(t)}function x(t,e){const n=(t,e,n)=>{t&&e&&Object.keys(e).filter((t=>!n.includes(t))).forEach((n=>{t[n]=e[n]}))},o=["id","score","position","forfeit","result"];n(t,e,["id","number","stage_id","group_id","round_id","status","opponent1","opponent2","child_count","parent_id"]),n(t.opponent1,e.opponent1,o),n(t.opponent2,e.opponent2,o)}function M(t,e){const n=t[e];return n&&n.id}function R(t,e){if(!e)throw Error("Cannot find a BYE participant.");const n=t.find((t=>t.id===(null==e?void 0:e.id)));if(!n)throw Error("Participant not found.");return n}function P(t,e){var n,o,r,a;const s=null===(n=e.opponent1)||void 0===n?void 0:n.id,u=null===(o=e.opponent2)||void 0===o?void 0:o.id,l=null===(r=t.opponent1)||void 0===r?void 0:r.id,c=null===(a=t.opponent2)||void 0===a?void 0:a.id;if(i(s)&&s!==l&&s!==c)throw Error("The given opponent1 ID does not exist in this match.");if(i(u)&&u!==l&&u!==c)throw Error("The given opponent2 ID does not exist in this match.");(i(s)&&s===c||i(u)&&u===l)&&N(e)}function C(t,e){var n,r,i,a;if(e.status===o.Status.Running)null===(n=t.opponent1)||void 0===n||delete n.result,null===(r=t.opponent2)||void 0===r||delete r.result,t.status=o.Status.Running;else if(e.status===o.Status.Completed){if(void 0===(null===(i=e.opponent1)||void 0===i?void 0:i.score)||void 0===(null===(a=e.opponent2)||void 0===a?void 0:a.score))return;e.opponent1.score>e.opponent2.score?e.opponent1.result="win":e.opponent2.score>e.opponent1.score?e.opponent2.result="win":(e.opponent1.result="draw",e.opponent2.result="draw"),t.status=o.Status.Completed}}function N(t){[t.opponent1,t.opponent2]=[t.opponent2,t.opponent1]}function L(t,e){var n,r,i,a;if((null===(n=e.opponent1)||void 0===n?void 0:n.score)===(null===(r=t.opponent1)||void 0===r?void 0:r.score)&&(null===(i=e.opponent2)||void 0===i?void 0:i.score)===(null===(a=t.opponent2)||void 0===a?void 0:a.score))return!1;const s=t.status;return t.status=o.Status.Running,e.opponent1&&t.opponent1&&(t.opponent1.score=e.opponent1.score),e.opponent2&&t.opponent2&&(t.opponent2.score=e.opponent2.score),t.status!==s}function j(t,e){return t&&!e?{opponent1:{...t,result:"win"},opponent2:null}:!t&&e?{opponent1:null,opponent2:{...e,result:"win"}}:{opponent1:t,opponent2:e}}function B(t,e,n){t.status=o.Status.Completed,F(t,e,"win","loss",n),F(t,e,"loss","win",n),F(t,e,"draw","draw",n);const{opponent1:r,opponent2:i}=j(t.opponent1,t.opponent2);t.opponent1=r,t.opponent2=i,I(t,e)}function F(t,e,n,o,r){var i,a;if(e.opponent1&&e.opponent2){if("win"===e.opponent1.result&&"win"===e.opponent2.result)throw Error("There are two winners.");if("loss"===e.opponent1.result&&"loss"===e.opponent2.result)throw Error("There are two losers.");if(!r&&!0===e.opponent1.forfeit&&!0===e.opponent2.forfeit)throw Error("There are two forfeits.")}(null===(i=e.opponent1)||void 0===i?void 0:i.result)===n&&(t.opponent1?t.opponent1.result=n:t.opponent1={id:null,result:n},t.opponent2?t.opponent2.result=o:t.opponent2={id:null,result:o}),(null===(a=e.opponent2)||void 0===a?void 0:a.result)===n&&(t.opponent2?t.opponent2.result=n:t.opponent2={id:null,result:n},t.opponent1?t.opponent1.result=o:t.opponent1={id:null,result:o})}function I(t,e){var n,o,r,i;if(!0===(null===(n=e.opponent1)||void 0===n?void 0:n.forfeit)&&!0===(null===(o=e.opponent2)||void 0===o?void 0:o.forfeit))return t.opponent1&&(t.opponent1.forfeit=!0),void(t.opponent2&&(t.opponent2.forfeit=!0));!0===(null===(r=e.opponent1)||void 0===r?void 0:r.forfeit)&&(t.opponent1&&(t.opponent1.forfeit=!0),t.opponent2?t.opponent2.result="win":t.opponent2={id:null,result:"win"}),!0===(null===(i=e.opponent2)||void 0===i?void 0:i.forfeit)&&(t.opponent2&&(t.opponent2.forfeit=!0),t.opponent1?t.opponent1.result="win":t.opponent1={id:null,result:"win"})}function D(t,e,n,o){const r=e.map(((e,o)=>{if(null===e)return null;const r=n.find((n=>"object"==typeof e?n[t]===e[t]:n[t]===e));if(!r)throw Error(`Participant ${t} not found in database.`);return{id:r.id,position:o+1}}));if(!o)return r;if(o.length!==r.length)throw Error("Not enough seeds in at least one group of the manual ordering.");return o.map((t=>r[t-1]))}function T(t){const e=t.filter((t=>null!==t));if(e.sort(((t,e)=>t.position-e.position)),e.length===t.length)return e;const n=Object.fromEntries(e.map((t=>[t.position-1,t])));return Array.from({length:t.length},((t,e)=>n[e]||null))}function U(t){return t.filter((t=>null!==t))}function A(t){return t%2==1}function G(t){return!A(t)}function z(t,e,n,o){return $(t,e,n),1===e?2*o:o}function $(t,e,n){if(t&&!V(e,n))throw Error("This round does not support ordering.");if(!t&&!W(e))throw Error("This round does not support ordering.")}function W(t){return 1===t}function V(t,e){return 1===t||G(t)&&te%2==0)),odd:t.filter(((t,e)=>e%2==1))}},e.makeRoundRobinMatches=function(t,e="simple"){const n=a(t);if("simple"===e)return n;const o=n.map((t=>[...t].reverse())).reverse();return[...n,...o]},e.makeRoundRobinDistribution=a,e.assertRoundRobin=function(t,e){const n=t.length,o=Math.floor(n/2),r=n%2==0?n-1:n;if(e.length!==r)throw Error("Round count is wrong");if(!e.every((t=>t.length===o)))throw Error("Not every round has the good number of matches");const i=Object.fromEntries(t.map((t=>[t,new Set])));for(const t of e){const e=new Set;for(const n of t){if(2!==n.length)throw Error("One match is not a pair");if(e.has(n[0]))throw Error("This team is already playing");if(e.add(n[0]),e.has(n[1]))throw Error("This team is already playing");if(e.add(n[1]),i[n[0]].has(n[1]))throw Error("The team has already matched this team");if(i[n[0]].add(n[1]),i[n[1]].has(n[0]))throw Error("The team has already matched this team");i[n[1]].add(n[0])}}},e.makeGroups=function(t,e){const n=Math.ceil(t.length/e),o=[];for(let e=0;enull!==t)),e=e||Y(t.length),t.length[t,null])),e,null);const n=t.length,o=e-n,r=t.slice(0,n-o).filter(((t,e)=>e%2==0)).map(((e,n)=>[t[2*n],t[2*n+1]])),i=t.slice(n-o,n).map((t=>[t,null]));return l([...r.flat(),...i.flat()],e,null)},e.normalizeIds=function(t){const e={participant:s(t.participant),stage:s(t.stage),group:s(t.group),round:s(t.round),match:s(t.match),match_game:s(t.match_game)};return{participant:t.participant.map((t=>({...t,id:e.participant[t.id]}))),stage:t.stage.map((t=>({...t,id:e.stage[t.id]}))),group:t.group.map((t=>({...t,id:e.group[t.id],stage_id:e.stage[t.stage_id]}))),round:t.round.map((t=>({...t,id:e.round[t.id],stage_id:e.stage[t.stage_id],group_id:e.group[t.group_id]}))),match:t.match.map((t=>({...t,id:e.match[t.id],stage_id:e.stage[t.stage_id],group_id:e.group[t.group_id],round_id:e.round[t.round_id],opponent1:u(t.opponent1,e.participant),opponent2:u(t.opponent2,e.participant)}))),match_game:t.match_game.map((t=>({...t,id:e.match_game[t.id],stage_id:e.stage[t.stage_id],parent_id:e.match[t.parent_id],opponent1:u(t.opponent1,e.participant),opponent2:u(t.opponent2,e.participant)})))}},e.makeNormalizedIdMapping=s,e.normalizeParticipant=u,e.setArraySize=l,e.makePairs=function(t){return t.map(((e,n)=>n%2==0?[t[n],t[n+1]]:[])).filter((t=>2===t.length))},e.ensureEvenSized=function(t){if(t.length%2==1)throw Error("Array size must be even.")},e.ensureNoDuplicates=function(t){const e=U(t);if(e.filter(((t,n)=>{const o=JSON.stringify(t);return e.findIndex((t=>JSON.stringify(t)===o))===n})).lengthe)throw Error("The seeding has more participants than the size of the stage.");return t.length(null==t?void 0:t.id)===e))},e.getSide=f,e.getOtherSide=h,e.isMatchPending=function(t){var e,n;return!(null===(e=t.opponent1)||void 0===e?void 0:e.id)||!(null===(n=t.opponent2)||void 0===n?void 0:n.id)},e.isMatchStarted=m,e.isMatchCompleted=v,e.isMatchOngoing=function(t){return[o.Status.Ready,o.Status.Running].includes(t.status)},e.isMatchStale=function(t){return t.status>=o.Status.Completed||k(t)},e.isMatchForfeitCompleted=b,e.isMatchResultCompleted=y,e.isMatchDrawCompleted=w,e.isMatchWinCompleted=_,e.isMatchByeCompleted=k,e.isMatchUpdateLocked=function(t){return t.status===o.Status.Locked||t.status===o.Status.Waiting||t.status===o.Status.Archived||k(t)},e.isMatchParticipantLocked=function(t){return t.status>=o.Status.Running},e.hasBye=S,e.getMatchStatus=O,e.setMatchResults=function(t,e,n){var o,r;if(C(t,e),!n&&("draw"===(null===(o=e.opponent1)||void 0===o?void 0:o.result)||"draw"===(null===(r=e.opponent2)||void 0===r?void 0:r.result)))throw Error("Having a draw is forbidden in an elimination tournament.");const i=v(e),a=v(t);x(t,e),P(t,e);const s=L(t,e);return i&&a?(B(t,e,n),{statusChanged:!1,resultChanged:!0}):i&&!a?(B(t,e,n),{statusChanged:!0,resultChanged:!0}):!i&&a?(E(t),{statusChanged:!0,resultChanged:!0}):{statusChanged:s,resultChanged:!1}},e.resetMatchResults=E,e.setExtraFields=x,e.getOpponentId=M,e.getOriginPosition=function(t,e){var n;const o=null===(n=t[e])||void 0===n?void 0:n.position;if(void 0===o)throw Error("Position is undefined.");return o},e.getLosers=function(t,e){const n=[];let o=null,r=-1;for(const i of e){i.round_id!==o&&(o=i.round_id,r++,n[r]=[]);const e=d(i);null!==e&&n[r].push(R(t,e))}return n},e.makeFinalStandings=function(t){const e=[];let n=1;for(const o of t){for(const t of o)e.push({id:t.id,name:t.name,rank:n});n++}return e},e.getGrandFinalDecisiveMatch=function(t,e){if("simple"===t)return e[0];if("double"===t)return"opponent2"===g(e[0])?e[1]:e[0];throw Error("The Grand Final is disabled.")},e.findParticipant=R,e.getNextSide=function(t,e,n,o){return"loser_bracket"===o&&e%2==1||"loser_bracket"===o&&e===n?"opponent2":f(t)},e.getNextSideLoserBracket=function(t,e,n){var o;return n>1||(null===(o=e.opponent1)||void 0===o?void 0:o.position)===t?"opponent1":"opponent2"},e.getNextSideConsolationFinalDoubleElimination=function(t){return A(t)?"opponent1":"opponent2"},e.setNextOpponent=function(t,e,n,o){var r;t[e]=n[o]&&{id:M(n,o),position:null===(r=t[e])||void 0===r?void 0:r.position},t.status=O(t)},e.resetNextOpponent=function(t,e){var n;t[e]=t[e]&&{id:null,position:null===(n=t[e])||void 0===n?void 0:n.position},t.status=o.Status.Locked},e.handleOpponentsInversion=P,e.handleGivenStatus=C,e.invertOpponents=N,e.setScores=L,e.getInferredResult=j,e.setCompleted=B,e.setResults=F,e.setForfeits=I,e.isSeedingWithIds=function(t){return t.some((t=>"number"==typeof t))},e.extractParticipantsFromSeeding=function(t,e){return e.filter((t=>null!==t)).map((e=>"string"==typeof e?{tournament_id:t,name:e}:{...e,tournament_id:t,name:e.name}))},e.mapParticipantsNamesToDatabase=function(t,e,n){return D("name",t,e,n)},e.mapParticipantsIdsToDatabase=function(t,e,n){return D("id",t,e,n)},e.mapParticipantsToDatabase=D,e.convertMatchesToSeeding=function(t){return T([].concat(...t.map((t=>[t.opponent1,t.opponent2]))))},e.convertSlotsToSeeding=function(t){return t.map((t=>null===t||null===t.id?null:t.id))},e.sortSeeding=T,e.getNonNull=U,e.uniqueBy=function(t,e){const n=new Set;return t.filter((t=>{const o=e(t);return!o||!n.has(o)&&(n.add(o),!0)}))},e.isMajorRound=A,e.isMinorRound=G,e.transitionToMajor=function(t){const e=t.length/2,n=[];for(let o=0;o=i)t.opponent1.result="win";else if(t.opponent2.score>=i)t.opponent2.result="win";else if(t.opponent1.score===t.opponent2.score&&t.opponent1.score+t.opponent2.score>e-1){if(n)return t.opponent1.result="draw",void(t.opponent2.result="draw");throw Error("Match games result in a tie for the parent match.")}},e.getParentMatchResults=function(t,e){return{opponent1:{id:t.opponent1&&t.opponent1.id,score:e.opponent1},opponent2:{id:t.opponent2&&t.opponent2.id,score:e.opponent2}}},e.getUpdatedMatchResults=function(t,e,n){return{...e,...t,...n?{opponent1:null===t.opponent1?null:{...e.opponent1,...t.opponent1},opponent2:null===t.opponent2?null:{...e.opponent2,...t.opponent2}}:{opponent1:null===t.opponent1?{id:null}:{...e.opponent1,...t.opponent1},opponent2:null===t.opponent2?{id:null}:{...e.opponent2,...t.opponent2}}}},e.getChildGamesResults=function(t){const e={opponent1:0,opponent2:0};for(const n of t){const t=g(n);"opponent1"===t?e.opponent1++:"opponent2"===t&&e.opponent2++}return e},e.getSeeds=function(t,e,n,o){const r=z(t,e,n,o);return Array.from({length:r},((t,e)=>e+1))},e.getSeedCount=z,e.ensureOrderingSupported=$,e.isOrderingSupportedUpperBracket=W,e.isOrderingSupportedLoserBracket=V,e.getUpperBracketRoundCount=H,e.getRoundPairCount=J,e.isDoubleEliminationNecessary=function(t){return t>2},e.findLoserMatchNumber=function(t,e,n,o){const i=q(t,e),a=Array.from({length:i},((t,e)=>e+1)),s=(o?r.ordering[o](a):a).indexOf(n)+1;return 1===e?Math.ceil(s/2):s},e.getLoserRoundMatchCount=K,e.getLoserCountFromWbForLbRound=q,e.getLoserOrdering=function(t,e){return t[1+Math.floor(e/2)]},e.getLowerBracketRoundCount=function(t){return 2*J(t)},e.getDiagonalMatchNumber=function(t){return Math.ceil(t/2)},e.getNearestPowerOfTwo=Y,e.minScoreToWinBestOfX=Q,e.isRoundRobin=X,e.ensureNotRoundRobin=function(t){if(X(t))throw Error("Impossible to update ordering in a round-robin stage.")},e.isRoundCompleted=function(t){return t.every((t=>t.status>=o.Status.Completed))},e.isWinnerBracket=Z,e.isLoserBracket=tt,e.isFinalGroup=et,e.getMatchLocation=function(t,e){return Z(t,e)?"winner_bracket":tt(t,e)?"loser_bracket":et(t,e)?"final_group":"single_bracket"},e.getFractionOfFinal=function(t,e){if(t>e)throw Error(`There are more rounds than possible. ${JSON.stringify({roundNumber:t,roundCount:e})}`);return 1/Math.pow(2,e-t)},e.getRanking=function(t,e){const n={};for(const o of t)nt(n,e,o.opponent1,o.opponent2),nt(n,e,o.opponent2,o.opponent1);return function(t){const e=Object.values(t).sort(((t,e)=>t.points!==e.points?e.points-t.points:t.played!==e.played?e.played-t.played:e.scoreDifference-t.scoreDifference)),n={value:0,lastPoints:-1};for(const t of e)t.rank=n.lastPoints!==t.points?++n.value:n.value,n.lastPoints=t.points;return e}(n)}},9037:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StageCreator=e.Delete=e.Reset=e.Find=e.Update=e.Get=e.ordering=e.helpers=e.BracketsManager=void 0;var o=n(6076);Object.defineProperty(e,"BracketsManager",{enumerable:!0,get:function(){return o.BracketsManager}}),e.helpers=n(4487);var r=n(2644);Object.defineProperty(e,"ordering",{enumerable:!0,get:function(){return r.ordering}});var i=n(3576);Object.defineProperty(e,"Get",{enumerable:!0,get:function(){return i.Get}});var a=n(2011);Object.defineProperty(e,"Update",{enumerable:!0,get:function(){return a.Update}});var s=n(4063);Object.defineProperty(e,"Find",{enumerable:!0,get:function(){return s.Find}});var u=n(5369);Object.defineProperty(e,"Reset",{enumerable:!0,get:function(){return u.Reset}});var l=n(4378);Object.defineProperty(e,"Delete",{enumerable:!0,get:function(){return l.Delete}});var c=n(4267);Object.defineProperty(e,"StageCreator",{enumerable:!0,get:function(){return c.StageCreator}})},6076:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BracketsManager=void 0;const o=n(9765),r=n(3576),i=n(2011),a=n(4378),s=n(4063),u=n(5369),l=n(7429),c=n(4487);e.BracketsManager=class{constructor(t,e){this.verbose=!1,this.verbose=null!=e&&e,this.storage=t,this.instrumentStorage(),this.storage.selectFirst=async(t,e,n=!0)=>{var o;const r=await this.storage.select(t,e);if(!r||0===r.length)return null;if(n&&r.length>1)throw Error(`Selecting ${JSON.stringify(e)} on table "${t}" must return a unique value.`);return null!==(o=r[0])&&void 0!==o?o:null},this.storage.selectLast=async(t,e,n=!0)=>{var o;const r=await this.storage.select(t,e);if(!r||0===r.length)return null;if(n&&r.length>1)throw Error(`Selecting ${JSON.stringify(e)} on table "${t}" must return a unique value.`);return null!==(o=r[r.length-1])&&void 0!==o?o:null};const n=new o.Create(this.storage).stage.bind(this);this.create=Object.assign(n,{stage:n}),this.get=new r.Get(this.storage),this.update=new i.Update(this.storage),this.delete=new a.Delete(this.storage),this.find=new s.Find(this.storage),this.reset=new u.Reset(this.storage)}async import(t,e=!1){if(e&&(t=c.normalizeIds(t)),!await this.storage.delete("participant"))throw Error("Could not empty the participant table.");if(!await this.storage.insert("participant",t.participant))throw Error("Could not import participants.");if(!await this.storage.delete("stage"))throw Error("Could not empty the stage table.");if(!await this.storage.insert("stage",t.stage))throw Error("Could not import stages.");if(!await this.storage.delete("group"))throw Error("Could not empty the group table.");if(!await this.storage.insert("group",t.group))throw Error("Could not import groups.");if(!await this.storage.delete("round"))throw Error("Could not empty the round table.");if(!await this.storage.insert("round",t.round))throw Error("Could not import rounds.");if(!await this.storage.delete("match"))throw Error("Could not empty the match table.");if(!await this.storage.insert("match",t.match))throw Error("Could not import matches.");if(!await this.storage.delete("match_game"))throw Error("Could not empty the match_game table.");if(!await this.storage.insert("match_game",t.match_game))throw Error("Could not import match games.")}async export(){const t=await this.storage.select("participant");if(!t)throw Error("Error getting participants.");const e=await this.storage.select("stage");if(!e)throw Error("Error getting stages.");const n=await this.storage.select("group");if(!n)throw Error("Error getting groups.");const o=await this.storage.select("round");if(!o)throw Error("Error getting rounds.");const r=await this.storage.select("match");if(!r)throw Error("Error getting matches.");return{participant:t,stage:e,group:n,round:o,match:r,match_game:await this.get.matchGames(r)}}instrumentStorage(){const t=this.storage,e=["insert","select","update","delete"];for(const n of Object.getOwnPropertyNames(Object.getPrototypeOf(t))){if(!e.includes(n))continue;const o=t[n].bind(t);t[n]=async(t,...e)=>{const r=this.verbose;let i,a;r&&(i=(0,l.v4)(),a=Date.now(),console.log(`${i} ${n.toUpperCase()} "${t}" args: ${JSON.stringify(e)}`));const s=await o(t,...e);if(r){const t=Date.now()-a;console.log(`${i} ${t}ms - Returned ${JSON.stringify(s)}`)}return s}}}}},2644:function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.defaultMinorOrdering=e.ordering=void 0,e.ordering={natural:t=>[...t],reverse:t=>[...t].reverse(),half_shift:t=>[...t.slice(t.length/2),...t.slice(0,t.length/2)],reverse_half_shift:t=>[...t.slice(0,t.length/2).reverse(),...t.slice(t.length/2).reverse()],pair_flip:t=>{const e=[];for(let n=0;n{if(2===t.length)return t;const e=t.length;let n=[1,2];for(;n.length{const n=[];let o=0,r=0;for(;n.length=t.length&&(o=++r);return n},"groups.seed_optimized":(t,e)=>{const n=Array.from({length:e},(t=>[]));for(let o=0;o{if(n<2)return[...t];if(n%2==1)return e.ordering["groups.seed_optimized"](t,n);const o=t.length,r=n/2;let i=[1,2];for(;i.length{const e=t%r,o=Math.floor(t/r),i=Math.floor(o/2)%2==1;return o%2==0?i?r-1-e:e:i?r+e:n-1-e},s=Array.from({length:n},(()=>[])),u=Math.floor(i.length/2);for(let e=0;e[t,e])));for(const t of s)t.sort(((t,e)=>l.get(t)-l.get(e)));return s.flat()}},e.defaultMinorOrdering={4:["natural","reverse"],8:["natural","reverse","natural"],16:["natural","reverse_half_shift","reverse","natural"],32:["natural","reverse","half_shift","natural","natural"],64:["natural","reverse","half_shift","reverse","natural","natural"],128:["natural","reverse","half_shift","pair_flip","pair_flip","pair_flip","natural"]}},5369:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Reset=void 0;const o=n(7021),r=n(3517),i=n(4487);class a extends r.BaseUpdater{async matchResults(t){const e=await this.storage.select("match",t);if(!e)throw Error("Match not found.");if(!i.isMatchForfeitCompleted(e)&&e.child_count>0)throw Error("The parent match is controlled by its child games and its result cannot be reset.");const n=await this.storage.select("stage",e.stage_id);if(!n)throw Error("Stage not found.");const r=await this.storage.select("group",e.group_id);if(!r)throw Error("Group not found.");const{roundNumber:a,roundCount:s}=await this.getRoundPositionalInfo(e.round_id),u=i.getMatchLocation(n.type,r.number);if((await this.getNextMatches(e,u,n,a,s)).some((t=>t&&t.status>=o.Status.Running&&!i.isMatchByeCompleted(t))))throw Error("The match is locked.");i.resetMatchResults(e),await this.applyMatchUpdate(e),i.isRoundRobin(n)||await this.updateRelatedMatches(e,!0,!0)}async matchGameResults(t){const e=await this.storage.select("match_game",t);if(!e)throw Error("Match game not found.");const n=await this.storage.select("stage",e.stage_id);if(!n)throw Error("Stage not found.");const o=i.isRoundRobin(n);if(i.resetMatchResults(e),!await this.storage.update("match_game",e.id,e))throw Error("Could not update the match game.");await this.updateParentMatch(e.parent_id,o)}async seeding(t){await this.updateSeeding(t,{seeding:null},!1)}}e.Reset=a},2011:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Update=void 0;const o=n(7021),r=n(2644),i=n(3517),a=n(4487);class s extends i.BaseUpdater{async match(t){if(void 0===t.id)throw Error("No match id given.");const e=await this.storage.select("match",t.id);if(!e)throw Error("Match not found.");await this.updateMatch(e,t)}async matchGame(t){const e=await this.findMatchGame(t);await this.updateMatchGame(e,t)}async ordering(t,e){const n=await this.storage.select("stage",t);if(!n)throw Error("Stage not found.");a.ensureNotRoundRobin(n);const o=await this.getOrderedRounds(n);if(e.length!==o.length)throw Error("The count of seed orderings is incorrect.");for(let t=0;tt.status>o.Status.Ready)))throw Error("At least one match has started or is completed.");const i=await this.storage.select("stage",t.stage_id);if(!i)throw Error("Stage not found.");if(void 0===i.settings.size)throw Error("Undefined stage size.");const s=await this.storage.select("group",t.group_id);if(!s)throw Error("Group not found.");const u=a.isLoserBracket(i.type,s.number),l=a.getLowerBracketRoundCount(i.settings.size),c=a.getSeeds(u,t.number,l,n.length),d=r.ordering[e](c);await this.applyRoundOrdering(t.number,n,d)}async updateStageMatchChildCount(t,e){if(!await this.storage.update("match",{stage_id:t},{child_count:e}))throw Error("Could not update the match.");const n=await this.storage.select("match",{stage_id:t});if(!n)throw Error("This stage has no match.");for(const t of n)await this.adjustMatchChildGames(t,e)}async updateGroupMatchChildCount(t,e){if(!await this.storage.update("match",{group_id:t},{child_count:e}))throw Error("Could not update the match.");const n=await this.storage.select("match",{group_id:t});if(!n)throw Error("This group has no match.");for(const t of n)await this.adjustMatchChildGames(t,e)}async updateRoundMatchChildCount(t,e){if(!await this.storage.update("match",{round_id:t},{child_count:e}))throw Error("Could not update the match.");const n=await this.storage.select("match",{round_id:t});if(!n)throw Error("This round has no match.");for(const t of n)await this.adjustMatchChildGames(t,e)}async applyRoundOrdering(t,e,n){for(const o of e){const r={...o};if(r.opponent1=a.findPosition(e,n.shift()),1===t&&(r.opponent2=a.findPosition(e,n.shift())),!await this.storage.update("match",r.id,r))throw Error("Could not update the match.")}}async adjustMatchChildGames(t,e){const n=await this.storage.select("match_game",{parent_id:t.id});let o=n?n.length:0;for(;oe;){if(!await this.storage.delete("match_game",{parent_id:t.id,number:o}))throw Error("Could not adjust the match games when deleting.");o--}if(!await this.storage.update("match",t.id,{...t,child_count:e}))throw Error("Could not update the match.")}}e.Update=s},7021:function(t,e,n){"use strict";var o=this&&this.__createBinding||(Object.create?function(t,e,n,o){void 0===o&&(o=n);var r=Object.getOwnPropertyDescriptor(e,n);r&&!("get"in r?!e.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,o,r)}:function(t,e,n,o){void 0===o&&(o=n),t[o]=e[n]}),r=this&&this.__exportStar||function(t,e){for(var n in t)"default"===n||Object.prototype.hasOwnProperty.call(e,n)||o(e,t,n)};Object.defineProperty(e,"__esModule",{value:!0}),r(n(5118),e),r(n(7677),e),r(n(7121),e),r(n(2854),e)},7677:function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0})},2854:function(t,e){"use strict";var n;Object.defineProperty(e,"__esModule",{value:!0}),e.Status=void 0,(n=e.Status||(e.Status={}))[n.Locked=0]="Locked",n[n.Waiting=1]="Waiting",n[n.Ready=2]="Ready",n[n.Running=3]="Running",n[n.Completed=4]="Completed",n[n.Archived=5]="Archived"},7121:function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0})},5118:function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0})},13:function(t,e,n){"use strict";var o=n(6690),r=n(9728);function i(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var a=i(o),s=i(r),u=[],l=u.forEach,c=u.slice,d=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/,p={name:"cookie",lookup:function(t){var e;if(t.lookupCookie&&"undefined"!=typeof document){var n=function(t){for(var e="".concat(t,"="),n=document.cookie.split(";"),o=0;o4&&void 0!==arguments[4]?arguments[4]:{path:"/",sameSite:"strict"};n&&(r.expires=new Date,r.expires.setTime(r.expires.getTime()+60*n*1e3)),o&&(r.domain=o),document.cookie=function(t,e,n){var o=n||{};o.path=o.path||"/";var r=encodeURIComponent(e),i="".concat(t,"=").concat(r);if(o.maxAge>0){var a=o.maxAge-0;if(Number.isNaN(a))throw new Error("maxAge should be a Number");i+="; Max-Age=".concat(Math.floor(a))}if(o.domain){if(!d.test(o.domain))throw new TypeError("option domain is invalid");i+="; Domain=".concat(o.domain)}if(o.path){if(!d.test(o.path))throw new TypeError("option path is invalid");i+="; Path=".concat(o.path)}if(o.expires){if("function"!=typeof o.expires.toUTCString)throw new TypeError("option expires is invalid");i+="; Expires=".concat(o.expires.toUTCString())}if(o.httpOnly&&(i+="; HttpOnly"),o.secure&&(i+="; Secure"),o.sameSite)switch("string"==typeof o.sameSite?o.sameSite.toLowerCase():o.sameSite){case!0:i+="; SameSite=Strict";break;case"lax":i+="; SameSite=Lax";break;case"strict":i+="; SameSite=Strict";break;case"none":i+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}return i}(t,encodeURIComponent(e),r)}(e.lookupCookie,t,e.cookieMinutes,e.cookieDomain,e.cookieOptions)}},g={name:"querystring",lookup:function(t){var e;if("undefined"!=typeof window){var n=window.location.search;!window.location.search&&window.location.hash&&window.location.hash.indexOf("?")>-1&&(n=window.location.hash.substring(window.location.hash.indexOf("?")));for(var o=n.substring(1).split("&"),r=0;r0&&o[r].substring(0,i)===t.lookupQuerystring&&(e=o[r].substring(i+1))}}return e}},f=null,h=function(){if(null!==f)return f;try{f="undefined"!==window&&null!==window.localStorage;var t="i18next.translate.boo";window.localStorage.setItem(t,"foo"),window.localStorage.removeItem(t)}catch(t){f=!1}return f},m={name:"localStorage",lookup:function(t){var e;if(t.lookupLocalStorage&&h()){var n=window.localStorage.getItem(t.lookupLocalStorage);n&&(e=n)}return e},cacheUserLanguage:function(t,e){e.lookupLocalStorage&&h()&&window.localStorage.setItem(e.lookupLocalStorage,t)}},v=null,b=function(){if(null!==v)return v;try{v="undefined"!==window&&null!==window.sessionStorage;var t="i18next.translate.boo";window.sessionStorage.setItem(t,"foo"),window.sessionStorage.removeItem(t)}catch(t){v=!1}return v},y={name:"sessionStorage",lookup:function(t){var e;if(t.lookupSessionStorage&&b()){var n=window.sessionStorage.getItem(t.lookupSessionStorage);n&&(e=n)}return e},cacheUserLanguage:function(t,e){e.lookupSessionStorage&&b()&&window.sessionStorage.setItem(e.lookupSessionStorage,t)}},w={name:"navigator",lookup:function(t){var e=[];if("undefined"!=typeof navigator){if(navigator.languages)for(var n=0;n0?e:void 0}},_={name:"htmlTag",lookup:function(t){var e,n=t.htmlTag||("undefined"!=typeof document?document.documentElement:null);return n&&"function"==typeof n.getAttribute&&(e=n.getAttribute("lang")),e}},k={name:"path",lookup:function(t){var e;if("undefined"!=typeof window){var n=window.location.pathname.match(/\/([a-zA-Z-]*)/g);if(n instanceof Array)if("number"==typeof t.lookupFromPathIndex){if("string"!=typeof n[t.lookupFromPathIndex])return;e=n[t.lookupFromPathIndex].replace("/","")}else e=n[0].replace("/","")}return e}},S={name:"subdomain",lookup:function(t){var e="number"==typeof t.lookupFromSubdomainIndex?t.lookupFromSubdomainIndex+1:1,n="undefined"!=typeof window&&window.location&&window.location.hostname&&window.location.hostname.match(/^(\w{2,5})\.(([a-z0-9-]{1,63}\.[a-z]{2,6})|localhost)/i);if(n)return n[e]}},O=function(){function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};a.default(this,t),this.type="languageDetector",this.detectors={},this.init(e,n)}return s.default(t,[{key:"init",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.services=t,this.options=function(t){return l.call(c.call(arguments,1),(function(e){if(e)for(var n in e)void 0===t[n]&&(t[n]=e[n])})),t}(e,this.options||{},{order:["querystring","cookie","localStorage","sessionStorage","navigator","htmlTag"],lookupQuerystring:"lng",lookupCookie:"i18next",lookupLocalStorage:"i18nextLng",lookupSessionStorage:"i18nextLng",caches:["localStorage"],excludeCacheFor:["cimode"]}),this.options.lookupFromUrlIndex&&(this.options.lookupFromPathIndex=this.options.lookupFromUrlIndex),this.i18nOptions=n,this.addDetector(p),this.addDetector(g),this.addDetector(m),this.addDetector(y),this.addDetector(w),this.addDetector(_),this.addDetector(k),this.addDetector(S)}},{key:"addDetector",value:function(t){this.detectors[t.name]=t}},{key:"detect",value:function(t){var e=this;t||(t=this.options.order);var n=[];return t.forEach((function(t){if(e.detectors[t]){var o=e.detectors[t].lookup(e.options);o&&"string"==typeof o&&(o=[o]),o&&(n=n.concat(o))}})),this.services.languageUtils.getBestMatchFromCodes?n:n.length>0?n[0]:null}},{key:"cacheUserLanguage",value:function(t,e){var n=this;e||(e=this.options.caches),e&&(this.options.excludeCacheFor&&this.options.excludeCacheFor.indexOf(t)>-1||e.forEach((function(e){n.detectors[e]&&n.detectors[e].cacheUserLanguage(t,n.options)})))}}]),t}();O.type="languageDetector",t.exports=O},6073:function(t,e,n){"use strict";var o=n(8698),r=n(6690),i=n(9728),a=n(6115),s=n(1655),u=n(4993),l=n(3808),c=n(8416),d=n(1589);function p(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var g=p(o),f=p(r),h=p(i),m=p(a),v=p(s),b=p(u),y=p(l),w=p(c),_=p(d);function k(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,o)}return n}function S(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{};f.default(this,t),this.init(e,n)}return h.default(t,[{key:"init",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prefix=e.prefix||"i18next:",this.logger=t||O,this.options=e,this.debug=e.debug}},{key:"setDebug",value:function(t){this.debug=t}},{key:"log",value:function(){for(var t=arguments.length,e=new Array(t),n=0;n1?e-1:0),o=1;o-1?t.replace(/###/g,"."):t}function r(){return!t||"string"==typeof t}for(var i="string"!=typeof e?[].concat(e):e.split(".");i.length>1;){if(r())return{};var a=o(i.shift());!t[a]&&n&&(t[a]=new n),t=Object.prototype.hasOwnProperty.call(t,a)?t[a]:{}}return r()?{}:{obj:t,k:o(i.shift())}}function N(t,e,n){var o=C(t,e,Object);o.obj[o.k]=n}function L(t,e){var n=C(t,e),o=n.obj,r=n.k;if(o)return o[r]}function j(t,e,n){var o=L(t,n);return void 0!==o?o:L(e,n)}function B(t,e,n){for(var o in e)"__proto__"!==o&&"constructor"!==o&&(o in t?"string"==typeof t[o]||t[o]instanceof String||"string"==typeof e[o]||e[o]instanceof String?n&&(t[o]=e[o]):B(t[o],e[o],n):t[o]=e[o]);return t}function F(t){return t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var I={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};function D(t){return"string"==typeof t?t.replace(/[&<>"'\/]/g,(function(t){return I[t]})):t}var T="undefined"!=typeof window&&window.navigator&&void 0===window.navigator.userAgentData&&window.navigator.userAgent&&window.navigator.userAgent.indexOf("MSIE")>-1,U=[" ",",","?","!",";"];function A(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,o)}return n}function G(t){for(var e=1;e2&&void 0!==arguments[2]?arguments[2]:".";if(t){if(t[e])return t[e];for(var o=e.split(n),r=t,i=0;ii+a;)a++,u=r[s=o.slice(i,i+a).join(n)];if(void 0===u)return;if(null===u)return null;if(e.endsWith(s)){if("string"==typeof u)return u;if(s&&"string"==typeof u[s])return u[s]}var l=o.slice(i+a).join(n);return l?z(u,l,n):void 0}r=r[o[i]]}return r}}var $=function(t){v.default(r,t);var e,n,o=(e=r,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}(),function(){var t,o=y.default(e);if(n){var r=y.default(this).constructor;t=Reflect.construct(o,arguments,r)}else t=o.apply(this,arguments);return b.default(this,t)});function r(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};return f.default(this,r),e=o.call(this),T&&M.call(m.default(e)),e.data=t||{},e.options=n,void 0===e.options.keySeparator&&(e.options.keySeparator="."),void 0===e.options.ignoreJSONStructure&&(e.options.ignoreJSONStructure=!0),e}return h.default(r,[{key:"addNamespaces",value:function(t){this.options.ns.indexOf(t)<0&&this.options.ns.push(t)}},{key:"removeNamespaces",value:function(t){var e=this.options.ns.indexOf(t);e>-1&&this.options.ns.splice(e,1)}},{key:"getResource",value:function(t,e,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},r=void 0!==o.keySeparator?o.keySeparator:this.options.keySeparator,i=void 0!==o.ignoreJSONStructure?o.ignoreJSONStructure:this.options.ignoreJSONStructure,a=[t,e];n&&"string"!=typeof n&&(a=a.concat(n)),n&&"string"==typeof n&&(a=a.concat(r?n.split(r):n)),t.indexOf(".")>-1&&(a=t.split("."));var s=L(this.data,a);return s||!i||"string"!=typeof n?s:z(this.data&&this.data[t]&&this.data[t][e],n,r)}},{key:"addResource",value:function(t,e,n,o){var r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1},i=this.options.keySeparator;void 0===i&&(i=".");var a=[t,e];n&&(a=a.concat(i?n.split(i):n)),t.indexOf(".")>-1&&(o=e,e=(a=t.split("."))[1]),this.addNamespaces(e),N(this.data,a,o),r.silent||this.emit("added",t,e,n,o)}},{key:"addResources",value:function(t,e,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{silent:!1};for(var r in n)"string"!=typeof n[r]&&"[object Array]"!==Object.prototype.toString.apply(n[r])||this.addResource(t,e,r,n[r],{silent:!0});o.silent||this.emit("added",t,e,n)}},{key:"addResourceBundle",value:function(t,e,n,o,r){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{silent:!1},a=[t,e];t.indexOf(".")>-1&&(o=n,n=e,e=(a=t.split("."))[1]),this.addNamespaces(e);var s=L(this.data,a)||{};o?B(s,n,r):s=G(G({},s),n),N(this.data,a,s),i.silent||this.emit("added",t,e,n)}},{key:"removeResourceBundle",value:function(t,e){this.hasResourceBundle(t,e)&&delete this.data[t][e],this.removeNamespaces(e),this.emit("removed",t,e)}},{key:"hasResourceBundle",value:function(t,e){return void 0!==this.getResource(t,e)}},{key:"getResourceBundle",value:function(t,e){return e||(e=this.options.defaultNS),"v1"===this.options.compatibilityAPI?G(G({},{}),this.getResource(t,e)):this.getResource(t,e)}},{key:"getDataByLanguage",value:function(t){return this.data[t]}},{key:"hasLanguageSomeTranslations",value:function(t){var e=this.getDataByLanguage(t);return!!(e&&Object.keys(e)||[]).find((function(t){return e[t]&&Object.keys(e[t]).length>0}))}},{key:"toJSON",value:function(){return this.data}}]),r}(M),W={processors:{},addPostProcessor:function(t){this.processors[t.name]=t},handle:function(t,e,n,o,r){var i=this;return t.forEach((function(t){i.processors[t]&&(e=i.processors[t].process(e,n,o,r))})),e}};function V(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,o)}return n}function H(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{};return f.default(this,r),e=o.call(this),T&&M.call(m.default(e)),n=["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],i=t,a=m.default(e),n.forEach((function(t){i[t]&&(a[t]=i[t])})),e.options=s,void 0===e.options.keySeparator&&(e.options.keySeparator="."),e.logger=x.create("translator"),e}return h.default(r,[{key:"changeLanguage",value:function(t){t&&(this.language=t)}},{key:"exists",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}};if(null==t)return!1;var n=this.resolve(t,e);return n&&void 0!==n.res}},{key:"extractFromKey",value:function(t,e){var n=void 0!==e.nsSeparator?e.nsSeparator:this.options.nsSeparator;void 0===n&&(n=":");var o=void 0!==e.keySeparator?e.keySeparator:this.options.keySeparator,r=e.ns||this.options.defaultNS||[],i=n&&t.indexOf(n)>-1,a=!(this.options.userDefinedKeySeparator||e.keySeparator||this.options.userDefinedNsSeparator||e.nsSeparator||function(t,e,n){e=e||"",n=n||"";var o=U.filter((function(t){return e.indexOf(t)<0&&n.indexOf(t)<0}));if(0===o.length)return!0;var r=new RegExp("(".concat(o.map((function(t){return"?"===t?"\\?":t})).join("|"),")")),i=!r.test(t);if(!i){var a=t.indexOf(n);a>0&&!r.test(t.substring(0,a))&&(i=!0)}return i}(t,n,o));if(i&&!a){var s=t.match(this.interpolator.nestingRegexp);if(s&&s.length>0)return{key:t,namespaces:r};var u=t.split(n);(n!==o||n===o&&this.options.ns.indexOf(u[0])>-1)&&(r=u.shift()),t=u.join(o)}return"string"==typeof r&&(r=[r]),{key:t,namespaces:r}}},{key:"translate",value:function(t,e,n){var o=this;if("object"!==g.default(e)&&this.options.overloadTranslationOptionHandler&&(e=this.options.overloadTranslationOptionHandler(arguments)),e||(e={}),null==t)return"";Array.isArray(t)||(t=[String(t)]);var i=void 0!==e.returnDetails?e.returnDetails:this.options.returnDetails,a=void 0!==e.keySeparator?e.keySeparator:this.options.keySeparator,s=this.extractFromKey(t[t.length-1],e),u=s.key,l=s.namespaces,c=l[l.length-1],d=e.lng||this.language,p=e.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(d&&"cimode"===d.toLowerCase()){if(p){var f=e.nsSeparator||this.options.nsSeparator;return i?(h.res="".concat(c).concat(f).concat(u),h):"".concat(c).concat(f).concat(u)}return i?(h.res=u,h):u}var h=this.resolve(t,e),m=h&&h.res,v=h&&h.usedKey||u,b=h&&h.exactUsedKey||u,y=Object.prototype.toString.apply(m),w=void 0!==e.joinArrays?e.joinArrays:this.options.joinArrays,_=!this.i18nFormat||this.i18nFormat.handleAsObject;if(_&&m&&"string"!=typeof m&&"boolean"!=typeof m&&"number"!=typeof m&&["[object Number]","[object Function]","[object RegExp]"].indexOf(y)<0&&("string"!=typeof w||"[object Array]"!==y)){if(!e.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");var k=this.options.returnedObjectHandler?this.options.returnedObjectHandler(v,m,H(H({},e),{},{ns:l})):"key '".concat(u," (").concat(this.language,")' returned an object instead of string.");return i?(h.res=k,h):k}if(a){var S="[object Array]"===y,O=S?[]:{},E=S?b:v;for(var x in m)if(Object.prototype.hasOwnProperty.call(m,x)){var M="".concat(E).concat(a).concat(x);O[x]=this.translate(M,H(H({},e),{joinArrays:!1,ns:l})),O[x]===M&&(O[x]=m[x])}m=O}}else if(_&&"string"==typeof w&&"[object Array]"===y)(m=m.join(w))&&(m=this.extendTranslation(m,t,e,n));else{var R=!1,P=!1,C=void 0!==e.count&&"string"!=typeof e.count,N=r.hasDefaultValue(e),L=C?this.pluralResolver.getSuffix(d,e.count,e):"",j=e["defaultValue".concat(L)]||e.defaultValue;!this.isValidLookup(m)&&N&&(R=!0,m=j),this.isValidLookup(m)||(P=!0,m=u);var B=(e.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&P?void 0:m,F=N&&j!==m&&this.options.updateMissing;if(P||R||F){if(this.logger.log(F?"updateKey":"missingKey",d,c,u,F?j:m),a){var I=this.resolve(u,H(H({},e),{},{keySeparator:!1}));I&&I.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}var D=[],T=this.languageUtils.getFallbackCodes(this.options.fallbackLng,e.lng||this.language);if("fallback"===this.options.saveMissingTo&&T&&T[0])for(var U=0;U1&&void 0!==arguments[1]?arguments[1]:{};return"string"==typeof t&&(t=[t]),t.forEach((function(t){if(!a.isValidLookup(e)){var u=a.extractFromKey(t,s),l=u.key;n=l;var c=u.namespaces;a.options.fallbackNS&&(c=c.concat(a.options.fallbackNS));var d=void 0!==s.count&&"string"!=typeof s.count,p=d&&!s.ordinal&&0===s.count&&a.pluralResolver.shouldUseIntlApi(),g=void 0!==s.context&&("string"==typeof s.context||"number"==typeof s.context)&&""!==s.context,f=s.lngs?s.lngs:a.languageUtils.toResolveHierarchy(s.lng||a.language,s.fallbackLng);c.forEach((function(t){a.isValidLookup(e)||(i=t,!J["".concat(f[0],"-").concat(t)]&&a.utils&&a.utils.hasLoadedNamespace&&!a.utils.hasLoadedNamespace(i)&&(J["".concat(f[0],"-").concat(t)]=!0,a.logger.warn('key "'.concat(n,'" for languages "').concat(f.join(", "),'" won\'t get resolved as namespace "').concat(i,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),f.forEach((function(n){if(!a.isValidLookup(e)){r=n;var i,u=[l];if(a.i18nFormat&&a.i18nFormat.addLookupKeys)a.i18nFormat.addLookupKeys(u,l,n,t,s);else{var c;d&&(c=a.pluralResolver.getSuffix(n,s.count,s));var f="".concat(a.options.pluralSeparator,"zero");if(d&&(u.push(l+c),p&&u.push(l+f)),g){var h="".concat(l).concat(a.options.contextSeparator).concat(s.context);u.push(h),d&&(u.push(h+c),p&&u.push(h+f))}}for(;i=u.pop();)a.isValidLookup(e)||(o=i,e=a.getResource(n,t,i,s))}})))}))}})),{res:e,usedKey:n,exactUsedKey:o,usedLng:r,usedNS:i}}},{key:"isValidLookup",value:function(t){return!(void 0===t||!this.options.returnNull&&null===t||!this.options.returnEmptyString&&""===t)}},{key:"getResource",value:function(t,e,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(t,e,n,o):this.resourceStore.getResource(t,e,n,o)}}],[{key:"hasDefaultValue",value:function(t){var e="defaultValue";for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&e===n.substring(0,e.length)&&void 0!==t[n])return!0;return!1}}]),r}(M);function q(t){return t.charAt(0).toUpperCase()+t.slice(1)}var Y=function(){function t(e){f.default(this,t),this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=x.create("languageUtils")}return h.default(t,[{key:"getScriptPartFromCode",value:function(t){if(!t||t.indexOf("-")<0)return null;var e=t.split("-");return 2===e.length?null:(e.pop(),"x"===e[e.length-1].toLowerCase()?null:this.formatLanguageCode(e.join("-")))}},{key:"getLanguagePartFromCode",value:function(t){if(!t||t.indexOf("-")<0)return t;var e=t.split("-");return this.formatLanguageCode(e[0])}},{key:"formatLanguageCode",value:function(t){if("string"==typeof t&&t.indexOf("-")>-1){var e=["hans","hant","latn","cyrl","cans","mong","arab"],n=t.split("-");return this.options.lowerCaseLng?n=n.map((function(t){return t.toLowerCase()})):2===n.length?(n[0]=n[0].toLowerCase(),n[1]=n[1].toUpperCase(),e.indexOf(n[1].toLowerCase())>-1&&(n[1]=q(n[1].toLowerCase()))):3===n.length&&(n[0]=n[0].toLowerCase(),2===n[1].length&&(n[1]=n[1].toUpperCase()),"sgn"!==n[0]&&2===n[2].length&&(n[2]=n[2].toUpperCase()),e.indexOf(n[1].toLowerCase())>-1&&(n[1]=q(n[1].toLowerCase())),e.indexOf(n[2].toLowerCase())>-1&&(n[2]=q(n[2].toLowerCase()))),n.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?t.toLowerCase():t}},{key:"isSupportedCode",value:function(t){return("languageOnly"===this.options.load||this.options.nonExplicitSupportedLngs)&&(t=this.getLanguagePartFromCode(t)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(t)>-1}},{key:"getBestMatchFromCodes",value:function(t){var e,n=this;return t?(t.forEach((function(t){if(!e){var o=n.formatLanguageCode(t);n.options.supportedLngs&&!n.isSupportedCode(o)||(e=o)}})),!e&&this.options.supportedLngs&&t.forEach((function(t){if(!e){var o=n.getLanguagePartFromCode(t);if(n.isSupportedCode(o))return e=o;e=n.options.supportedLngs.find((function(t){if(0===t.indexOf(o))return t}))}})),e||(e=this.getFallbackCodes(this.options.fallbackLng)[0]),e):null}},{key:"getFallbackCodes",value:function(t,e){if(!t)return[];if("function"==typeof t&&(t=t(e)),"string"==typeof t&&(t=[t]),"[object Array]"===Object.prototype.toString.apply(t))return t;if(!e)return t.default||[];var n=t[e];return n||(n=t[this.getScriptPartFromCode(e)]),n||(n=t[this.formatLanguageCode(e)]),n||(n=t[this.getLanguagePartFromCode(e)]),n||(n=t.default),n||[]}},{key:"toResolveHierarchy",value:function(t,e){var n=this,o=this.getFallbackCodes(e||this.options.fallbackLng||[],t),r=[],i=function(t){t&&(n.isSupportedCode(t)?r.push(t):n.logger.warn("rejecting language code not found in supportedLngs: ".concat(t)))};return"string"==typeof t&&t.indexOf("-")>-1?("languageOnly"!==this.options.load&&i(this.formatLanguageCode(t)),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&i(this.getScriptPartFromCode(t)),"currentOnly"!==this.options.load&&i(this.getLanguagePartFromCode(t))):"string"==typeof t&&i(this.formatLanguageCode(t)),o.forEach((function(t){r.indexOf(t)<0&&i(n.formatLanguageCode(t))})),r}}]),t}(),Q=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],X={1:function(t){return Number(t>1)},2:function(t){return Number(1!=t)},3:function(t){return 0},4:function(t){return Number(t%10==1&&t%100!=11?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2)},5:function(t){return Number(0==t?0:1==t?1:2==t?2:t%100>=3&&t%100<=10?3:t%100>=11?4:5)},6:function(t){return Number(1==t?0:t>=2&&t<=4?1:2)},7:function(t){return Number(1==t?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2)},8:function(t){return Number(1==t?0:2==t?1:8!=t&&11!=t?2:3)},9:function(t){return Number(t>=2)},10:function(t){return Number(1==t?0:2==t?1:t<7?2:t<11?3:4)},11:function(t){return Number(1==t||11==t?0:2==t||12==t?1:t>2&&t<20?2:3)},12:function(t){return Number(t%10!=1||t%100==11)},13:function(t){return Number(0!==t)},14:function(t){return Number(1==t?0:2==t?1:3==t?2:3)},15:function(t){return Number(t%10==1&&t%100!=11?0:t%10>=2&&(t%100<10||t%100>=20)?1:2)},16:function(t){return Number(t%10==1&&t%100!=11?0:0!==t?1:2)},17:function(t){return Number(1==t||t%10==1&&t%100!=11?0:1)},18:function(t){return Number(0==t?0:1==t?1:2)},19:function(t){return Number(1==t?0:0==t||t%100>1&&t%100<11?1:t%100>10&&t%100<20?2:3)},20:function(t){return Number(1==t?0:0==t||t%100>0&&t%100<20?1:2)},21:function(t){return Number(t%100==1?1:t%100==2?2:t%100==3||t%100==4?3:0)},22:function(t){return Number(1==t?0:2==t?1:(t<0||t>10)&&t%10==0?2:3)}},Z=["v1","v2","v3"],tt={zero:0,one:1,two:2,few:3,many:4,other:5},et=function(){function t(e){var n,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};f.default(this,t),this.languageUtils=e,this.options=o,this.logger=x.create("pluralResolver"),this.options.compatibilityJSON&&"v4"!==this.options.compatibilityJSON||"undefined"!=typeof Intl&&Intl.PluralRules||(this.options.compatibilityJSON="v3",this.logger.error("Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.")),this.rules=(n={},Q.forEach((function(t){t.lngs.forEach((function(e){n[e]={numbers:t.nr,plurals:X[t.fc]}}))})),n)}return h.default(t,[{key:"addRule",value:function(t,e){this.rules[t]=e}},{key:"getRule",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(this.shouldUseIntlApi())try{return new Intl.PluralRules(t,{type:e.ordinal?"ordinal":"cardinal"})}catch(t){return}return this.rules[t]||this.rules[this.languageUtils.getLanguagePartFromCode(t)]}},{key:"needsPlural",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.getRule(t,e);return this.shouldUseIntlApi()?n&&n.resolvedOptions().pluralCategories.length>1:n&&n.numbers.length>1}},{key:"getPluralFormsOfKey",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.getSuffixes(t,n).map((function(t){return"".concat(e).concat(t)}))}},{key:"getSuffixes",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=this.getRule(t,n);return o?this.shouldUseIntlApi()?o.resolvedOptions().pluralCategories.sort((function(t,e){return tt[t]-tt[e]})).map((function(t){return"".concat(e.options.prepend).concat(t)})):o.numbers.map((function(o){return e.getSuffix(t,o,n)})):[]}},{key:"getSuffix",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=this.getRule(t,n);return o?this.shouldUseIntlApi()?"".concat(this.options.prepend).concat(o.select(e)):this.getSuffixRetroCompatible(o,e):(this.logger.warn("no plural rule found for: ".concat(t)),"")}},{key:"getSuffixRetroCompatible",value:function(t,e){var n=this,o=t.noAbs?t.plurals(e):t.plurals(Math.abs(e)),r=t.numbers[o];this.options.simplifyPluralSuffix&&2===t.numbers.length&&1===t.numbers[0]&&(2===r?r="plural":1===r&&(r=""));var i=function(){return n.options.prepend&&r.toString()?n.options.prepend+r.toString():r.toString()};return"v1"===this.options.compatibilityJSON?1===r?"":"number"==typeof r?"_plural_".concat(r.toString()):i():"v2"===this.options.compatibilityJSON||this.options.simplifyPluralSuffix&&2===t.numbers.length&&1===t.numbers[0]?i():this.options.prepend&&o.toString()?this.options.prepend+o.toString():o.toString()}},{key:"shouldUseIntlApi",value:function(){return!Z.includes(this.options.compatibilityJSON)}}]),t}();function nt(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,o)}return n}function ot(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};f.default(this,t),this.logger=x.create("interpolator"),this.options=e,this.format=e.interpolation&&e.interpolation.format||function(t){return t},this.init(e)}return h.default(t,[{key:"init",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t.interpolation||(t.interpolation={escapeValue:!0});var e=t.interpolation;this.escape=void 0!==e.escape?e.escape:D,this.escapeValue=void 0===e.escapeValue||e.escapeValue,this.useRawValueToEscape=void 0!==e.useRawValueToEscape&&e.useRawValueToEscape,this.prefix=e.prefix?F(e.prefix):e.prefixEscaped||"{{",this.suffix=e.suffix?F(e.suffix):e.suffixEscaped||"}}",this.formatSeparator=e.formatSeparator?e.formatSeparator:e.formatSeparator||",",this.unescapePrefix=e.unescapeSuffix?"":e.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":e.unescapeSuffix||"",this.nestingPrefix=e.nestingPrefix?F(e.nestingPrefix):e.nestingPrefixEscaped||F("$t("),this.nestingSuffix=e.nestingSuffix?F(e.nestingSuffix):e.nestingSuffixEscaped||F(")"),this.nestingOptionsSeparator=e.nestingOptionsSeparator?e.nestingOptionsSeparator:e.nestingOptionsSeparator||",",this.maxReplaces=e.maxReplaces?e.maxReplaces:1e3,this.alwaysFormat=void 0!==e.alwaysFormat&&e.alwaysFormat,this.resetRegExp()}},{key:"reset",value:function(){this.options&&this.init(this.options)}},{key:"resetRegExp",value:function(){var t="".concat(this.prefix,"(.+?)").concat(this.suffix);this.regexp=new RegExp(t,"g");var e="".concat(this.prefix).concat(this.unescapePrefix,"(.+?)").concat(this.unescapeSuffix).concat(this.suffix);this.regexpUnescape=new RegExp(e,"g");var n="".concat(this.nestingPrefix,"(.+?)").concat(this.nestingSuffix);this.nestingRegexp=new RegExp(n,"g")}},{key:"interpolate",value:function(t,e,n,o){var r,i,a,s=this,u=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{};function l(t){return t.replace(/\$/g,"$$$$")}var c=function(t){if(t.indexOf(s.formatSeparator)<0){var r=j(e,u,t);return s.alwaysFormat?s.format(r,void 0,n,ot(ot(ot({},o),e),{},{interpolationkey:t})):r}var i=t.split(s.formatSeparator),a=i.shift().trim(),l=i.join(s.formatSeparator).trim();return s.format(j(e,u,a),l,n,ot(ot(ot({},o),e),{},{interpolationkey:a}))};this.resetRegExp();var d=o&&o.missingInterpolationHandler||this.options.missingInterpolationHandler,p=o&&o.interpolation&&void 0!==o.interpolation.skipOnVariables?o.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:function(t){return l(t)}},{regex:this.regexp,safeValue:function(t){return s.escapeValue?l(s.escape(t)):l(t)}}].forEach((function(e){for(a=0;r=e.regex.exec(t);){var n=r[1].trim();if(void 0===(i=c(n)))if("function"==typeof d){var u=d(t,r,o);i="string"==typeof u?u:""}else if(o&&o.hasOwnProperty(n))i="";else{if(p){i=r[0];continue}s.logger.warn("missed to pass in variable ".concat(n," for interpolating ").concat(t)),i=""}else"string"==typeof i||s.useRawValueToEscape||(i=P(i));var l=e.safeValue(i);if(t=t.replace(r[0],l),p?(e.regex.lastIndex+=i.length,e.regex.lastIndex-=r[0].length):e.regex.lastIndex=0,++a>=s.maxReplaces)break}})),t}},{key:"nest",value:function(t,e){var n,o,r=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=ot({},i);function s(t,e){var n=this.nestingOptionsSeparator;if(t.indexOf(n)<0)return t;var o=t.split(new RegExp("".concat(n,"[ ]*{"))),r="{".concat(o[1]);t=o[0];var i=(r=this.interpolate(r,a)).match(/'/g),s=r.match(/"/g);(i&&i.length%2==0&&!s||s.length%2!=0)&&(r=r.replace(/'/g,'"'));try{a=JSON.parse(r),e&&(a=ot(ot({},e),a))}catch(e){return this.logger.warn("failed parsing options string in nesting for key ".concat(t),e),"".concat(t).concat(n).concat(r)}return delete a.defaultValue,t}for(a.applyPostProcessor=!1,delete a.defaultValue;n=this.nestingRegexp.exec(t);){var u=[],l=!1;if(-1!==n[0].indexOf(this.formatSeparator)&&!/{.*}/.test(n[1])){var c=n[1].split(this.formatSeparator).map((function(t){return t.trim()}));n[1]=c.shift(),u=c,l=!0}if((o=e(s.call(this,n[1].trim(),a),a))&&n[0]===t&&"string"!=typeof o)return o;"string"!=typeof o&&(o=P(o)),o||(this.logger.warn("missed to resolve ".concat(n[1]," for nesting ").concat(t)),o=""),l&&(o=u.reduce((function(t,e){return r.format(t,e,i.lng,ot(ot({},i),{},{interpolationkey:n[1].trim()}))}),o.trim())),t=t.replace(n[0],o),this.regexp.lastIndex=0}return t}}]),t}();function it(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,o)}return n}function at(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};f.default(this,t),this.logger=x.create("formatter"),this.options=e,this.formats={number:st((function(t,e){var n=new Intl.NumberFormat(t,e);return function(t){return n.format(t)}})),currency:st((function(t,e){var n=new Intl.NumberFormat(t,at(at({},e),{},{style:"currency"}));return function(t){return n.format(t)}})),datetime:st((function(t,e){var n=new Intl.DateTimeFormat(t,at({},e));return function(t){return n.format(t)}})),relativetime:st((function(t,e){var n=new Intl.RelativeTimeFormat(t,at({},e));return function(t){return n.format(t,e.range||"day")}})),list:st((function(t,e){var n=new Intl.ListFormat(t,at({},e));return function(t){return n.format(t)}}))},this.init(e)}return h.default(t,[{key:"init",value:function(t){var e=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}}).interpolation;this.formatSeparator=e.formatSeparator?e.formatSeparator:e.formatSeparator||","}},{key:"add",value:function(t,e){this.formats[t.toLowerCase().trim()]=e}},{key:"addCached",value:function(t,e){this.formats[t.toLowerCase().trim()]=st(e)}},{key:"format",value:function(t,e,n,o){var r=this;return e.split(this.formatSeparator).reduce((function(t,e){var i=function(t){var e=t.toLowerCase().trim(),n={};if(t.indexOf("(")>-1){var o=t.split("(");e=o[0].toLowerCase().trim();var r=o[1].substring(0,o[1].length-1);"currency"===e&&r.indexOf(":")<0?n.currency||(n.currency=r.trim()):"relativetime"===e&&r.indexOf(":")<0?n.range||(n.range=r.trim()):r.split(";").forEach((function(t){if(t){var e=t.split(":"),o=_.default(e),r=o[0],i=o.slice(1).join(":").trim().replace(/^'+|'+$/g,"");n[r.trim()]||(n[r.trim()]=i),"false"===i&&(n[r.trim()]=!1),"true"===i&&(n[r.trim()]=!0),isNaN(i)||(n[r.trim()]=parseInt(i,10))}}))}return{formatName:e,formatOptions:n}}(e),a=i.formatName,s=i.formatOptions;if(r.formats[a]){var u=t;try{var l=o&&o.formatParams&&o.formatParams[o.interpolationkey]||{},c=l.locale||l.lng||o.locale||o.lng||n;u=r.formats[a](t,c,at(at(at({},s),o),l))}catch(t){r.logger.warn(t)}return u}return r.logger.warn("there was no format function for ".concat(a)),t}),t)}}]),t}();function lt(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,o)}return n}function ct(t){for(var e=1;e3&&void 0!==arguments[3]?arguments[3]:{};return f.default(this,r),i=o.call(this),T&&M.call(m.default(i)),i.backend=t,i.store=e,i.services=n,i.languageUtils=n.languageUtils,i.options=a,i.logger=x.create("backendConnector"),i.waitingReads=[],i.maxParallelReads=a.maxParallelReads||10,i.readingCalls=0,i.maxRetries=a.maxRetries>=0?a.maxRetries:5,i.retryTimeout=a.retryTimeout>=1?a.retryTimeout:350,i.state={},i.queue=[],i.backend&&i.backend.init&&i.backend.init(n,a.backend,a),i}return h.default(r,[{key:"queueLoad",value:function(t,e,n,o){var r=this,i={},a={},s={},u={};return t.forEach((function(t){var o=!0;e.forEach((function(e){var s="".concat(t,"|").concat(e);!n.reload&&r.store.hasResourceBundle(t,e)?r.state[s]=2:r.state[s]<0||(1===r.state[s]?void 0===a[s]&&(a[s]=!0):(r.state[s]=1,o=!1,void 0===a[s]&&(a[s]=!0),void 0===i[s]&&(i[s]=!0),void 0===u[e]&&(u[e]=!0)))})),o||(s[t]=!0)})),(Object.keys(i).length||Object.keys(a).length)&&this.queue.push({pending:a,pendingCount:Object.keys(a).length,loaded:{},errors:[],callback:o}),{toLoad:Object.keys(i),pending:Object.keys(a),toLoadLanguages:Object.keys(s),toLoadNamespaces:Object.keys(u)}}},{key:"loaded",value:function(t,e,n){var o=t.split("|"),r=o[0],i=o[1];e&&this.emit("failedLoading",r,i,e),n&&this.store.addResourceBundle(r,i,n),this.state[t]=e?-1:2;var a={};this.queue.forEach((function(n){var o,s,u,l,c;o=n.loaded,s=i,(l=(u=C(o,[r],Object)).obj)[c=u.k]=l[c]||[],l[c].push(s),function(t,e){void 0!==t.pending[e]&&(delete t.pending[e],t.pendingCount--)}(n,t),e&&n.errors.push(e),0!==n.pendingCount||n.done||(Object.keys(n.loaded).forEach((function(t){a[t]||(a[t]={});var e=n.loaded[t];e.length&&e.forEach((function(e){void 0===a[t][e]&&(a[t][e]=!0)}))})),n.done=!0,n.errors.length?n.callback(n.errors):n.callback())})),this.emit("loaded",a),this.queue=this.queue.filter((function(t){return!t.done}))}},{key:"read",value:function(t,e,n){var o=this,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:this.retryTimeout,a=arguments.length>5?arguments[5]:void 0;return t.length?this.readingCalls>=this.maxParallelReads?void this.waitingReads.push({lng:t,ns:e,fcName:n,tried:r,wait:i,callback:a}):(this.readingCalls++,this.backend[n](t,e,(function(s,u){if(o.readingCalls--,o.waitingReads.length>0){var l=o.waitingReads.shift();o.read(l.lng,l.ns,l.fcName,l.tried,l.wait,l.callback)}s&&u&&r2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),r&&r();"string"==typeof t&&(t=this.languageUtils.toResolveHierarchy(t)),"string"==typeof e&&(e=[e]);var i=this.queueLoad(t,e,o,r);if(!i.toLoad.length)return i.pending.length||r(),null;i.toLoad.forEach((function(t){n.loadOne(t)}))}},{key:"load",value:function(t,e,n){this.prepareLoading(t,e,{},n)}},{key:"reload",value:function(t,e,n){this.prepareLoading(t,e,{reload:!0},n)}},{key:"loadOne",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",o=t.split("|"),r=o[0],i=o[1];this.read(r,i,"read",void 0,void 0,(function(o,a){o&&e.logger.warn("".concat(n,"loading namespace ").concat(i," for language ").concat(r," failed"),o),!o&&a&&e.logger.log("".concat(n,"loaded namespace ").concat(i," for language ").concat(r),a),e.loaded(t,o,a)}))}},{key:"saveMissing",value:function(t,e,n,o,r){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(e)?this.logger.warn('did not save key "'.concat(n,'" as the namespace "').concat(e,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!"):null!=n&&""!==n&&(this.backend&&this.backend.create&&this.backend.create(t,e,n,o,null,ct(ct({},i),{},{isUpdate:r})),t&&t[0]&&this.store.addResource(t[0],e,n,o))}}]),r}(M);function pt(t){return"string"==typeof t.ns&&(t.ns=[t.ns]),"string"==typeof t.fallbackLng&&(t.fallbackLng=[t.fallbackLng]),"string"==typeof t.fallbackNS&&(t.fallbackNS=[t.fallbackNS]),t.supportedLngs&&t.supportedLngs.indexOf("cimode")<0&&(t.supportedLngs=t.supportedLngs.concat(["cimode"])),t}function gt(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,o)}return n}function ft(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0;if(f.default(this,r),t=o.call(this),T&&M.call(m.default(t)),t.options=pt(n),t.services={},t.logger=x,t.modules={external:[]},e=m.default(t),Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach((function(t){"function"==typeof e[t]&&(e[t]=e[t].bind(e))})),i&&!t.isInitialized&&!n.isClone){if(!t.options.initImmediate)return t.init(n,i),b.default(t,m.default(t));setTimeout((function(){t.init(n,i)}),0)}return t}return h.default(r,[{key:"init",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;"function"==typeof e&&(n=e,e={}),!e.defaultNS&&!1!==e.defaultNS&&e.ns&&("string"==typeof e.ns?e.defaultNS=e.ns:e.ns.indexOf("translation")<0&&(e.defaultNS=e.ns[0]));var o={debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!0,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:function(t){var e={};if("object"===g.default(t[1])&&(e=t[1]),"string"==typeof t[1]&&(e.defaultValue=t[1]),"string"==typeof t[2]&&(e.tDescription=t[2]),"object"===g.default(t[2])||"object"===g.default(t[3])){var n=t[3]||t[2];Object.keys(n).forEach((function(t){e[t]=n[t]}))}return e},interpolation:{escapeValue:!0,format:function(t,e,n,o){return t},prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}};function r(t){return t?"function"==typeof t?new t:t:null}if(this.options=ft(ft(ft({},o),this.options),pt(e)),"v1"!==this.options.compatibilityAPI&&(this.options.interpolation=ft(ft({},o.interpolation),this.options.interpolation)),void 0!==e.keySeparator&&(this.options.userDefinedKeySeparator=e.keySeparator),void 0!==e.nsSeparator&&(this.options.userDefinedNsSeparator=e.nsSeparator),!this.options.isClone){var i;this.modules.logger?x.init(r(this.modules.logger),this.options):x.init(null,this.options),this.modules.formatter?i=this.modules.formatter:"undefined"!=typeof Intl&&(i=ut);var a=new Y(this.options);this.store=new $(this.options.resources,this.options);var s=this.services;s.logger=x,s.resourceStore=this.store,s.languageUtils=a,s.pluralResolver=new et(a,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),!i||this.options.interpolation.format&&this.options.interpolation.format!==o.interpolation.format||(s.formatter=r(i),s.formatter.init(s,this.options),this.options.interpolation.format=s.formatter.format.bind(s.formatter)),s.interpolator=new rt(this.options),s.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},s.backendConnector=new dt(r(this.modules.backend),s.resourceStore,s,this.options),s.backendConnector.on("*",(function(e){for(var n=arguments.length,o=new Array(n>1?n-1:0),r=1;r1?n-1:0),r=1;r0&&"dev"!==u[0]&&(this.options.lng=u[0])}this.services.languageDetector||this.options.lng||this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach((function(e){t[e]=function(){var n;return(n=t.store)[e].apply(n,arguments)}})),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach((function(e){t[e]=function(){var n;return(n=t.store)[e].apply(n,arguments),t}}));var l=R(),c=function(){var e=function(e,o){t.isInitialized&&!t.initializedStoreOnce&&t.logger.warn("init: i18next is already initialized. You should call init just once!"),t.isInitialized=!0,t.options.isClone||t.logger.log("initialized",t.options),t.emit("initialized",t.options),l.resolve(o),n(e,o)};if(t.languages&&"v1"!==t.options.compatibilityAPI&&!t.isInitialized)return e(null,t.t.bind(t));t.changeLanguage(t.options.lng,e)};return this.options.resources||!this.options.initImmediate?c():setTimeout(c,0),l}},{key:"loadResources",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ht,o="string"==typeof t?t:this.language;if("function"==typeof t&&(n=t),!this.options.resources||this.options.partialBundledLanguages){if(o&&"cimode"===o.toLowerCase())return n();var r=[],i=function(t){t&&e.services.languageUtils.toResolveHierarchy(t).forEach((function(t){r.indexOf(t)<0&&r.push(t)}))};o?i(o):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach((function(t){return i(t)})),this.options.preload&&this.options.preload.forEach((function(t){return i(t)})),this.services.backendConnector.load(r,this.options.ns,(function(t){t||e.resolvedLanguage||!e.language||e.setResolvedLanguage(e.language),n(t)}))}else n(null)}},{key:"reloadResources",value:function(t,e,n){var o=R();return t||(t=this.languages),e||(e=this.options.ns),n||(n=ht),this.services.backendConnector.reload(t,e,(function(t){o.resolve(),n(t)})),o}},{key:"use",value:function(t){if(!t)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!t.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return"backend"===t.type&&(this.modules.backend=t),("logger"===t.type||t.log&&t.warn&&t.error)&&(this.modules.logger=t),"languageDetector"===t.type&&(this.modules.languageDetector=t),"i18nFormat"===t.type&&(this.modules.i18nFormat=t),"postProcessor"===t.type&&W.addPostProcessor(t),"formatter"===t.type&&(this.modules.formatter=t),"3rdParty"===t.type&&this.modules.external.push(t),this}},{key:"setResolvedLanguage",value:function(t){if(t&&this.languages&&!(["cimode","dev"].indexOf(t)>-1))for(var e=0;e-1)&&this.store.hasLanguageSomeTranslations(n)){this.resolvedLanguage=n;break}}}},{key:"changeLanguage",value:function(t,e){var n=this;this.isLanguageChangingTo=t;var o=R();this.emit("languageChanging",t);var r=function(t){n.language=t,n.languages=n.services.languageUtils.toResolveHierarchy(t),n.resolvedLanguage=void 0,n.setResolvedLanguage(t)},i=function(i){t||i||!n.services.languageDetector||(i=[]);var a="string"==typeof i?i:n.services.languageUtils.getBestMatchFromCodes(i);a&&(n.language||r(a),n.translator.language||n.translator.changeLanguage(a),n.services.languageDetector&&n.services.languageDetector.cacheUserLanguage(a)),n.loadResources(a,(function(t){!function(t,i){i?(r(i),n.translator.changeLanguage(i),n.isLanguageChangingTo=void 0,n.emit("languageChanged",i),n.logger.log("languageChanged",i)):n.isLanguageChangingTo=void 0,o.resolve((function(){return n.t.apply(n,arguments)})),e&&e(t,(function(){return n.t.apply(n,arguments)}))}(t,a)}))};return t||!this.services.languageDetector||this.services.languageDetector.async?!t&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect(i):i(t):i(this.services.languageDetector.detect()),o}},{key:"getFixedT",value:function(t,e,n){var o=this,r=function t(e,r){var i;if("object"!==g.default(r)){for(var a=arguments.length,s=new Array(a>2?a-2:0),u=2;u1&&void 0!==arguments[1]?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;var o=this.resolvedLanguage||this.languages[0],r=!!this.options&&this.options.fallbackLng,i=this.languages[this.languages.length-1];if("cimode"===o.toLowerCase())return!0;var a=function(t,n){var o=e.services.backendConnector.state["".concat(t,"|").concat(n)];return-1===o||2===o};if(n.precheck){var s=n.precheck(this,a);if(void 0!==s)return s}return!(!this.hasResourceBundle(o,t)&&this.services.backendConnector.backend&&(!this.options.resources||this.options.partialBundledLanguages)&&(!a(o,t)||r&&!a(i,t)))}},{key:"loadNamespaces",value:function(t,e){var n=this,o=R();return this.options.ns?("string"==typeof t&&(t=[t]),t.forEach((function(t){n.options.ns.indexOf(t)<0&&n.options.ns.push(t)})),this.loadResources((function(t){o.resolve(),e&&e(t)})),o):(e&&e(),Promise.resolve())}},{key:"loadLanguages",value:function(t,e){var n=R();"string"==typeof t&&(t=[t]);var o=this.options.preload||[],r=t.filter((function(t){return o.indexOf(t)<0}));return r.length?(this.options.preload=o.concat(r),this.loadResources((function(t){n.resolve(),e&&e(t)})),n):(e&&e(),Promise.resolve())}},{key:"dir",value:function(t){return t||(t=this.resolvedLanguage||(this.languages&&this.languages.length>0?this.languages[0]:this.language)),t?["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"].indexOf(this.services.languageUtils.getLanguagePartFromCode(t))>-1||t.toLowerCase().indexOf("-arab")>1?"rtl":"ltr":"rtl"}},{key:"cloneInstance",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ht,o=ft(ft(ft({},this.options),e),{isClone:!0}),i=new r(o);return void 0===e.debug&&void 0===e.prefix||(i.logger=i.logger.clone(e)),["store","services","language"].forEach((function(e){i[e]=t[e]})),i.services=ft({},this.services),i.services.utils={hasLoadedNamespace:i.hasLoadedNamespace.bind(i)},i.translator=new K(i.services,i.options),i.translator.on("*",(function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),o=1;o0&&void 0!==arguments[0]?arguments[0]:{},arguments.length>1?arguments[1]:void 0)}));var vt=mt.createInstance();vt.createInstance=mt.createInstance,t.exports=vt},7429:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"NIL",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(e,"parse",{enumerable:!0,get:function(){return d.default}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(e,"v1",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(e,"v3",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(e,"v4",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(e,"v5",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(e,"validate",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(e,"version",{enumerable:!0,get:function(){return u.default}});var o=p(n(3990)),r=p(n(8237)),i=p(n(5355)),a=p(n(3764)),s=p(n(6314)),u=p(n(8464)),l=p(n(6435)),c=p(n(4008)),d=p(n(8222));function p(t){return t&&t.__esModule?t:{default:t}}},4163:function(t,e){"use strict";function n(t){return 14+(t+64>>>9<<4)+1}function o(t,e){const n=(65535&t)+(65535&e);return(t>>16)+(e>>16)+(n>>16)<<16|65535&n}function r(t,e,n,r,i,a){return o((s=o(o(e,t),o(r,a)))<<(u=i)|s>>>32-u,n);var s,u}function i(t,e,n,o,i,a,s){return r(e&n|~e&o,t,e,i,a,s)}function a(t,e,n,o,i,a,s){return r(e&o|n&~o,t,e,i,a,s)}function s(t,e,n,o,i,a,s){return r(e^n^o,t,e,i,a,s)}function u(t,e,n,o,i,a,s){return r(n^(e|~o),t,e,i,a,s)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;e.default=function(t){if("string"==typeof t){const e=unescape(encodeURIComponent(t));t=new Uint8Array(e.length);for(let n=0;n>5]>>>r%32&255,i=parseInt(o.charAt(n>>>4&15)+o.charAt(15&n),16);e.push(i)}return e}(function(t,e){t[e>>5]|=128<>5]|=(255&t[n/8])<>>24,n[1]=e>>>16&255,n[2]=e>>>8&255,n[3]=255&e,n[4]=(e=parseInt(t.slice(9,13),16))>>>8,n[5]=255&e,n[6]=(e=parseInt(t.slice(14,18),16))>>>8,n[7]=255&e,n[8]=(e=parseInt(t.slice(19,23),16))>>>8,n[9]=255&e,n[10]=(e=parseInt(t.slice(24,36),16))/1099511627776&255,n[11]=e/4294967296&255,n[12]=e>>>24&255,n[13]=e>>>16&255,n[14]=e>>>8&255,n[15]=255&e,n}},58:function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,e.default=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i},3319:function(t,e){"use strict";let n;Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){if(!n&&(n="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!n))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return n(o)};const o=new Uint8Array(16)},3757:function(t,e){"use strict";function n(t,e,n,o){switch(t){case 0:return e&n^~e&o;case 1:case 3:return e^n^o;case 2:return e&n^e&o^n&o}}function o(t,e){return t<>>32-e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;e.default=function(t){const e=[1518500249,1859775393,2400959708,3395469782],r=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"==typeof t){const e=unescape(encodeURIComponent(t));t=[];for(let n=0;n>>0;d=c,c=l,l=o(u,30)>>>0,u=a,a=s}r[0]=r[0]+a>>>0,r[1]=r[1]+u>>>0,r[2]=r[2]+l>>>0,r[3]=r[3]+c>>>0,r[4]=r[4]+d>>>0}return[r[0]>>24&255,r[0]>>16&255,r[0]>>8&255,255&r[0],r[1]>>24&255,r[1]>>16&255,r[1]>>8&255,255&r[1],r[2]>>24&255,r[2]>>16&255,r[2]>>8&255,255&r[2],r[3]>>24&255,r[3]>>16&255,r[3]>>8&255,255&r[3],r[4]>>24&255,r[4]>>16&255,r[4]>>8&255,255&r[4]]}},4008:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,e.unsafeStringify=a;var o,r=(o=n(6435))&&o.__esModule?o:{default:o};const i=[];for(let t=0;t<256;++t)i.push((t+256).toString(16).slice(1));function a(t,e=0){return(i[t[e+0]]+i[t[e+1]]+i[t[e+2]]+i[t[e+3]]+"-"+i[t[e+4]]+i[t[e+5]]+"-"+i[t[e+6]]+i[t[e+7]]+"-"+i[t[e+8]]+i[t[e+9]]+"-"+i[t[e+10]]+i[t[e+11]]+i[t[e+12]]+i[t[e+13]]+i[t[e+14]]+i[t[e+15]]).toLowerCase()}e.default=function(t,e=0){const n=a(t,e);if(!(0,r.default)(n))throw TypeError("Stringified UUID is invalid");return n}},3990:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o,r=(o=n(3319))&&o.__esModule?o:{default:o},i=n(4008);let a,s,u=0,l=0;e.default=function(t,e,n){let o=e&&n||0;const c=e||new Array(16);let d=(t=t||{}).node||a,p=void 0!==t.clockseq?t.clockseq:s;if(null==d||null==p){const e=t.random||(t.rng||r.default)();null==d&&(d=a=[1|e[0],e[1],e[2],e[3],e[4],e[5]]),null==p&&(p=s=16383&(e[6]<<8|e[7]))}let g=void 0!==t.msecs?t.msecs:Date.now(),f=void 0!==t.nsecs?t.nsecs:l+1;const h=g-u+(f-l)/1e4;if(h<0&&void 0===t.clockseq&&(p=p+1&16383),(h<0||g>u)&&void 0===t.nsecs&&(f=0),f>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");u=g,l=f,s=p,g+=122192928e5;const m=(1e4*(268435455&g)+f)%4294967296;c[o++]=m>>>24&255,c[o++]=m>>>16&255,c[o++]=m>>>8&255,c[o++]=255&m;const v=g/4294967296*1e4&268435455;c[o++]=v>>>8&255,c[o++]=255&v,c[o++]=v>>>24&15|16,c[o++]=v>>>16&255,c[o++]=p>>>8|128,c[o++]=255&p;for(let t=0;t<6;++t)c[o+t]=d[t];return e||(0,i.unsafeStringify)(c)}},8237:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=i(n(7925)),r=i(n(4163));function i(t){return t&&t.__esModule?t:{default:t}}var a=(0,o.default)("v3",48,r.default);e.default=a},7925:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.URL=e.DNS=void 0,e.default=function(t,e,n){function o(t,o,a,s){var u;if("string"==typeof t&&(t=function(t){t=unescape(encodeURIComponent(t));const e=[];for(let n=0;nt.length)&&(e=t.length);for(var n=0,o=new Array(e);n!t.classList.contains("base-input"))).forEach((t=>t.remove()))}function l(e,n,r=!1,i=!0){var a,s;const u=null!==(a=new URLSearchParams(window.location.search).get("id"))&&void 0!==a?a:0,l=JSON.parse(null!==(s=localStorage.getItem("brackets"))&&void 0!==s?s:"{}")[u];f(e,"text",n.html_name_id,(0,t.t)("form-creator.stage-name-label"),(0,t.t)("form-creator.stage-name-placeholder"),r?l.stage[0].name:void 0,void 0,1,"base-input"),i&&g(e,n.html_team_names_input_id,(0,t.t)("form-creator.team-label"),(0,t.t)("form-creator.team-label-placeholder"),void 0,"base-input"),f(e,"number",n.html_team_count_input_id,i?(0,t.t)("form-creator.team-count"):"Team count",(0,t.t)("form-creator.team-count-placeholder"),r?l.participant.length.toString():"","1",void 0,"base-input"),h(e,n.html_stage_type_selector_id,(0,t.t)("form-creator.stage-selector-label"),o,r?l.stage[0].type:void 0,"base-input")}function c(e,n,o,u,l){switch(n){case"round_robin":f(o,"number",e.html_group_id,(0,t.t)("form-creator.group-label"),(0,t.t)("form-creator.group-placeholder"),e.group_default_size.toString(),"1"),h(o,e.html_seed_order_id,(0,t.t)("form-creator.seed-order-label"),i),h(o,e.html_round_robin_mode_id,(0,t.t)("form-creator.round-robin-mode-label"),r);break;case"single_elimination":h(o,e.html_seed_order_id,(0,t.t)("form-creator.seed-order-label"),a),f(o,"checkbox",e.html_consolation_final_checkbox_id,(0,t.t)("form-creator.consolation-final-label"));break;case"double_elimination":f(o,"checkbox",e.html_consolation_final_checkbox_id,(0,t.t)("form-creator.consolation-final-label")),f(o,"checkbox",e.html_skip_first_round_checkbox_id,(0,t.t)("form-creator.skip-first-round-label")),h(o,e.html_grand_final_type_id,(0,t.t)("form-creator.grand-final-type-label"),s),g(o,e.html_double_elimination_seed_textarea_id,(0,t.t)("form-creator.seed-order-label"),(0,t.t)("form-creator.double-elimination-seed-order-placeholder"),"natural");break;default:throw new DOMException(`stage ${n} seems to be not implemented yet.`)}const c=document.createElement("div"),p=document.createElement("button");p.innerText=l||(0,t.t)("form-creator.submit"),p.type="submit",c.appendChild(p),p.onclick=()=>{d(e,n,u)},o.appendChild(c)}function d(t,n,o){var r,u,l,c,d,g,f,h,m,v;let b,y;switch(n){case"round_robin":try{!function(t){p(t);if(parseInt(document.getElementById(t.html_group_id).value)<=0)throw new DOMException("group_amount must be equal or bigger than 1");const e=document.getElementById(t.html_seed_order_id).value;if(!i.includes(e))throw new DOMException("seed_ordering must be one of "+i.toString());const n=document.getElementById(t.html_round_robin_mode_id).value;if(!n.includes(n))throw new DOMException("round_robin_mode must be one of "+n.toString())}(t)}catch(t){return void alert(t.message)}const o={seedOrdering:[null!==(r=document.getElementById(t.html_seed_order_id).value)&&void 0!==r?r:"groups.effort_balanced"],roundRobinMode:null!==(u=document.getElementById(t.html_round_robin_mode_id).value)&&void 0!==u?u:"simple",groupCount:parseInt(null!==(l=document.getElementById(t.html_group_id).value)&&void 0!==l?l:"0")};if(b={name:null!==(c=document.getElementById(t.html_name_id).value)&&void 0!==c?c:"",settings:o,tournamentId:0,type:n},y=null===(d=document.getElementById(t.html_team_names_input_id))||void 0===d?void 0:d.value,y)b.seeding=y.split(",");else{const n=parseInt(document.getElementById(t.html_team_count_input_id).value);b.seeding=Array.from({length:n}).map(((t,e)=>`Team ${e+1}`)),o.size=e.helpers.getNearestPowerOfTwo(n)}break;case"single_elimination":!function(t){p(t);const e=document.getElementById(t.html_seed_order_id).value;if(!e||!a.includes(e))throw new DOMException("seed_ordering must be one of: "+a.toString())}(t);const w={seedOrdering:[null!==(g=document.getElementById(t.html_seed_order_id).value)&&void 0!==g?g:"natural"],consolationFinal:document.getElementById(t.html_consolation_final_checkbox_id).checked};if(b={name:null!==(f=document.getElementById(t.html_name_id).value)&&void 0!==f?f:"",settings:w,tournamentId:0,type:n},y=null===(h=document.getElementById(t.html_team_names_input_id))||void 0===h?void 0:h.value,y)b.seeding=y.split(",");else{const n=parseInt(document.getElementById(t.html_team_count_input_id).value);b.seeding=Array.from({length:n}).map(((t,e)=>`Team ${e+1}`)),w.size=e.helpers.getNearestPowerOfTwo(n)}break;case"double_elimination":!function(t){p(t);const e=document.getElementById(t.html_grand_final_type_id).value;if(!e||!s.includes(e))throw new DOMException("grand_final_type must be one of: "+s.toString());document.getElementById(t.html_double_elimination_seed_textarea_id).value.split(",").forEach((t=>{const e=t.trim();if(!a.includes(e))throw new DOMException("elimination seed_ordering wrong found: "+e+"must be one of: "+a.toString())}))}(t);const _={seedOrdering:document.getElementById(t.html_double_elimination_seed_textarea_id).value.split(",").map((t=>t.trim())),consolationFinal:document.getElementById(t.html_consolation_final_checkbox_id).checked,skipFirstRound:document.getElementById(t.html_skip_first_round_checkbox_id).checked,grandFinal:document.getElementById(t.html_grand_final_type_id).value};if(b={name:null!==(m=document.getElementById(t.html_name_id).value)&&void 0!==m?m:"",settings:_,tournamentId:0,type:n},y=null===(v=document.getElementById(t.html_team_names_input_id))||void 0===v?void 0:v.value,y)b.seeding=y.split(",");else{const n=parseInt(document.getElementById(t.html_team_count_input_id).value);b.seeding=Array.from({length:n}).map(((t,e)=>`Team ${e+1}`)),_.size=e.helpers.getNearestPowerOfTwo(n)}break;default:throw new DOMException(`stage ${n} seems to be not implemented yet.`)}o(b)}function p(t){var e;const n=document.getElementById(t.html_name_id).value;if(!n||""===n)throw new DOMException("No name provided.");const r=null===(e=document.getElementById(t.html_team_names_input_id))||void 0===e?void 0:e.value;if(((r?r.split(","):[]).length||parseInt(document.getElementById(t.html_team_count_input_id).value))<2)throw new DOMException("Invalid team amount provided.");const i=document.getElementById(t.html_stage_type_selector_id).value;if(!i&&o.includes(i))throw new DOMException("Invalid stage.")}function g(t,e,n,o,r,i){const a=document.createElement("div"),s=document.createElement("label");s.setAttribute("for",e),s.innerText=n;const u=document.createElement("textarea");u.placeholder=o,u.id=e,null!=r&&(u.value=r),i&&a.classList.add(i),a.appendChild(s),a.appendChild(u),t.appendChild(a)}function f(t,e,n,o,r,i,a,s,u){const l=document.createElement("div"),c=document.createElement("label");c.setAttribute("for",n),c.innerText=o;const d=document.createElement("input");d.type=e,d.id=n,null!=r&&(d.placeholder=r),null!=i&&(d.value=i),null!=a&&(d.min=a),null!=s&&(d.minLength=s),u&&l.classList.add(u),l.appendChild(c),l.appendChild(d),t.appendChild(l)}function h(t,e,n,o,r,i){const a=document.createElement("div"),s=document.createElement("label");s.setAttribute("for",e),s.innerText=n;const u=document.createElement("select");u.id=e,function(t,e,n){e.forEach((e=>{const o=document.createElement("option");o.innerText=e,e===n&&(o.selected=!0),t.appendChild(o)}))}(u,o,r),i&&a.classList.add(i),a.appendChild(s),a.appendChild(u),t.appendChild(a)}window.stageFormCreator=function(t,e){const n=document.getElementById(t.parent_id);if(null===n)throw new DOMException("parent with ID: "+t.parent_id+" was not found!");l(n,t);const o=document.getElementById(t.html_stage_type_selector_id);if(null===o)throw new DOMException("somehow we could not create a select!");o.onchange=()=>{let r;switch(u(n),o.value){case"round_robin":r="round_robin";break;case"double_elimination":r="double_elimination";break;case"single_elimination":r="single_elimination";break;default:throw new DOMException("stage "+o.value+" seems to be not implemented yet.")}c(t,r,n,e)},c(t,"single_elimination",n,e)},window.updateFormCreator=function(t,e){var n,o;const r=null!==(n=new URLSearchParams(window.location.search).get("id"))&&void 0!==n?n:0,i=JSON.parse(null!==(o=localStorage.getItem("brackets"))&&void 0!==o?o:"{}")[r],a=document.getElementById(t.parent_id);if(null===a)throw new DOMException("parent with ID: "+t.parent_id+" was not found!");l(a,t,!0,!1);const s=document.getElementById(t.html_stage_type_selector_id);if(null===s)throw new DOMException("somehow we could not create a select!");s.onchange=()=>{u(a);const n=s.value||"single_elimination";c(t,n,a,e,"Edit")},document.getElementById(t.html_team_count_input_id).oninput=()=>{const n=s.value||"single_elimination";d(t,n,e)},c(t,i.stage[0].type,a,e,"Edit")}}()}();