@ethlete/cdk 4.45.0 → 4.46.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/esm2022/lib/components/bracket/components/new-bracket/bracket-new.mjs +782 -0
- package/esm2022/lib/components/bracket/components/new-bracket/draw-man.mjs +66 -0
- package/esm2022/lib/components/bracket/components/new-bracket/grid-definitions.mjs +47 -0
- package/esm2022/lib/components/bracket/components/new-bracket/grid-placements.mjs +97 -0
- package/esm2022/lib/components/bracket/components/new-bracket/index.mjs +8 -0
- package/esm2022/lib/components/bracket/components/new-bracket/new-bracket-default-match.component.mjs +17 -0
- package/esm2022/lib/components/bracket/components/new-bracket/new-bracket-default-round-header.component.mjs +16 -0
- package/esm2022/lib/components/bracket/components/new-bracket/new-bracket.component.mjs +54 -0
- package/esm2022/lib/components/bracket/public-api/index.mjs +2 -1
- package/fesm2022/ethlete-cdk.mjs +1096 -3
- package/fesm2022/ethlete-cdk.mjs.map +1 -1
- package/lib/components/bracket/components/new-bracket/bracket-new.d.ts +238 -0
- package/lib/components/bracket/components/new-bracket/draw-man.d.ts +12 -0
- package/lib/components/bracket/components/new-bracket/grid-definitions.d.ts +9 -0
- package/lib/components/bracket/components/new-bracket/grid-placements.d.ts +56 -0
- package/lib/components/bracket/components/new-bracket/index.d.ts +7 -0
- package/lib/components/bracket/components/new-bracket/new-bracket-default-match.component.d.ts +8 -0
- package/lib/components/bracket/components/new-bracket/new-bracket-default-round-header.component.d.ts +7 -0
- package/lib/components/bracket/components/new-bracket/new-bracket.component.d.ts +26 -0
- package/lib/components/bracket/public-api/index.d.ts +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
const LINE_WIDTH = 1;
|
|
2
|
+
const path = (d) => `<path d="${d}" stroke="red" fill="none" stroke-width="${LINE_WIDTH}" />`;
|
|
3
|
+
export const drawMan = (items, roundRelations, dimensions) => {
|
|
4
|
+
const { columnWidth, matchHeight, rowGap, columnGap, roundHeaderHeight, gridDefinitions } = dimensions;
|
|
5
|
+
const roundHeaderRowGap = roundHeaderHeight ? rowGap : 0;
|
|
6
|
+
const baseOffsetY = roundHeaderHeight + roundHeaderRowGap;
|
|
7
|
+
const columnGapCenter = columnGap / 2;
|
|
8
|
+
const totalHeight = (gridDefinitions.rowCount - 1) * matchHeight + (gridDefinitions.rowCount - 1) * rowGap + roundHeaderHeight; // TODO: This is not correct in double elimination
|
|
9
|
+
const svgParts = [];
|
|
10
|
+
// a nothing to one draws nothing
|
|
11
|
+
// a one to nothing draws nothing
|
|
12
|
+
// a one to one draws a line
|
|
13
|
+
// a one to two draws a line that splits into in the middle
|
|
14
|
+
// a two to one draws two lines that merge into one in the middle
|
|
15
|
+
// WE ONLY EVER DRAW THE LEFT SIDE (on-to, nothing-to, two-to)
|
|
16
|
+
for (const round of items.values()) {
|
|
17
|
+
const rows = round.roundRelation.currentRound.matchCount;
|
|
18
|
+
const rowGaps = rows - 1;
|
|
19
|
+
const rowHeight = (totalHeight - baseOffsetY) / rows - rowGaps * rowGap;
|
|
20
|
+
const rowWhitespace = (rowHeight - matchHeight) / 2;
|
|
21
|
+
const matchHeightOffset = rowWhitespace + matchHeight / 2; // the vertical middle of a match in this row
|
|
22
|
+
for (const item of round.items.values()) {
|
|
23
|
+
if (item.type === 'round')
|
|
24
|
+
continue; // we don't draw lines for round headers
|
|
25
|
+
switch (item.matchRelation.type) {
|
|
26
|
+
case 'nothing-to-one': {
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
case 'one-to-nothing':
|
|
30
|
+
case 'one-to-one': {
|
|
31
|
+
// draw a straight line
|
|
32
|
+
const previousRound = items.get(item.matchRelation.previousRound.id);
|
|
33
|
+
if (!previousRound)
|
|
34
|
+
throw new Error('Previous round or match is missing');
|
|
35
|
+
const previousMatch = previousRound.items.get(item.matchRelation.previousMatch.id);
|
|
36
|
+
if (!previousMatch || previousMatch.type !== 'match')
|
|
37
|
+
throw new Error('Previous round or match is missing');
|
|
38
|
+
const previousRoundRows = previousRound.roundRelation.currentRound.matchCount;
|
|
39
|
+
const previousRoundRowGaps = previousRoundRows - 1;
|
|
40
|
+
const previousRoundRowHeight = (totalHeight - baseOffsetY) / previousRoundRows - previousRoundRowGaps * rowGap;
|
|
41
|
+
const previousRoundRowWhitespace = (previousRoundRowHeight - matchHeight) / 2;
|
|
42
|
+
const previousRoundMatchHeightOffset = previousRoundRowWhitespace + matchHeight / 2;
|
|
43
|
+
const fromX = previousRound.columnStart * columnWidth + (round.columnStart - 2) * columnGap;
|
|
44
|
+
const toX = (round.columnStart - 1) * columnWidth + (round.columnStart - 1) * columnGap;
|
|
45
|
+
const fromY = previousMatch.matchRelation.currentMatch.indexInRound * previousRoundRowWhitespace +
|
|
46
|
+
previousMatch.matchRelation.currentMatch.indexInRound * rowGap +
|
|
47
|
+
baseOffsetY +
|
|
48
|
+
previousRoundMatchHeightOffset;
|
|
49
|
+
const toY = item.matchRelation.currentMatch.indexInRound * rowWhitespace +
|
|
50
|
+
item.matchRelation.currentMatch.indexInRound * rowGap +
|
|
51
|
+
baseOffsetY +
|
|
52
|
+
matchHeightOffset;
|
|
53
|
+
svgParts.push(path(`M ${fromX} ${fromY} L ${toX} ${toY}`));
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
case 'two-to-nothing':
|
|
57
|
+
case 'two-to-one': {
|
|
58
|
+
// draw two lines that merge into one in the middle
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return svgParts.join(' /n');
|
|
65
|
+
};
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhdy1tYW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvYnJhY2tldC9jb21wb25lbnRzL25ldy1icmFja2V0L2RyYXctbWFuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWFBLE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQztBQUVyQixNQUFNLElBQUksR0FBRyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLDRDQUE0QyxVQUFVLE1BQU0sQ0FBQztBQUV0RyxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsQ0FDckIsS0FBd0UsRUFDeEUsY0FBNkQsRUFDN0QsVUFBNkIsRUFDN0IsRUFBRTtJQUNGLE1BQU0sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLEdBQUcsVUFBVSxDQUFDO0lBQ3ZHLE1BQU0saUJBQWlCLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pELE1BQU0sV0FBVyxHQUFHLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO0lBRTFELE1BQU0sZUFBZSxHQUFHLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDdEMsTUFBTSxXQUFXLEdBQ2YsQ0FBQyxlQUFlLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxHQUFHLFdBQVcsR0FBRyxDQUFDLGVBQWUsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLEdBQUcsTUFBTSxHQUFHLGlCQUFpQixDQUFDLENBQUMsa0RBQWtEO0lBQ2hLLE1BQU0sUUFBUSxHQUFhLEVBQUUsQ0FBQztJQUU5QixpQ0FBaUM7SUFDakMsaUNBQWlDO0lBQ2pDLDRCQUE0QjtJQUM1QiwyREFBMkQ7SUFDM0QsaUVBQWlFO0lBRWpFLDhEQUE4RDtJQUU5RCxLQUFLLE1BQU0sS0FBSyxJ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QkFDckQsV0FBVzt3QkFDWCxpQkFBaUIsQ0FBQztvQkFFcEIsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksS0FBSyxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBRTNELE1BQU07Z0JBQ1IsQ0FBQztnQkFDRCxLQUFLLGdCQUFnQixDQUFDO2dCQUN0QixLQUFLLFlBQVksQ0FBQyxDQUFDLENBQUM7b0JBQ2xCLG1EQUFtRDtvQkFFbkQsTUFBTTtnQkFDUixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzlCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJyYWNrZXRSb3VuZElkLCBCcmFja2V0Um91bmRSZWxhdGlvbnMgfSBmcm9tICcuL2JyYWNrZXQtbmV3JztcbmltcG9ydCB7IEJyYWNrZXRHcmlkRGVmaW5pdGlvbnMgfSBmcm9tICcuL2dyaWQtZGVmaW5pdGlvbnMnO1xuaW1wb3J0IHsgQnJhY2tldEdyaWRSb3VuZEl0ZW0gfSBmcm9tICcuL2dyaWQtcGxhY2VtZW50cyc7XG5cbmV4cG9ydCB0eXBlIERyYXdNYW5EaW1lbnNpb25zID0ge1xuICBjb2x1bW5XaWR0aDogbnVtYmVyO1xuICBtYXRjaEhlaWdodDogbnVtYmVyO1xuICByb3VuZEhlYWRlckhlaWdodDogbnVtYmVyO1xuICBjb2x1bW5HYXA6IG51bWJlcjtcbiAgcm93R2FwOiBudW1iZXI7XG4gIGdyaWREZWZpbml0aW9uczogQnJhY2tldEdyaWREZWZpbml0aW9ucztcbn07XG5cbmNvbnN0IExJTkVfV0lEVEggPSAxO1xuXG5jb25zdCBwYXRoID0gKGQ6IHN0cmluZykgPT4gYDxwYXRoIGQ9XCIke2R9XCIgc3Ryb2tlPVwicmVkXCIgZmlsbD1cIm5vbmVcIiBzdHJva2Utd2lkdGg9XCIke0xJTkVfV0lEVEh9XCIgLz5gO1xuXG5leHBvcnQgY29uc3QgZHJhd01hbiA9IDxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPihcbiAgaXRlbXM6IE1hcDxCcmFja2V0Um91bmRJZCwgQnJhY2tldEdyaWRSb3VuZEl0ZW08VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4+LFxuICByb3VuZFJlbGF0aW9uczogQnJhY2tldFJvdW5kUmVsYXRpb25zPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+LFxuICBkaW1lbnNpb25zOiBEcmF3TWFuRGltZW5zaW9ucyxcbikgPT4ge1xuICBjb25zdCB7IGNvbHVtbldpZHRoLCBtYXRjaEhlaWdodCwgcm93R2FwLCBjb2x1bW5HYXAsIHJvdW5kSGVhZGVySGVpZ2h0LCBncmlkRGVmaW5pdGlvbnMgfSA9IGRpbWVuc2lvbnM7XG4gIGNvbnN0IHJvdW5kSGVhZGVyUm93R2FwID0gcm91bmRIZWFkZXJIZWlnaHQgPyByb3dHYXAgOiAwO1xuICBjb25zdCBiYXNlT2Zmc2V0WSA9IHJvdW5kSGVhZGVySGVpZ2h0ICsgcm91bmRIZWFkZXJSb3dHYXA7XG5cbiAgY29uc3QgY29sdW1uR2FwQ2VudGVyID0gY29sdW1uR2FwIC8gMjtcbiAgY29uc3QgdG90YWxIZWlnaHQgPVxuICAgIChncmlkRGVmaW5pdGlvbnMucm93Q291bnQgLSAxKSAqIG1hdGNoSGVpZ2h0ICsgKGdyaWREZWZpbml0aW9ucy5yb3dDb3VudCAtIDEpICogcm93R2FwICsgcm91bmRIZWFkZXJIZWlnaHQ7IC8vIFRPRE86IFRoaXMgaXMgbm90IGNvcnJlY3QgaW4gZG91YmxlIGVsaW1pbmF0aW9uXG4gIGNvbnN0IHN2Z1BhcnRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8vIGEgbm90aGluZyB0byBvbmUgZHJhd3Mgbm90aGluZ1xuICAvLyBhIG9uZSB0byBub3RoaW5nIGRyYXdzIG5vdGhpbmdcbiAgLy8gYSBvbmUgdG8gb25lIGRyYXdzIGEgbGluZVxuICAvLyBhIG9uZSB0byB0d28gZHJhd3MgYSBsaW5lIHRoYXQgc3BsaXRzIGludG8gaW4gdGhlIG1pZGRsZVxuICAvLyBhIHR3byB0byBvbmUgZHJhd3MgdHdvIGxpbmVzIHRoYXQgbWVyZ2UgaW50byBvbmUgaW4gdGhlIG1pZGRsZVxuXG4gIC8vIFdFIE9OTFkgRVZFUiBEUkFXIFRIRSBMRUZUIFNJREUgKG9uLXRvLCBub3RoaW5nLXRvLCB0d28tdG8pXG5cbiAgZm9yIChjb25zdCByb3VuZCBvZiBpdGVtcy52YWx1ZXMoKSkge1xuICAgIGNvbnN0IHJvd3MgPSByb3VuZC5yb3VuZFJlbGF0aW9uLmN1cnJlbnRSb3VuZC5tYXRjaENvdW50O1xuICAgIGNvbnN0IHJvd0dhcHMgPSByb3dzIC0gMTtcbiAgICBjb25zdCByb3dIZWlnaHQgPSAodG90YWxIZWlnaHQgLSBiYXNlT2Zmc2V0WSkgLyByb3dzIC0gcm93R2FwcyAqIHJvd0dhcDtcbiAgICBjb25zdCByb3dXaGl0ZXNwYWNlID0gKHJvd0hlaWdodCAtIG1hdGNoSGVpZ2h0KSAvIDI7XG4gICAgY29uc3QgbWF0Y2hIZWlnaHRPZmZzZXQgPSByb3dXaGl0ZXNwYWNlICsgbWF0Y2hIZWlnaHQgLyAyOyAvLyB0aGUgdmVydGljYWwgbWlkZGxlIG9mIGEgbWF0Y2ggaW4gdGhpcyByb3dcblxuICAgIGZvciAoY29uc3QgaXRlbSBvZiByb3VuZC5pdGVtcy52YWx1ZXMoKSkge1xuICAgICAgaWYgKGl0ZW0udHlwZSA9PT0gJ3JvdW5kJykgY29udGludWU7IC8vIHdlIGRvbid0IGRyYXcgbGluZXMgZm9yIHJvdW5kIGhlYWRlcnNcblxuICAgICAgc3dpdGNoIChpdGVtLm1hdGNoUmVsYXRpb24udHlwZSkge1xuICAgICAgICBjYXNlICdub3RoaW5nLXRvLW9uZSc6IHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdvbmUtdG8tbm90aGluZyc6XG4gICAgICAgIGNhc2UgJ29uZS10by1vbmUnOiB7XG4gICAgICAgICAgLy8gZHJhdyBhIHN0cmFpZ2h0IGxpbmVcbiAgICAgICAgICBjb25zdCBwcmV2aW91c1JvdW5kID0gaXRlbXMuZ2V0KGl0ZW0ubWF0Y2hSZWxhdGlvbi5wcmV2aW91c1JvdW5kLmlkKTtcbiAgICAgICAgICBpZiAoIXByZXZpb3VzUm91bmQpIHRocm93IG5ldyBFcnJvcignUHJldmlvdXMgcm91bmQgb3IgbWF0Y2ggaXMgbWlzc2luZycpO1xuICAgICAgICAgIGNvbnN0IHByZXZpb3VzTWF0Y2ggPSBwcmV2aW91c1JvdW5kLml0ZW1zLmdldChpdGVtLm1hdGNoUmVsYXRpb24ucHJldmlvdXNNYXRjaC5pZCk7XG4gICAgICAgICAgaWYgKCFwcmV2aW91c01hdGNoIHx8IHByZXZpb3VzTWF0Y2gudHlwZSAhPT0gJ21hdGNoJykgdGhyb3cgbmV3IEVycm9yKCdQcmV2aW91cyByb3VuZCBvciBtYXRjaCBpcyBtaXNzaW5nJyk7XG5cbiAgICAgICAgICBjb25zdCBwcmV2aW91c1JvdW5kUm93cyA9IHByZXZpb3VzUm91bmQucm91bmRSZWxhdGlvbi5jdXJyZW50Um91bmQubWF0Y2hDb3VudDtcbiAgICAgICAgICBjb25zdCBwcmV2aW91c1JvdW5kUm93R2FwcyA9IHByZXZpb3VzUm91bmRSb3dzIC0gMTtcblxuICAgICAgICAgIGNvbnN0IHByZXZpb3VzUm91bmRSb3dIZWlnaHQgPVxuICAgICAgICAgICAgKHRvdGFsSGVpZ2h0IC0gYmFzZU9mZnNldFkpIC8gcHJldmlvdXNSb3VuZFJvd3MgLSBwcmV2aW91c1JvdW5kUm93R2FwcyAqIHJvd0dhcDtcblxuICAgICAgICAgIGNvbnN0IHByZXZpb3VzUm91bmRSb3dXaGl0ZXNwYWNlID0gKHByZXZpb3VzUm91bmRSb3dIZWlnaHQgLSBtYXRjaEhlaWdodCkgLyAyO1xuICAgICAgICAgIGNvbnN0IHByZXZpb3VzUm91bmRNYXRjaEhlaWdodE9mZnNldCA9IHByZXZpb3VzUm91bmRSb3dXaGl0ZXNwYWNlICsgbWF0Y2hIZWlnaHQgLyAyO1xuXG4gICAgICAgICAgY29uc3QgZnJvbVggPSBwcmV2aW91c1JvdW5kLmNvbHVtblN0YXJ0ICogY29sdW1uV2lkdGggKyAocm91bmQuY29sdW1uU3RhcnQgLSAyKSAqIGNvbHVtbkdhcDtcbiAgICAgICAgICBjb25zdCB0b1ggPSAocm91bmQuY29sdW1uU3RhcnQgLSAxKSAqIGNvbHVtbldpZHRoICsgKHJvdW5kLmNvbHVtblN0YXJ0IC0gMSkgKiBjb2x1bW5HYXA7XG5cbiAgICAgICAgICBjb25zdCBmcm9tWSA9XG4gICAgICAgICAgICBwcmV2aW91c01hdGNoLm1hdGNoUmVsYXRpb24uY3VycmVudE1hdGNoLmluZGV4SW5Sb3VuZCAqIHByZXZpb3VzUm91bmRSb3dXaGl0ZXNwYWNlICtcbiAgICAgICAgICAgIHByZXZpb3VzTWF0Y2gubWF0Y2hSZWxhdGlvbi5jdXJyZW50TWF0Y2guaW5kZXhJblJvdW5kICogcm93R2FwICtcbiAgICAgICAgICAgIGJhc2VPZmZzZXRZICtcbiAgICAgICAgICAgIHByZXZpb3VzUm91bmRNYXRjaEhlaWdodE9mZnNldDtcbiAgICAgICAgICBjb25zdCB0b1kgPVxuICAgICAgICAgICAgaXRlbS5tYXRjaFJlbGF0aW9uLmN1cnJlbnRNYXRjaC5pbmRleEluUm91bmQgKiByb3dXaGl0ZXNwYWNlICtcbiAgICAgICAgICAgIGl0ZW0ubWF0Y2hSZWxhdGlvbi5jdXJyZW50TWF0Y2guaW5kZXhJblJvdW5kICogcm93R2FwICtcbiAgICAgICAgICAgIGJhc2VPZmZzZXRZICtcbiAgICAgICAgICAgIG1hdGNoSGVpZ2h0T2Zmc2V0O1xuXG4gICAgICAgICAgc3ZnUGFydHMucHVzaChwYXRoKGBNICR7ZnJvbVh9ICR7ZnJvbVl9IEwgJHt0b1h9ICR7dG9ZfWApKTtcblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3R3by10by1ub3RoaW5nJzpcbiAgICAgICAgY2FzZSAndHdvLXRvLW9uZSc6IHtcbiAgICAgICAgICAvLyBkcmF3IHR3byBsaW5lcyB0aGF0IG1lcmdlIGludG8gb25lIGluIHRoZSBtaWRkbGVcblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN2Z1BhcnRzLmpvaW4oJyAvbicpO1xufTtcbiJdfQ==
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { COMMON_BRACKET_ROUND_TYPE, DOUBLE_ELIMINATION_BRACKET_ROUND_TYPE, TOURNAMENT_MODE, } from './bracket-new';
|
|
2
|
+
const generateColumnCount = (bracketData, roundTypeMap) => {
|
|
3
|
+
const thirdPlaceRoundSize = roundTypeMap.get(COMMON_BRACKET_ROUND_TYPE.THIRD_PLACE)?.size || 0;
|
|
4
|
+
switch (bracketData.mode) {
|
|
5
|
+
case TOURNAMENT_MODE.DOUBLE_ELIMINATION: {
|
|
6
|
+
const upperBracketSize = roundTypeMap.get(DOUBLE_ELIMINATION_BRACKET_ROUND_TYPE.UPPER_BRACKET)?.size || 0;
|
|
7
|
+
const lowerBracketSize = roundTypeMap.get(DOUBLE_ELIMINATION_BRACKET_ROUND_TYPE.LOWER_BRACKET)?.size || 0;
|
|
8
|
+
// the total columns are the bigger number of winner bracket rounds vs looser bracket rounds + all other rounds excluding third place
|
|
9
|
+
return bracketData.rounds.size - thirdPlaceRoundSize + Math.max(upperBracketSize, lowerBracketSize);
|
|
10
|
+
}
|
|
11
|
+
default: {
|
|
12
|
+
// the total columns are the amount of rounds excluding third place
|
|
13
|
+
return bracketData.rounds.size - thirdPlaceRoundSize;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
const generateRowCount = (bracketData, roundTypeMap, options) => {
|
|
18
|
+
switch (bracketData.mode) {
|
|
19
|
+
case TOURNAMENT_MODE.DOUBLE_ELIMINATION: {
|
|
20
|
+
const upperBracketSize = roundTypeMap.get(DOUBLE_ELIMINATION_BRACKET_ROUND_TYPE.UPPER_BRACKET)?.values().next()
|
|
21
|
+
.value?.matchCount;
|
|
22
|
+
const lowerBracketSize = roundTypeMap.get(DOUBLE_ELIMINATION_BRACKET_ROUND_TYPE.LOWER_BRACKET)?.values().next()
|
|
23
|
+
.value?.matchCount;
|
|
24
|
+
const roundHeadersCount = options.includeRoundHeaders ? 2 : 0;
|
|
25
|
+
if (upperBracketSize === undefined || lowerBracketSize === undefined) {
|
|
26
|
+
throw new Error('Upper or lower bracket size is undefined');
|
|
27
|
+
}
|
|
28
|
+
// the total rows the amount of matches in the first upper bracket round + first lower bracket round + if true, the round header row for both
|
|
29
|
+
return upperBracketSize + lowerBracketSize + roundHeadersCount;
|
|
30
|
+
}
|
|
31
|
+
default: {
|
|
32
|
+
const firstRoundSize = bracketData.rounds.values().next().value?.matchCount;
|
|
33
|
+
const roundHeadersCount = options.includeRoundHeaders ? 1 : 0;
|
|
34
|
+
if (firstRoundSize === undefined) {
|
|
35
|
+
throw new Error('First round size is undefined');
|
|
36
|
+
}
|
|
37
|
+
// the total rows are the amount of matches in the first round + if true, the round header row
|
|
38
|
+
return firstRoundSize + roundHeadersCount;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
export const generateBracketGridDefinitions = (bracketData, roundTypeMap, options) => {
|
|
43
|
+
const columnCount = generateColumnCount(bracketData, roundTypeMap);
|
|
44
|
+
const rowCount = generateRowCount(bracketData, roundTypeMap, options);
|
|
45
|
+
return { columnCount, rowCount };
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1kZWZpbml0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9icmFja2V0L2NvbXBvbmVudHMvbmV3LWJyYWNrZXQvZ3JpZC1kZWZpbml0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wseUJBQXlCLEVBQ3pCLHFDQUFxQyxFQUNyQyxlQUFlLEdBQ2hCLE1BQU0sZUFBZSxDQUFDO0FBTXZCLE1BQU0sbUJBQW1CLEdBQUcsQ0FDMUIsV0FBZ0QsRUFDaEQsWUFBeUQsRUFDekQsRUFBRTtJQUNGLE1BQU0sbUJBQW1CLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBQyxXQUFXLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDO0lBRS9GLFFBQVEsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pCLEtBQUssZUFBZSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztZQUN4QyxNQUFNLGdCQUFnQixHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMscUNBQXFDLENBQUMsYUFBYSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQztZQUMxRyxNQUFNLGdCQUFnQixHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMscUNBQXFDLENBQUMsYUFBYSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQztZQUUxRyxxSUFBcUk7WUFDckksT0FBTyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDdEcsQ0FBQztRQUNELE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDUixtRUFBbUU7WUFDbkUsT0FBTyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxtQkFBbUIsQ0FBQztRQUN2RCxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0sZ0JBQWdCLEdBQUcsQ0FDdkIsV0FBZ0QsRUFDaEQsWUFBeUQsRUFDekQsT0FBOEMsRUFDOUMsRUFBRTtJQUNGLFFBQVEsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pCLEtBQUssZUFBZSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztZQUN4QyxNQUFNLGdCQUFnQixHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMscUNBQXFDLENBQUMsYUFBYSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFO2lCQUM1RyxLQUFLLEVBQUUsVUFBVSxDQUFDO1lBQ3JCLE1BQU0sZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxxQ0FBcUMsQ0FBQyxhQUFhLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUU7aUJBQzVHLEtBQUssRUFBRSxVQUFVLENBQUM7WUFDckIsTUFBTSxpQkFBaUIsR0FBRyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRTlELElBQUksZ0JBQWdCLEtBQUssU0FBUyxJQUFJLGdCQUFnQixLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUNyRSxNQUFNLElBQUksS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7WUFDOUQsQ0FBQztZQUVELDZJQUE2STtZQUM3SSxPQUFPLGdCQUFnQixHQUFHLGdCQUFnQixHQUFHLGlCQUFpQixDQUFDO1FBQ2pFLENBQUM7UUFDRCxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ1IsTUFBTSxjQUFjLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDO1lBQzVFLE1BQU0saUJBQWlCLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUU5RCxJQUFJLGNBQWMsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDakMsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1lBQ25ELENBQUM7WUFFRCw4RkFBOEY7WUFDOUYsT0FBTyxjQUFjLEdBQUcsaUJBQWlCLENBQUM7UUFDNUMsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDLENBQUM7QUFPRixNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxDQUM1QyxXQUFnRCxFQUNoRCxZQUF5RCxFQUN6RCxPQUE4QyxFQUN0QixFQUFFO0lBQzFCLE1BQU0sV0FBVyxHQUFHLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUNuRSxNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRXRFLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLENBQUM7QUFDbkMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQnJhY2tldERhdGEsXG4gIEJyYWNrZXRSb3VuZFR5cGVNYXAsXG4gIENPTU1PTl9CUkFDS0VUX1JPVU5EX1RZUEUsXG4gIERPVUJMRV9FTElNSU5BVElPTl9CUkFDS0VUX1JPVU5EX1RZUEUsXG4gIFRPVVJOQU1FTlRfTU9ERSxcbn0gZnJvbSAnLi9icmFja2V0LW5ldyc7XG5cbmV4cG9ydCB0eXBlIGdlbmVyYXRlQnJhY2tldEdyaWREZWZpbml0aW9uc09wdGlvbnMgPSB7XG4gIGluY2x1ZGVSb3VuZEhlYWRlcnM6IGJvb2xlYW47XG59O1xuXG5jb25zdCBnZW5lcmF0ZUNvbHVtbkNvdW50ID0gPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+KFxuICBicmFja2V0RGF0YTogQnJhY2tldERhdGE8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4sXG4gIHJvdW5kVHlwZU1hcDogQnJhY2tldFJvdW5kVHlwZU1hcDxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPixcbikgPT4ge1xuICBjb25zdCB0aGlyZFBsYWNlUm91bmRTaXplID0gcm91bmRUeXBlTWFwLmdldChDT01NT05fQlJBQ0tFVF9ST1VORF9UWVBFLlRISVJEX1BMQUNFKT8uc2l6ZSB8fCAwO1xuXG4gIHN3aXRjaCAoYnJhY2tldERhdGEubW9kZSkge1xuICAgIGNhc2UgVE9VUk5BTUVOVF9NT0RFLkRPVUJMRV9FTElNSU5BVElPTjoge1xuICAgICAgY29uc3QgdXBwZXJCcmFja2V0U2l6ZSA9IHJvdW5kVHlwZU1hcC5nZXQoRE9VQkxFX0VMSU1JTkFUSU9OX0JSQUNLRVRfUk9VTkRfVFlQRS5VUFBFUl9CUkFDS0VUKT8uc2l6ZSB8fCAwO1xuICAgICAgY29uc3QgbG93ZXJCcmFja2V0U2l6ZSA9IHJvdW5kVHlwZU1hcC5nZXQoRE9VQkxFX0VMSU1JTkFUSU9OX0JSQUNLRVRfUk9VTkRfVFlQRS5MT1dFUl9CUkFDS0VUKT8uc2l6ZSB8fCAwO1xuXG4gICAgICAvLyB0aGUgdG90YWwgY29sdW1ucyBhcmUgdGhlIGJpZ2dlciBudW1iZXIgb2Ygd2lubmVyIGJyYWNrZXQgcm91bmRzIHZzIGxvb3NlciBicmFja2V0IHJvdW5kcyArIGFsbCBvdGhlciByb3VuZHMgZXhjbHVkaW5nIHRoaXJkIHBsYWNlXG4gICAgICByZXR1cm4gYnJhY2tldERhdGEucm91bmRzLnNpemUgLSB0aGlyZFBsYWNlUm91bmRTaXplICsgTWF0aC5tYXgodXBwZXJCcmFja2V0U2l6ZSwgbG93ZXJCcmFja2V0U2l6ZSk7XG4gICAgfVxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIC8vIHRoZSB0b3RhbCBjb2x1bW5zIGFyZSB0aGUgYW1vdW50IG9mIHJvdW5kcyBleGNsdWRpbmcgdGhpcmQgcGxhY2VcbiAgICAgIHJldHVybiBicmFja2V0RGF0YS5yb3VuZHMuc2l6ZSAtIHRoaXJkUGxhY2VSb3VuZFNpemU7XG4gICAgfVxuICB9XG59O1xuXG5jb25zdCBnZW5lcmF0ZVJvd0NvdW50ID0gPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+KFxuICBicmFja2V0RGF0YTogQnJhY2tldERhdGE8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4sXG4gIHJvdW5kVHlwZU1hcDogQnJhY2tldFJvdW5kVHlwZU1hcDxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPixcbiAgb3B0aW9uczogZ2VuZXJhdGVCcmFja2V0R3JpZERlZmluaXRpb25zT3B0aW9ucyxcbikgPT4ge1xuICBzd2l0Y2ggKGJyYWNrZXREYXRhLm1vZGUpIHtcbiAgICBjYXNlIFRPVVJOQU1FTlRfTU9ERS5ET1VCTEVfRUxJTUlOQVRJT046IHtcbiAgICAgIGNvbnN0IHVwcGVyQnJhY2tldFNpemUgPSByb3VuZFR5cGVNYXAuZ2V0KERPVUJMRV9FTElNSU5BVElPTl9CUkFDS0VUX1JPVU5EX1RZUEUuVVBQRVJfQlJBQ0tFVCk/LnZhbHVlcygpLm5leHQoKVxuICAgICAgICAudmFsdWU/Lm1hdGNoQ291bnQ7XG4gICAgICBjb25zdCBsb3dlckJyYWNrZXRTaXplID0gcm91bmRUeXBlTWFwLmdldChET1VCTEVfRUxJTUlOQVRJT05fQlJBQ0tFVF9ST1VORF9UWVBFLkxPV0VSX0JSQUNLRVQpPy52YWx1ZXMoKS5uZXh0KClcbiAgICAgICAgLnZhbHVlPy5tYXRjaENvdW50O1xuICAgICAgY29uc3Qgcm91bmRIZWFkZXJzQ291bnQgPSBvcHRpb25zLmluY2x1ZGVSb3VuZEhlYWRlcnMgPyAyIDogMDtcblxuICAgICAgaWYgKHVwcGVyQnJhY2tldFNpemUgPT09IHVuZGVmaW5lZCB8fCBsb3dlckJyYWNrZXRTaXplID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVcHBlciBvciBsb3dlciBicmFja2V0IHNpemUgaXMgdW5kZWZpbmVkJyk7XG4gICAgICB9XG5cbiAgICAgIC8vIHRoZSB0b3RhbCByb3dzIHRoZSBhbW91bnQgb2YgbWF0Y2hlcyBpbiB0aGUgZmlyc3QgdXBwZXIgYnJhY2tldCByb3VuZCArIGZpcnN0IGxvd2VyIGJyYWNrZXQgcm91bmQgKyBpZiB0cnVlLCB0aGUgcm91bmQgaGVhZGVyIHJvdyBmb3IgYm90aFxuICAgICAgcmV0dXJuIHVwcGVyQnJhY2tldFNpemUgKyBsb3dlckJyYWNrZXRTaXplICsgcm91bmRIZWFkZXJzQ291bnQ7XG4gICAgfVxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIGNvbnN0IGZpcnN0Um91bmRTaXplID0gYnJhY2tldERhdGEucm91bmRzLnZhbHVlcygpLm5leHQoKS52YWx1ZT8ubWF0Y2hDb3VudDtcbiAgICAgIGNvbnN0IHJvdW5kSGVhZGVyc0NvdW50ID0gb3B0aW9ucy5pbmNsdWRlUm91bmRIZWFkZXJzID8gMSA6IDA7XG5cbiAgICAgIGlmIChmaXJzdFJvdW5kU2l6ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRmlyc3Qgcm91bmQgc2l6ZSBpcyB1bmRlZmluZWQnKTtcbiAgICAgIH1cblxuICAgICAgLy8gdGhlIHRvdGFsIHJvd3MgYXJlIHRoZSBhbW91bnQgb2YgbWF0Y2hlcyBpbiB0aGUgZmlyc3Qgcm91bmQgKyBpZiB0cnVlLCB0aGUgcm91bmQgaGVhZGVyIHJvd1xuICAgICAgcmV0dXJuIGZpcnN0Um91bmRTaXplICsgcm91bmRIZWFkZXJzQ291bnQ7XG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgdHlwZSBCcmFja2V0R3JpZERlZmluaXRpb25zID0ge1xuICBjb2x1bW5Db3VudDogbnVtYmVyO1xuICByb3dDb3VudDogbnVtYmVyO1xufTtcblxuZXhwb3J0IGNvbnN0IGdlbmVyYXRlQnJhY2tldEdyaWREZWZpbml0aW9ucyA9IDxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPihcbiAgYnJhY2tldERhdGE6IEJyYWNrZXREYXRhPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+LFxuICByb3VuZFR5cGVNYXA6IEJyYWNrZXRSb3VuZFR5cGVNYXA8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4sXG4gIG9wdGlvbnM6IGdlbmVyYXRlQnJhY2tldEdyaWREZWZpbml0aW9uc09wdGlvbnMsXG4pOiBCcmFja2V0R3JpZERlZmluaXRpb25zID0+IHtcbiAgY29uc3QgY29sdW1uQ291bnQgPSBnZW5lcmF0ZUNvbHVtbkNvdW50KGJyYWNrZXREYXRhLCByb3VuZFR5cGVNYXApO1xuICBjb25zdCByb3dDb3VudCA9IGdlbmVyYXRlUm93Q291bnQoYnJhY2tldERhdGEsIHJvdW5kVHlwZU1hcCwgb3B0aW9ucyk7XG5cbiAgcmV0dXJuIHsgY29sdW1uQ291bnQsIHJvd0NvdW50IH07XG59O1xuIl19
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { TOURNAMENT_MODE, } from './bracket-new';
|
|
2
|
+
import { NewBracketDefaultMatchComponent } from './new-bracket-default-match.component';
|
|
3
|
+
import { NewBracketDefaultRoundHeaderComponent } from './new-bracket-default-round-header.component';
|
|
4
|
+
export const generateBracketGridItems = (bracketData, roundTypeMap, swissGroups, roundRelations, matchRelations, options) => {
|
|
5
|
+
const roundHeaderComponent = options.headerComponent ?? NewBracketDefaultRoundHeaderComponent;
|
|
6
|
+
const matchComponent = options.matchComponent ?? NewBracketDefaultMatchComponent;
|
|
7
|
+
const optionsWithDefaults = {
|
|
8
|
+
...options,
|
|
9
|
+
headerComponent: roundHeaderComponent,
|
|
10
|
+
matchComponent: matchComponent,
|
|
11
|
+
};
|
|
12
|
+
switch (bracketData.mode) {
|
|
13
|
+
case TOURNAMENT_MODE.DOUBLE_ELIMINATION:
|
|
14
|
+
return generateDoubleEliminationGridPlacements(bracketData, roundTypeMap, roundRelations, matchRelations, optionsWithDefaults);
|
|
15
|
+
case TOURNAMENT_MODE.SWISS_WITH_ELIMINATION: {
|
|
16
|
+
if (!swissGroups)
|
|
17
|
+
throw new Error('Swiss groups are required for swiss with elimination mode');
|
|
18
|
+
return generateSwissWithEliminationGridPlacements(bracketData, roundTypeMap, swissGroups, roundRelations, matchRelations, optionsWithDefaults);
|
|
19
|
+
}
|
|
20
|
+
default:
|
|
21
|
+
return generateGenericGridPlacements(bracketData, roundTypeMap, roundRelations, matchRelations, optionsWithDefaults);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
const generateGenericGridPlacements = (bracketData, roundTypeMap, roundRelations, matchRelations, options) => {
|
|
25
|
+
const gridItems = new Map();
|
|
26
|
+
const firstRound = bracketData.rounds.values().next().value;
|
|
27
|
+
if (!firstRound) {
|
|
28
|
+
throw new Error('First round is missing');
|
|
29
|
+
}
|
|
30
|
+
for (const round of bracketData.rounds.values()) {
|
|
31
|
+
const roundRelation = roundRelations.get(round.id);
|
|
32
|
+
let currentMatchRow = 1;
|
|
33
|
+
const columnStart = round.index + 1;
|
|
34
|
+
const columnEnd = columnStart + 1;
|
|
35
|
+
if (!roundRelation) {
|
|
36
|
+
throw new Error('Round relation is missing');
|
|
37
|
+
}
|
|
38
|
+
if (roundRelation.type === 'two-to-nothing' || roundRelation.type === 'two-to-one') {
|
|
39
|
+
throw new Error(`Invalid relation type ${roundRelation.type}`);
|
|
40
|
+
}
|
|
41
|
+
const roundItem = {
|
|
42
|
+
id: round.id,
|
|
43
|
+
columnStart,
|
|
44
|
+
columnEnd,
|
|
45
|
+
roundRelation,
|
|
46
|
+
items: new Map(),
|
|
47
|
+
};
|
|
48
|
+
if (options.includeRoundHeaders) {
|
|
49
|
+
const roundHeaderItem = {
|
|
50
|
+
type: 'round',
|
|
51
|
+
id: round.id,
|
|
52
|
+
rowStart: currentMatchRow,
|
|
53
|
+
rowEnd: ++currentMatchRow,
|
|
54
|
+
component: options.headerComponent,
|
|
55
|
+
roundRelation,
|
|
56
|
+
data: {
|
|
57
|
+
bracketRound: round,
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
roundItem.items.set(round.id, roundHeaderItem);
|
|
61
|
+
}
|
|
62
|
+
const rootRoundMatchFactor = roundRelation.type !== 'nothing-to-one' ? roundRelation.rootRoundMatchFactor : null;
|
|
63
|
+
const matchHeight = rootRoundMatchFactor ? rootRoundMatchFactor : 1;
|
|
64
|
+
for (const match of round.matches.values()) {
|
|
65
|
+
const matchRelation = matchRelations.get(match.id);
|
|
66
|
+
if (!matchRelation) {
|
|
67
|
+
throw new Error('Match relation is missing');
|
|
68
|
+
}
|
|
69
|
+
const baseRow = match.indexInRound * matchHeight;
|
|
70
|
+
const matchItem = {
|
|
71
|
+
type: 'match',
|
|
72
|
+
id: match.id,
|
|
73
|
+
rowStart: baseRow + currentMatchRow,
|
|
74
|
+
rowEnd: baseRow + currentMatchRow + matchHeight,
|
|
75
|
+
component: options.matchComponent,
|
|
76
|
+
matchRelation,
|
|
77
|
+
roundRelation,
|
|
78
|
+
data: {
|
|
79
|
+
bracketRound: round,
|
|
80
|
+
bracketMatch: match,
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
roundItem.items.set(match.id, matchItem);
|
|
84
|
+
}
|
|
85
|
+
gridItems.set(round.id, roundItem);
|
|
86
|
+
}
|
|
87
|
+
return gridItems;
|
|
88
|
+
};
|
|
89
|
+
const generateDoubleEliminationGridPlacements = (bracketData, roundTypeMap, roundRelations, matchRelations, options) => {
|
|
90
|
+
const gridItems = new Map();
|
|
91
|
+
return gridItems;
|
|
92
|
+
};
|
|
93
|
+
const generateSwissWithEliminationGridPlacements = (bracketData, roundTypeMap, swissGroups, roundRelations, matchRelations, options) => {
|
|
94
|
+
const gridItems = new Map();
|
|
95
|
+
return gridItems;
|
|
96
|
+
};
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1wbGFjZW1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL2JyYWNrZXQvY29tcG9uZW50cy9uZXctYnJhY2tldC9ncmlkLXBsYWNlbWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQVlMLGVBQWUsR0FDaEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDeEYsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFpRXJHLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQ3RDLFdBQWdELEVBQ2hELFlBQXlELEVBQ3pELFdBQXdFLEVBQ3hFLGNBQTZELEVBQzdELGNBQWdFLEVBQ2hFLE9BQWdFLEVBQ2hFLEVBQUU7SUFDRixNQUFNLG9CQUFvQixHQUFHLE9BQU8sQ0FBQyxlQUFlLElBQUkscUNBQXFDLENBQUM7SUFDOUYsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLGNBQWMsSUFBSSwrQkFBK0IsQ0FBQztJQUVqRixNQUFNLG1CQUFtQixHQUF3RTtRQUMvRixHQUFHLE9BQU87UUFDVixlQUFlLEVBQUUsb0JBQW9CO1FBQ3JDLGNBQWMsRUFBRSxjQUFjO0tBQy9CLENBQUM7SUFFRixRQUFRLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixLQUFLLGVBQWUsQ0FBQyxrQkFBa0I7WUFDckMsT0FBTyx1Q0FBdUMsQ0FDNUMsV0FBVyxFQUNYLFlBQVksRUFDWixjQUFjLEVBQ2QsY0FBYyxFQUNkLG1CQUFtQixDQUNwQixDQUFDO1FBQ0osS0FBSyxlQUFlLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxXQUFXO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsMkRBQTJELENBQUMsQ0FBQztZ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L0YsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgSW5wdXRTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEJyYWNrZXREYXRhLFxuICBCcmFja2V0TWF0Y2gsXG4gIEJyYWNrZXRNYXRjaElkLFxuICBCcmFja2V0TWF0Y2hSZWxhdGlvbixcbiAgQnJhY2tldE1hdGNoUmVsYXRpb25zTWFwLFxuICBCcmFja2V0Um91bmQsXG4gIEJyYWNrZXRSb3VuZElkLFxuICBCcmFja2V0Um91bmRNYXBXaXRoU3dpc3NEYXRhLFxuICBCcmFja2V0Um91bmRSZWxhdGlvbixcbiAgQnJhY2tldFJvdW5kUmVsYXRpb25zLFxuICBCcmFja2V0Um91bmRUeXBlTWFwLFxuICBUT1VSTkFNRU5UX01PREUsXG59IGZyb20gJy4vYnJhY2tldC1uZXcnO1xuaW1wb3J0IHsgTmV3QnJhY2tldERlZmF1bHRNYXRjaENvbXBvbmVudCB9IGZyb20gJy4vbmV3LWJyYWNrZXQtZGVmYXVsdC1tYXRjaC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmV3QnJhY2tldERlZmF1bHRSb3VuZEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vbmV3LWJyYWNrZXQtZGVmYXVsdC1yb3VuZC1oZWFkZXIuY29tcG9uZW50JztcblxuZXhwb3J0IHR5cGUgQnJhY2tldFJvdW5kSGVhZGVyQ29tcG9uZW50PFRSb3VuZERhdGEsIFRNYXRjaERhdGE+ID0gQ29tcG9uZW50VHlwZTx7XG4gIGJyYWNrZXRSb3VuZDogSW5wdXRTaWduYWw8QnJhY2tldFJvdW5kPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+Pjtcbn0+O1xuXG5leHBvcnQgdHlwZSBDb21wb25lbnRJbnB1dFZhbHVlPFQ+ID0gKCkgPT4ge1xuICBbUCBpbiBrZXlvZiBUXTogVFtQXSBleHRlbmRzIElucHV0U2lnbmFsPGluZmVyIFU+ID8gVSA6IG5ldmVyO1xufTtcblxuZXhwb3J0IHR5cGUgQnJhY2tldE1hdGNoQ29tcG9uZW50PFRSb3VuZERhdGEsIFRNYXRjaERhdGE+ID0gQ29tcG9uZW50VHlwZTx7XG4gIGJyYWNrZXRSb3VuZDogSW5wdXRTaWduYWw8QnJhY2tldFJvdW5kPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+PjtcbiAgYnJhY2tldE1hdGNoOiBJbnB1dFNpZ25hbDxCcmFja2V0TWF0Y2g8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4+O1xufT47XG5cbmV4cG9ydCB0eXBlIEJyYWNrZXRHcmlkUm91bmRJdGVtPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+ID0ge1xuICBpZDogc3RyaW5nO1xuICBjb2x1bW5TdGFydDogbnVtYmVyO1xuICBjb2x1bW5FbmQ6IG51bWJlcjtcbiAgcm91bmRSZWxhdGlvbjogQnJhY2tldFJvdW5kUmVsYXRpb248VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT47XG4gIGl0ZW1zOiBNYXA8QnJhY2tldFJvdW5kSWQgfCBCcmFja2V0TWF0Y2hJZCwgQnJhY2tldEdyaWRJdGVtPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+Pjtcbn07XG5cbmV4cG9ydCB0eXBlIEJyYWNrZXRHcmlkUm91bmRIZWFkZXJJdGVtPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+ID0ge1xuICB0eXBlOiAncm91bmQnO1xuICBpZDogc3RyaW5nO1xuICByb3dTdGFydDogbnVtYmVyO1xuICByb3dFbmQ6IG51bWJlcjtcbiAgY29tcG9uZW50OiBCcmFja2V0Um91bmRIZWFkZXJDb21wb25lbnQ8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT47XG4gIHJvdW5kUmVsYXRpb246IEJyYWNrZXRSb3VuZFJlbGF0aW9uPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+O1xuICBkYXRhOiB7XG4gICAgYnJhY2tldFJvdW5kOiBCcmFja2V0Um91bmQ8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT47XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBCcmFja2V0R3JpZE1hdGNoSXRlbTxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPiA9IHtcbiAgdHlwZTogJ21hdGNoJztcbiAgaWQ6IHN0cmluZztcbiAgcm93U3RhcnQ6IG51bWJlcjtcbiAgcm93RW5kOiBudW1iZXI7XG4gIGNvbXBvbmVudDogQnJhY2tldE1hdGNoQ29tcG9uZW50PFRSb3VuZERhdGEsIFRNYXRjaERhdGE+O1xuICBtYXRjaFJlbGF0aW9uOiBCcmFja2V0TWF0Y2hSZWxhdGlvbjxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPjtcbiAgcm91bmRSZWxhdGlvbjogQnJhY2tldFJvdW5kUmVsYXRpb248VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT47XG4gIGRhdGE6IHtcbiAgICBicmFja2V0Um91bmQ6IEJyYWNrZXRSb3VuZDxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPjtcbiAgICBicmFja2V0TWF0Y2g6IEJyYWNrZXRNYXRjaDxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPjtcbiAgfTtcbn07XG5cbmV4cG9ydCB0eXBlIEJyYWNrZXRHcmlkSXRlbTxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPiA9XG4gIHwgQnJhY2tldEdyaWRSb3VuZEhlYWRlckl0ZW08VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT5cbiAgfCBCcmFja2V0R3JpZE1hdGNoSXRlbTxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPjtcblxuZXhwb3J0IHR5cGUgR2VuZXJhdGVCcmFja2V0R3JpZEl0ZW1zT3B0aW9uczxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPiA9IHtcbiAgaW5jbHVkZVJvdW5kSGVhZGVyczogYm9vbGVhbjtcbiAgaGVhZGVyQ29tcG9uZW50PzogQnJhY2tldFJvdW5kSGVhZGVyQ29tcG9uZW50PFRSb3VuZERhdGEsIFRNYXRjaERhdGE+O1xuICBtYXRjaENvbXBvbmVudD86IEJyYWNrZXRNYXRjaENvbXBvbmVudDxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPjtcbn07XG5cbmV4cG9ydCB0eXBlIEdlbmVyYXRlQnJhY2tldEdyaWRJdGVtc09wdGlvbnNXaXRoRGVmYXVsdHM8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4gPSB7XG4gIGluY2x1ZGVSb3VuZEhlYWRlcnM6IGJvb2xlYW47XG4gIGhlYWRlckNvbXBvbmVudDogQnJhY2tldFJvdW5kSGVhZGVyQ29tcG9uZW50PFRSb3VuZERhdGEsIFRNYXRjaERhdGE+O1xuICBtYXRjaENvbXBvbmVudDogQnJhY2tldE1hdGNoQ29tcG9uZW50PFRSb3VuZERhdGEsIFRNYXRjaERhdGE+O1xufTtcblxuZXhwb3J0IGNvbnN0IGdlbmVyYXRlQnJhY2tldEdyaWRJdGVtcyA9IDxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPihcbiAgYnJhY2tldERhdGE6IEJyYWNrZXREYXRhPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+LFxuICByb3VuZFR5cGVNYXA6IEJyYWNrZXRSb3VuZFR5cGVNYXA8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4sXG4gIHN3aXNzR3JvdXBzOiBCcmFja2V0Um91bmRNYXBXaXRoU3dpc3NEYXRhPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+IHwgbnVsbCxcbiAgcm91bmRSZWxhdGlvbnM6IEJyYWNrZXRSb3VuZFJlbGF0aW9uczxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPixcbiAgbWF0Y2hSZWxhdGlvbnM6IEJyYWNrZXRNYXRjaFJlbGF0aW9uc01hcDxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPixcbiAgb3B0aW9uczogR2VuZXJhdGVCcmFja2V0R3JpZEl0ZW1zT3B0aW9uczxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPixcbikgPT4ge1xuICBjb25zdCByb3VuZEhlYWRlckNvbXBvbmVudCA9IG9wdGlvbnMuaGVhZGVyQ29tcG9uZW50ID8/IE5ld0JyYWNrZXREZWZhdWx0Um91bmRIZWFkZXJDb21wb25lbnQ7XG4gIGNvbnN0IG1hdGNoQ29tcG9uZW50ID0gb3B0aW9ucy5tYXRjaENvbXBvbmVudCA/PyBOZXdCcmFja2V0RGVmYXVsdE1hdGNoQ29tcG9uZW50O1xuXG4gIGNvbnN0IG9wdGlvbnNXaXRoRGVmYXVsdHM6IEdlbmVyYXRlQnJhY2tldEdyaWRJdGVtc09wdGlvbnNXaXRoRGVmYXVsdHM8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4gPSB7XG4gICAgLi4ub3B0aW9ucyxcbiAgICBoZWFkZXJDb21wb25lbnQ6IHJvdW5kSGVhZGVyQ29tcG9uZW50LFxuICAgIG1hdGNoQ29tcG9uZW50OiBtYXRjaENvbXBvbmVudCxcbiAgfTtcblxuICBzd2l0Y2ggKGJyYWNrZXREYXRhLm1vZGUpIHtcbiAgICBjYXNlIFRPVVJOQU1FTlRfTU9ERS5ET1VCTEVfRUxJTUlOQVRJT046XG4gICAgICByZXR1cm4gZ2VuZXJhdGVEb3VibGVFbGltaW5hdGlvbkdyaWRQbGFjZW1lbnRzKFxuICAgICAgICBicmFja2V0RGF0YSxcbiAgICAgICAgcm91bmRUeXBlTWFwLFxuICAgICAgICByb3VuZFJlbGF0aW9ucyxcbiAgICAgICAgbWF0Y2hSZWxhdGlvbnMsXG4gICAgICAgIG9wdGlvbnNXaXRoRGVmYXVsdHMsXG4gICAgICApO1xuICAgIGNhc2UgVE9VUk5BTUVOVF9NT0RFLlNXSVNTX1dJVEhfRUxJTUlOQVRJT046IHtcbiAgICAgIGlmICghc3dpc3NHcm91cHMpIHRocm93IG5ldyBFcnJvcignU3dpc3MgZ3JvdXBzIGFyZSByZXF1aXJlZCBmb3Igc3dpc3Mgd2l0aCBlbGltaW5hdGlvbiBtb2RlJyk7XG5cbiAgICAgIHJldHVybiBnZW5lcmF0ZVN3aXNzV2l0aEVsaW1pbmF0aW9uR3JpZFBsYWNlbWVudHMoXG4gICAgICAgIGJyYWNrZXREYXRhLFxuICAgICAgICByb3VuZFR5cGVNYXAsXG4gICAgICAgIHN3aXNzR3JvdXBzLFxuICAgICAgICByb3VuZFJlbGF0aW9ucyxcbiAgICAgICAgbWF0Y2hSZWxhdGlvbnMsXG4gICAgICAgIG9wdGlvbnNXaXRoRGVmYXVsdHMsXG4gICAgICApO1xuICAgIH1cblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZ2VuZXJhdGVHZW5lcmljR3JpZFBsYWNlbWVudHMoXG4gICAgICAgIGJyYWNrZXREYXRhLFxuICAgICAgICByb3VuZFR5cGVNYXAsXG4gICAgICAgIHJvdW5kUmVsYXRpb25zLFxuICAgICAgICBtYXRjaFJlbGF0aW9ucyxcbiAgICAgICAgb3B0aW9uc1dpdGhEZWZhdWx0cyxcbiAgICAgICk7XG4gIH1cbn07XG5cbmNvbnN0IGdlbmVyYXRlR2VuZXJpY0dyaWRQbGFjZW1lbnRzID0gPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+KFxuICBicmFja2V0RGF0YTogQnJhY2tldERhdGE8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4sXG4gIHJvdW5kVHlwZU1hcDogQnJhY2tldFJvdW5kVHlwZU1hcDxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPixcbiAgcm91bmRSZWxhdGlvbnM6IEJyYWNrZXRSb3VuZFJlbGF0aW9uczxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPixcbiAgbWF0Y2hSZWxhdGlvbnM6IEJyYWNrZXRNYXRjaFJlbGF0aW9uc01hcDxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPixcbiAgb3B0aW9uczogR2VuZXJhdGVCcmFja2V0R3JpZEl0ZW1zT3B0aW9uc1dpdGhEZWZhdWx0czxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPixcbikgPT4ge1xuICBjb25zdCBncmlkSXRlbXM6IE1hcDxCcmFja2V0Um91bmRJZCwgQnJhY2tldEdyaWRSb3VuZEl0ZW08VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4+ID0gbmV3IE1hcCgpO1xuICBjb25zdCBmaXJzdFJvdW5kID0gYnJhY2tldERhdGEucm91bmRzLnZhbHVlcygpLm5leHQoKS52YWx1ZTtcblxuICBpZiAoIWZpcnN0Um91bmQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZpcnN0IHJvdW5kIGlzIG1pc3NpbmcnKTtcbiAgfVxuXG4gIGZvciAoY29uc3Qgcm91bmQgb2YgYnJhY2tldERhdGEucm91bmRzLnZhbHVlcygpKSB7XG4gICAgY29uc3Qgcm91bmRSZWxhdGlvbiA9IHJvdW5kUmVsYXRpb25zLmdldChyb3VuZC5pZCk7XG5cbiAgICBsZXQgY3VycmVudE1hdGNoUm93ID0gMTtcblxuICAgIGNvbnN0IGNvbHVtblN0YXJ0ID0gcm91bmQuaW5kZXggKyAxO1xuICAgIGNvbnN0IGNvbHVtbkVuZCA9IGNvbHVtblN0YXJ0ICsgMTtcblxuICAgIGlmICghcm91bmRSZWxhdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdSb3VuZCByZWxhdGlvbiBpcyBtaXNzaW5nJyk7XG4gICAgfVxuXG4gICAgaWYgKHJvdW5kUmVsYXRpb24udHlwZSA9PT0gJ3R3by10by1ub3RoaW5nJyB8fCByb3VuZFJlbGF0aW9uLnR5cGUgPT09ICd0d28tdG8tb25lJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHJlbGF0aW9uIHR5cGUgJHtyb3VuZFJlbGF0aW9uLnR5cGV9YCk7XG4gICAgfVxuXG4gICAgY29uc3Qgcm91bmRJdGVtOiBCcmFja2V0R3JpZFJvdW5kSXRlbTxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPiA9IHtcbiAgICAgIGlkOiByb3VuZC5pZCxcbiAgICAgIGNvbHVtblN0YXJ0LFxuICAgICAgY29sdW1uRW5kLFxuICAgICAgcm91bmRSZWxhdGlvbixcbiAgICAgIGl0ZW1zOiBuZXcgTWFwKCksXG4gICAgfTtcblxuICAgIGlmIChvcHRpb25zLmluY2x1ZGVSb3VuZEhlYWRlcnMpIHtcbiAgICAgIGNvbnN0IHJvdW5kSGVhZGVySXRlbTogQnJhY2tldEdyaWRSb3VuZEhlYWRlckl0ZW08VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4gPSB7XG4gICAgICAgIHR5cGU6ICdyb3VuZCcsXG4gICAgICAgIGlkOiByb3VuZC5pZCxcbiAgICAgICAgcm93U3RhcnQ6IGN1cnJlbnRNYXRjaFJvdyxcbiAgICAgICAgcm93RW5kOiArK2N1cnJlbnRNYXRjaFJvdyxcbiAgICAgICAgY29tcG9uZW50OiBvcHRpb25zLmhlYWRlckNvbXBvbmVudCxcbiAgICAgICAgcm91bmRSZWxhdGlvbixcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGJyYWNrZXRSb3VuZDogcm91bmQsXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICByb3VuZEl0ZW0uaXRlbXMuc2V0KHJvdW5kLmlkLCByb3VuZEhlYWRlckl0ZW0pO1xuICAgIH1cblxuICAgIGNvbnN0IHJvb3RSb3VuZE1hdGNoRmFjdG9yID0gcm91bmRSZWxhdGlvbi50eXBlICE9PSAnbm90aGluZy10by1vbmUnID8gcm91bmRSZWxhdGlvbi5yb290Um91bmRNYXRjaEZhY3RvciA6IG51bGw7XG4gICAgY29uc3QgbWF0Y2hIZWlnaHQgPSByb290Um91bmRNYXRjaEZhY3RvciA/IHJvb3RSb3VuZE1hdGNoRmFjdG9yIDogMTtcblxuICAgIGZvciAoY29uc3QgbWF0Y2ggb2Ygcm91bmQubWF0Y2hlcy52YWx1ZXMoKSkge1xuICAgICAgY29uc3QgbWF0Y2hSZWxhdGlvbiA9IG1hdGNoUmVsYXRpb25zLmdldChtYXRjaC5pZCk7XG5cbiAgICAgIGlmICghbWF0Y2hSZWxhdGlvbikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ01hdGNoIHJlbGF0aW9uIGlzIG1pc3NpbmcnKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgYmFzZVJvdyA9IG1hdGNoLmluZGV4SW5Sb3VuZCAqIG1hdGNoSGVpZ2h0O1xuXG4gICAgICBjb25zdCBtYXRjaEl0ZW06IEJyYWNrZXRHcmlkTWF0Y2hJdGVtPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+ID0ge1xuICAgICAgICB0eXBlOiAnbWF0Y2gnLFxuICAgICAgICBpZDogbWF0Y2guaWQsXG4gICAgICAgIHJvd1N0YXJ0OiBiYXNlUm93ICsgY3VycmVudE1hdGNoUm93LFxuICAgICAgICByb3dFbmQ6IGJhc2VSb3cgKyBjdXJyZW50TWF0Y2hSb3cgKyBtYXRjaEhlaWdodCxcbiAgICAgICAgY29tcG9uZW50OiBvcHRpb25zLm1hdGNoQ29tcG9uZW50LFxuICAgICAgICBtYXRjaFJlbGF0aW9uLFxuICAgICAgICByb3VuZFJlbGF0aW9uLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgYnJhY2tldFJvdW5kOiByb3VuZCxcbiAgICAgICAgICBicmFja2V0TWF0Y2g6IG1hdGNoLFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgcm91bmRJdGVtLml0ZW1zLnNldChtYXRjaC5pZCwgbWF0Y2hJdGVtKTtcbiAgICB9XG5cbiAgICBncmlkSXRlbXMuc2V0KHJvdW5kLmlkLCByb3VuZEl0ZW0pO1xuICB9XG5cbiAgcmV0dXJuIGdyaWRJdGVtcztcbn07XG5cbmNvbnN0IGdlbmVyYXRlRG91YmxlRWxpbWluYXRpb25HcmlkUGxhY2VtZW50cyA9IDxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPihcbiAgYnJhY2tldERhdGE6IEJyYWNrZXREYXRhPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+LFxuICByb3VuZFR5cGVNYXA6IEJyYWNrZXRSb3VuZFR5cGVNYXA8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4sXG4gIHJvdW5kUmVsYXRpb25zOiBCcmFja2V0Um91bmRSZWxhdGlvbnM8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4sXG4gIG1hdGNoUmVsYXRpb25zOiBCcmFja2V0TWF0Y2hSZWxhdGlvbnNNYXA8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4sXG4gIG9wdGlvbnM6IEdlbmVyYXRlQnJhY2tldEdyaWRJdGVtc09wdGlvbnNXaXRoRGVmYXVsdHM8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4sXG4pID0+IHtcbiAgY29uc3QgZ3JpZEl0ZW1zOiBNYXA8QnJhY2tldFJvdW5kSWQsIEJyYWNrZXRHcmlkUm91bmRJdGVtPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+PiA9IG5ldyBNYXAoKTtcblxuICByZXR1cm4gZ3JpZEl0ZW1zO1xufTtcblxuY29uc3QgZ2VuZXJhdGVTd2lzc1dpdGhFbGltaW5hdGlvbkdyaWRQbGFjZW1lbnRzID0gPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+KFxuICBicmFja2V0RGF0YTogQnJhY2tldERhdGE8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4sXG4gIHJvdW5kVHlwZU1hcDogQnJhY2tldFJvdW5kVHlwZU1hcDxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPixcbiAgc3dpc3NHcm91cHM6IEJyYWNrZXRSb3VuZE1hcFdpdGhTd2lzc0RhdGE8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4sXG4gIHJvdW5kUmVsYXRpb25zOiBCcmFja2V0Um91bmRSZWxhdGlvbnM8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4sXG4gIG1hdGNoUmVsYXRpb25zOiBCcmFja2V0TWF0Y2hSZWxhdGlvbnNNYXA8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4sXG4gIG9wdGlvbnM6IEdlbmVyYXRlQnJhY2tldEdyaWRJdGVtc09wdGlvbnNXaXRoRGVmYXVsdHM8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4sXG4pID0+IHtcbiAgY29uc3QgZ3JpZEl0ZW1zOiBNYXA8QnJhY2tldFJvdW5kSWQsIEJyYWNrZXRHcmlkUm91bmRJdGVtPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+PiA9IG5ldyBNYXAoKTtcblxuICByZXR1cm4gZ3JpZEl0ZW1zO1xufTtcbiJdfQ==
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './bracket-new';
|
|
2
|
+
export * from './draw-man';
|
|
3
|
+
export * from './grid-definitions';
|
|
4
|
+
export * from './grid-placements';
|
|
5
|
+
export * from './new-bracket-default-match.component';
|
|
6
|
+
export * from './new-bracket-default-round-header.component';
|
|
7
|
+
export * from './new-bracket.component';
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvYnJhY2tldC9jb21wb25lbnRzL25ldy1icmFja2V0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYnJhY2tldC1uZXcnO1xuZXhwb3J0ICogZnJvbSAnLi9kcmF3LW1hbic7XG5leHBvcnQgKiBmcm9tICcuL2dyaWQtZGVmaW5pdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9ncmlkLXBsYWNlbWVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9uZXctYnJhY2tldC1kZWZhdWx0LW1hdGNoLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL25ldy1icmFja2V0LWRlZmF1bHQtcm91bmQtaGVhZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL25ldy1icmFja2V0LmNvbXBvbmVudCc7XG4iXX0=
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, input, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class NewBracketDefaultMatchComponent {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.bracketRound = input.required();
|
|
6
|
+
this.bracketMatch = input.required();
|
|
7
|
+
}
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NewBracketDefaultMatchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.11", type: NewBracketDefaultMatchComponent, isStandalone: true, selector: "et-new-bracket-default-match", inputs: { bracketRound: { classPropertyName: "bracketRound", publicName: "bracketRound", isSignal: true, isRequired: true, transformFunction: null }, bracketMatch: { classPropertyName: "bracketMatch", publicName: "bracketMatch", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: "et-new-bracket-default-match-host" }, ngImport: i0, template: ` {{ bracketMatch().id }} `, isInline: true, styles: [".et-new-bracket-default-match-host{display:block;padding:8px;border:1px solid yellow;inline-size:250px;block-size:75px;display:flex;justify-content:center;align-items:center;box-sizing:border-box;font-size:12px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
10
|
+
}
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NewBracketDefaultMatchComponent, decorators: [{
|
|
12
|
+
type: Component,
|
|
13
|
+
args: [{ selector: 'et-new-bracket-default-match', template: ` {{ bracketMatch().id }} `, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
14
|
+
class: 'et-new-bracket-default-match-host',
|
|
15
|
+
}, styles: [".et-new-bracket-default-match-host{display:block;padding:8px;border:1px solid yellow;inline-size:250px;block-size:75px;display:flex;justify-content:center;align-items:center;box-sizing:border-box;font-size:12px}\n"] }]
|
|
16
|
+
}] });
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LWJyYWNrZXQtZGVmYXVsdC1tYXRjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvYnJhY2tldC9jb21wb25lbnRzL25ldy1icmFja2V0L25ldy1icmFja2V0LWRlZmF1bHQtbWF0Y2guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQTJCN0YsTUFBTSxPQUFPLCtCQUErQjtJQXhCNUM7UUF5QkUsaUJBQVksR0FBRyxLQUFLLENBQUMsUUFBUSxFQUF3QyxDQUFDO1FBQ3RFLGlCQUFZLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBd0MsQ0FBQztLQUN2RTsrR0FIWSwrQkFBK0I7bUdBQS9CLCtCQUErQiwyYkF0QmhDLDJCQUEyQjs7NEZBc0IxQiwrQkFBK0I7a0JBeEIzQyxTQUFTOytCQUNFLDhCQUE4QixZQUM5QiwyQkFBMkIsY0FDekIsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNKLEtBQUssRUFBRSxtQ0FBbUM7cUJBQzNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCcmFja2V0TWF0Y2gsIEJyYWNrZXRSb3VuZCB9IGZyb20gJy4vYnJhY2tldC1uZXcnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdldC1uZXctYnJhY2tldC1kZWZhdWx0LW1hdGNoJyxcbiAgdGVtcGxhdGU6IGAge3sgYnJhY2tldE1hdGNoKCkuaWQgfX0gYCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2V0LW5ldy1icmFja2V0LWRlZmF1bHQtbWF0Y2gtaG9zdCcsXG4gIH0sXG4gIHN0eWxlczogYFxuICAgIC5ldC1uZXctYnJhY2tldC1kZWZhdWx0LW1hdGNoLWhvc3Qge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwYWRkaW5nOiA4cHg7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB5ZWxsb3c7XG4gICAgICBpbmxpbmUtc2l6ZTogMjUwcHg7XG4gICAgICBibG9jay1zaXplOiA3NXB4O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgfVxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBOZXdCcmFja2V0RGVmYXVsdE1hdGNoQ29tcG9uZW50PFRSb3VuZERhdGEgPSB1bmtub3duLCBUTWF0Y2hEYXRhID0gdW5rbm93bj4ge1xuICBicmFja2V0Um91bmQgPSBpbnB1dC5yZXF1aXJlZDxCcmFja2V0Um91bmQ8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4+KCk7XG4gIGJyYWNrZXRNYXRjaCA9IGlucHV0LnJlcXVpcmVkPEJyYWNrZXRNYXRjaDxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPj4oKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, input, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class NewBracketDefaultRoundHeaderComponent {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.bracketRound = input.required();
|
|
6
|
+
}
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NewBracketDefaultRoundHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.11", type: NewBracketDefaultRoundHeaderComponent, isStandalone: true, selector: "et-new-bracket-default-round-header", inputs: { bracketRound: { classPropertyName: "bracketRound", publicName: "bracketRound", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: "et-new-bracket-default-round-header-host" }, ngImport: i0, template: ` {{ bracketRound().name }} `, isInline: true, styles: [".et-new-bracket-default-round-header-host{display:block;padding:8px;border:1px solid green;inline-size:250px;block-size:50px;display:flex;justify-content:center;align-items:center;box-sizing:border-box}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
9
|
+
}
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NewBracketDefaultRoundHeaderComponent, decorators: [{
|
|
11
|
+
type: Component,
|
|
12
|
+
args: [{ selector: 'et-new-bracket-default-round-header', template: ` {{ bracketRound().name }} `, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
13
|
+
class: 'et-new-bracket-default-round-header-host',
|
|
14
|
+
}, styles: [".et-new-bracket-default-round-header-host{display:block;padding:8px;border:1px solid green;inline-size:250px;block-size:50px;display:flex;justify-content:center;align-items:center;box-sizing:border-box}\n"] }]
|
|
15
|
+
}] });
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LWJyYWNrZXQtZGVmYXVsdC1yb3VuZC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL2JyYWNrZXQvY29tcG9uZW50cy9uZXctYnJhY2tldC9uZXctYnJhY2tldC1kZWZhdWx0LXJvdW5kLWhlYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBMEI3RixNQUFNLE9BQU8scUNBQXFDO0lBdkJsRDtRQXdCRSxpQkFBWSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQXdDLENBQUM7S0FDdkU7K0dBRlkscUNBQXFDO21HQUFyQyxxQ0FBcUMsNlRBckJ0Qyw2QkFBNkI7OzRGQXFCNUIscUNBQXFDO2tCQXZCakQsU0FBUzsrQkFDRSxxQ0FBcUMsWUFDckMsNkJBQTZCLGNBQzNCLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDSixLQUFLLEVBQUUsMENBQTBDO3FCQUNsRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGlucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnJhY2tldFJvdW5kIH0gZnJvbSAnLi9icmFja2V0LW5ldyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2V0LW5ldy1icmFja2V0LWRlZmF1bHQtcm91bmQtaGVhZGVyJyxcbiAgdGVtcGxhdGU6IGAge3sgYnJhY2tldFJvdW5kKCkubmFtZSB9fSBgLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnZXQtbmV3LWJyYWNrZXQtZGVmYXVsdC1yb3VuZC1oZWFkZXItaG9zdCcsXG4gIH0sXG4gIHN0eWxlczogYFxuICAgIC5ldC1uZXctYnJhY2tldC1kZWZhdWx0LXJvdW5kLWhlYWRlci1ob3N0IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcGFkZGluZzogOHB4O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgZ3JlZW47XG4gICAgICBpbmxpbmUtc2l6ZTogMjUwcHg7XG4gICAgICBibG9jay1zaXplOiA1MHB4O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgfVxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBOZXdCcmFja2V0RGVmYXVsdFJvdW5kSGVhZGVyQ29tcG9uZW50PFRSb3VuZERhdGEgPSB1bmtub3duLCBUTWF0Y2hEYXRhID0gdW5rbm93bj4ge1xuICBicmFja2V0Um91bmQgPSBpbnB1dC5yZXF1aXJlZDxCcmFja2V0Um91bmQ8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4+KCk7XG59XG4iXX0=
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { NgComponentOutlet } from '@angular/common';
|
|
2
|
+
import { booleanAttribute, ChangeDetectionStrategy, Component, computed, inject, input, numberAttribute, ViewEncapsulation, } from '@angular/core';
|
|
3
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
4
|
+
import { generateBracketRoundSwissGroupMaps, generateBracketRoundTypeMap, generateMatchParticipantMap, generateMatchPositionMaps, generateMatchRelations, generateRoundRelations, } from './bracket-new';
|
|
5
|
+
import { drawMan } from './draw-man';
|
|
6
|
+
import { generateBracketGridDefinitions } from './grid-definitions';
|
|
7
|
+
import { generateBracketGridItems } from './grid-placements';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
export class NewBracketComponent {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.#domSanitizer = inject(DomSanitizer);
|
|
12
|
+
this.bracketData = input.required();
|
|
13
|
+
this.columnWidth = input(250, { transform: numberAttribute });
|
|
14
|
+
this.matchHeight = input(75, { transform: numberAttribute });
|
|
15
|
+
this.roundHeaderHeight = input(50, { transform: numberAttribute });
|
|
16
|
+
this.columnGap = input(60, { transform: numberAttribute });
|
|
17
|
+
this.rowGap = input(30, { transform: numberAttribute });
|
|
18
|
+
this.hideRoundHeaders = input(false, { transform: booleanAttribute });
|
|
19
|
+
this.roundHeaderComponent = input();
|
|
20
|
+
this.matchComponent = input();
|
|
21
|
+
this.roundTypeMap = computed(() => generateBracketRoundTypeMap(this.bracketData()));
|
|
22
|
+
this.matchParticipantMap = computed(() => generateMatchParticipantMap(this.bracketData()));
|
|
23
|
+
this.matchPositionsMap = computed(() => generateMatchPositionMaps(this.bracketData()));
|
|
24
|
+
this.roundRelations = computed(() => generateRoundRelations(this.bracketData()));
|
|
25
|
+
this.matchRelations = computed(() => generateMatchRelations(this.bracketData(), this.roundRelations(), this.matchPositionsMap()));
|
|
26
|
+
this.swissGroups = computed(() => generateBracketRoundSwissGroupMaps(this.bracketData(), this.matchParticipantMap()));
|
|
27
|
+
this.items = computed(() => generateBracketGridItems(this.bracketData(), this.roundTypeMap(), this.swissGroups(), this.roundRelations(), this.matchRelations(), {
|
|
28
|
+
includeRoundHeaders: !this.hideRoundHeaders(),
|
|
29
|
+
headerComponent: this.roundHeaderComponent(),
|
|
30
|
+
matchComponent: this.matchComponent(),
|
|
31
|
+
}));
|
|
32
|
+
this.definitions = computed(() => generateBracketGridDefinitions(this.bracketData(), this.roundTypeMap(), {
|
|
33
|
+
includeRoundHeaders: !this.hideRoundHeaders(),
|
|
34
|
+
}));
|
|
35
|
+
this.drawManData = computed(() => this.#domSanitizer.bypassSecurityTrustHtml(drawMan(this.items(), this.roundRelations(), {
|
|
36
|
+
columnGap: this.columnGap(),
|
|
37
|
+
columnWidth: this.columnWidth(),
|
|
38
|
+
matchHeight: this.matchHeight(),
|
|
39
|
+
roundHeaderHeight: this.hideRoundHeaders() ? 0 : this.roundHeaderHeight(),
|
|
40
|
+
rowGap: this.rowGap(),
|
|
41
|
+
gridDefinitions: this.definitions(),
|
|
42
|
+
})));
|
|
43
|
+
}
|
|
44
|
+
#domSanitizer;
|
|
45
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NewBracketComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
46
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.11", type: NewBracketComponent, isStandalone: true, selector: "et-new-bracket", inputs: { bracketData: { classPropertyName: "bracketData", publicName: "bracketData", isSignal: true, isRequired: true, transformFunction: null }, columnWidth: { classPropertyName: "columnWidth", publicName: "columnWidth", isSignal: true, isRequired: false, transformFunction: null }, matchHeight: { classPropertyName: "matchHeight", publicName: "matchHeight", isSignal: true, isRequired: false, transformFunction: null }, roundHeaderHeight: { classPropertyName: "roundHeaderHeight", publicName: "roundHeaderHeight", isSignal: true, isRequired: false, transformFunction: null }, columnGap: { classPropertyName: "columnGap", publicName: "columnGap", isSignal: true, isRequired: false, transformFunction: null }, rowGap: { classPropertyName: "rowGap", publicName: "rowGap", isSignal: true, isRequired: false, transformFunction: null }, hideRoundHeaders: { classPropertyName: "hideRoundHeaders", publicName: "hideRoundHeaders", isSignal: true, isRequired: false, transformFunction: null }, roundHeaderComponent: { classPropertyName: "roundHeaderComponent", publicName: "roundHeaderComponent", isSignal: true, isRequired: false, transformFunction: null }, matchComponent: { classPropertyName: "matchComponent", publicName: "matchComponent", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "et-new-bracket-host" }, ngImport: i0, template: "<section\n [style.--_cw.px]=\"columnWidth()\"\n [style.--_mh.px]=\"matchHeight()\"\n [style.--_rhh.px]=\"roundHeaderHeight()\"\n [style.--_cg.px]=\"columnGap()\"\n [style.--_rg.px]=\"rowGap()\"\n [style.--_bcc]=\"definitions().columnCount\"\n [style.--_brc]=\"definitions().rowCount\"\n class=\"et-bracket-new\"\n>\n <svg [innerHTML]=\"drawManData()\" class=\"et-bracket-new-svg\" xmlns=\"http://www.w3.org/2000/svg\" />\n\n @for (round of items().values(); track round.id) {\n <ul [style.--_c]=\"round.columnStart + ' / ' + round.columnEnd\" class=\"et-bracket-new-round\">\n @for (item of round.items.values(); track item.id) {\n <li [style.--_r]=\"item.rowStart + ' / ' + item.rowEnd\" class=\"et-bracket-new-item\">\n <ng-container *ngComponentOutlet=\"item.component; inputs: item.data\" />\n </li>\n }\n </ul>\n }\n</section>\n", styles: [".et-bracket-new{display:grid;gap:var(--_cg);grid-auto-columns:var(--_cw)}.et-bracket-new-round{display:grid;grid-column:var(--_c);grid-row:1;list-style:none;margin:0;padding:0;gap:var(--_rg);grid-template-rows:var(--_rhh);grid-auto-rows:var(--_mh)}.et-bracket-new-item{grid-row:var(--_r);place-self:center}.et-bracket-new-svg{grid-column:1/calc(var(--_bcc) + 1);grid-row:1/2;inline-size:100%;block-size:100%}\n"], dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
47
|
+
}
|
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NewBracketComponent, decorators: [{
|
|
49
|
+
type: Component,
|
|
50
|
+
args: [{ selector: 'et-new-bracket', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
51
|
+
class: 'et-new-bracket-host',
|
|
52
|
+
}, imports: [NgComponentOutlet], template: "<section\n [style.--_cw.px]=\"columnWidth()\"\n [style.--_mh.px]=\"matchHeight()\"\n [style.--_rhh.px]=\"roundHeaderHeight()\"\n [style.--_cg.px]=\"columnGap()\"\n [style.--_rg.px]=\"rowGap()\"\n [style.--_bcc]=\"definitions().columnCount\"\n [style.--_brc]=\"definitions().rowCount\"\n class=\"et-bracket-new\"\n>\n <svg [innerHTML]=\"drawManData()\" class=\"et-bracket-new-svg\" xmlns=\"http://www.w3.org/2000/svg\" />\n\n @for (round of items().values(); track round.id) {\n <ul [style.--_c]=\"round.columnStart + ' / ' + round.columnEnd\" class=\"et-bracket-new-round\">\n @for (item of round.items.values(); track item.id) {\n <li [style.--_r]=\"item.rowStart + ' / ' + item.rowEnd\" class=\"et-bracket-new-item\">\n <ng-container *ngComponentOutlet=\"item.component; inputs: item.data\" />\n </li>\n }\n </ul>\n }\n</section>\n", styles: [".et-bracket-new{display:grid;gap:var(--_cg);grid-auto-columns:var(--_cw)}.et-bracket-new-round{display:grid;grid-column:var(--_c);grid-row:1;list-style:none;margin:0;padding:0;gap:var(--_rg);grid-template-rows:var(--_rhh);grid-auto-rows:var(--_mh)}.et-bracket-new-item{grid-row:var(--_r);place-self:center}.et-bracket-new-svg{grid-column:1/calc(var(--_bcc) + 1);grid-row:1/2;inline-size:100%;block-size:100%}\n"] }]
|
|
53
|
+
}] });
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LWJyYWNrZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL2JyYWNrZXQvY29tcG9uZW50cy9uZXctYnJhY2tldC9uZXctYnJhY2tldC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvYnJhY2tldC9jb21wb25lbnRzL25ldy1icmFja2V0L25ldy1icmFja2V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsTUFBTSxFQUNOLEtBQUssRUFDTCxlQUFlLEVBQ2YsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBRUwsa0NBQWtDLEVBQ2xDLDJCQUEyQixFQUMzQiwyQkFBMkIsRUFDM0IseUJBQXlCLEVBQ3pCLHNCQUFzQixFQUN0QixzQkFBc0IsR0FDdkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNyQyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRSxPQUFPLEVBQXNELHdCQUF3QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBY2pILE1BQU0sT0FBTyxtQkFBbUI7SUFaaEM7UUFhRSxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNyQyxnQkFBVyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQXVDLENBQUM7UUFFcEUsZ0JBQVcs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LEVBQUU7WUFDL0IsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDL0IsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ3pFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ3JCLGVBQWUsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFO1NBQ3BDLENBQUMsQ0FDSCxDQUNGLENBQUM7S0FDSDtJQTFEQyxhQUFhLENBQXdCOytHQUQxQixtQkFBbUI7bUdBQW5CLG1CQUFtQixnNUNDckNoQyxxM0JBc0JBLG9kRGFZLGlCQUFpQjs7NEZBRWhCLG1CQUFtQjtrQkFaL0IsU0FBUzsrQkFDRSxnQkFBZ0IsY0FHZCxJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksUUFDL0I7d0JBQ0osS0FBSyxFQUFFLHFCQUFxQjtxQkFDN0IsV0FDUSxDQUFDLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDb21wb25lbnRPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgY29tcHV0ZWQsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIG51bWJlckF0dHJpYnV0ZSxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQge1xuICBCcmFja2V0RGF0YSxcbiAgZ2VuZXJhdGVCcmFja2V0Um91bmRTd2lzc0dyb3VwTWFwcyxcbiAgZ2VuZXJhdGVCcmFja2V0Um91bmRUeXBlTWFwLFxuICBnZW5lcmF0ZU1hdGNoUGFydGljaXBhbnRNYXAsXG4gIGdlbmVyYXRlTWF0Y2hQb3NpdGlvbk1hcHMsXG4gIGdlbmVyYXRlTWF0Y2hSZWxhdGlvbnMsXG4gIGdlbmVyYXRlUm91bmRSZWxhdGlvbnMsXG59IGZyb20gJy4vYnJhY2tldC1uZXcnO1xuaW1wb3J0IHsgZHJhd01hbiB9IGZyb20gJy4vZHJhdy1tYW4nO1xuaW1wb3J0IHsgZ2VuZXJhdGVCcmFja2V0R3JpZERlZmluaXRpb25zIH0gZnJvbSAnLi9ncmlkLWRlZmluaXRpb25zJztcbmltcG9ydCB7IEJyYWNrZXRNYXRjaENvbXBvbmVudCwgQnJhY2tldFJvdW5kSGVhZGVyQ29tcG9uZW50LCBnZW5lcmF0ZUJyYWNrZXRHcmlkSXRlbXMgfSBmcm9tICcuL2dyaWQtcGxhY2VtZW50cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2V0LW5ldy1icmFja2V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL25ldy1icmFja2V0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL25ldy1icmFja2V0LmNvbXBvbmVudC5zY3NzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2V0LW5ldy1icmFja2V0LWhvc3QnLFxuICB9LFxuICBpbXBvcnRzOiBbTmdDb21wb25lbnRPdXRsZXRdLFxufSlcbmV4cG9ydCBjbGFzcyBOZXdCcmFja2V0Q29tcG9uZW50PFRSb3VuZERhdGEgPSB1bmtub3duLCBUTWF0Y2hEYXRhID0gdW5rbm93bj4ge1xuICAjZG9tU2FuaXRpemVyID0gaW5qZWN0KERvbVNhbml0aXplcik7XG4gIGJyYWNrZXREYXRhID0gaW5wdXQucmVxdWlyZWQ8QnJhY2tldERhdGE8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4+KCk7XG5cbiAgY29sdW1uV2lkdGggPSBpbnB1dCgyNTAsIHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSk7XG4gIG1hdGNoSGVpZ2h0ID0gaW5wdXQoNzUsIHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSk7XG4gIHJvdW5kSGVhZGVySGVpZ2h0ID0gaW5wdXQoNTAsIHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSk7XG4gIGNvbHVtbkdhcCA9IGlucHV0KDYwLCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pO1xuICByb3dHYXAgPSBpbnB1dCgzMCwgeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KTtcblxuICBoaWRlUm91bmRIZWFkZXJzID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG4gIHJvdW5kSGVhZGVyQ29tcG9uZW50ID0gaW5wdXQ8QnJhY2tldFJvdW5kSGVhZGVyQ29tcG9uZW50PFRSb3VuZERhdGEsIFRNYXRjaERhdGE+IHwgdW5kZWZpbmVkPigpO1xuICBtYXRjaENvbXBvbmVudCA9IGlucHV0PEJyYWNrZXRNYXRjaENvbXBvbmVudDxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPiB8IHVuZGVmaW5lZD4oKTtcblxuICByb3VuZFR5cGVNYXAgPSBjb21wdXRlZCgoKSA9PiBnZW5lcmF0ZUJyYWNrZXRSb3VuZFR5cGVNYXAodGhpcy5icmFja2V0RGF0YSgpKSk7XG4gIG1hdGNoUGFydGljaXBhbnRNYXAgPSBjb21wdXRlZCgoKSA9PiBnZW5lcmF0ZU1hdGNoUGFydGljaXBhbnRNYXAodGhpcy5icmFja2V0RGF0YSgpKSk7XG4gIG1hdGNoUG9zaXRpb25zTWFwID0gY29tcHV0ZWQoKCkgPT4gZ2VuZXJhdGVNYXRjaFBvc2l0aW9uTWFwcyh0aGlzLmJyYWNrZXREYXRhKCkpKTtcblxuICByb3VuZFJlbGF0aW9ucyA9IGNvbXB1dGVkKCgpID0+IGdlbmVyYXRlUm91bmRSZWxhdGlvbnModGhpcy5icmFja2V0RGF0YSgpKSk7XG4gIG1hdGNoUmVsYXRpb25zID0gY29tcHV0ZWQoKCkgPT5cbiAgICBnZW5lcmF0ZU1hdGNoUmVsYXRpb25zKHRoaXMuYnJhY2tldERhdGEoKSwgdGhpcy5yb3VuZFJlbGF0aW9ucygpLCB0aGlzLm1hdGNoUG9zaXRpb25zTWFwKCkpLFxuICApO1xuXG4gIHN3aXNzR3JvdXBzID0gY29tcHV0ZWQoKCkgPT4gZ2VuZXJhdGVCcmFja2V0Um91bmRTd2lzc0dyb3VwTWFwcyh0aGlzLmJyYWNrZXREYXRhKCksIHRoaXMubWF0Y2hQYXJ0aWNpcGFudE1hcCgpKSk7XG5cbiAgaXRlbXMgPSBjb21wdXRlZCgoKSA9PlxuICAgIGdlbmVyYXRlQnJhY2tldEdyaWRJdGVtcyhcbiAgICAgIHRoaXMuYnJhY2tldERhdGEoKSxcbiAgICAgIHRoaXMucm91bmRUeXBlTWFwKCksXG4gICAgICB0aGlzLnN3aXNzR3JvdXBzKCksXG4gICAgICB0aGlzLnJvdW5kUmVsYXRpb25zKCksXG4gICAgICB0aGlzLm1hdGNoUmVsYXRpb25zKCksXG4gICAgICB7XG4gICAgICAgIGluY2x1ZGVSb3VuZEhlYWRlcnM6ICF0aGlzLmhpZGVSb3VuZEhlYWRlcnMoKSxcbiAgICAgICAgaGVhZGVyQ29tcG9uZW50OiB0aGlzLnJvdW5kSGVhZGVyQ29tcG9uZW50KCksXG4gICAgICAgIG1hdGNoQ29tcG9uZW50OiB0aGlzLm1hdGNoQ29tcG9uZW50KCksXG4gICAgICB9LFxuICAgICksXG4gICk7XG5cbiAgZGVmaW5pdGlvbnMgPSBjb21wdXRlZCgoKSA9PlxuICAgIGdlbmVyYXRlQnJhY2tldEdyaWREZWZpbml0aW9ucyh0aGlzLmJyYWNrZXREYXRhKCksIHRoaXMucm91bmRUeXBlTWFwKCksIHtcbiAgICAgIGluY2x1ZGVSb3VuZEhlYWRlcnM6ICF0aGlzLmhpZGVSb3VuZEhlYWRlcnMoKSxcbiAgICB9KSxcbiAgKTtcblxuICBkcmF3TWFuRGF0YSA9IGNvbXB1dGVkKCgpID0+XG4gICAgdGhpcy4jZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKFxuICAgICAgZHJhd01hbih0aGlzLml0ZW1zKCksIHRoaXMucm91bmRSZWxhdGlvbnMoKSwge1xuICAgICAgICBjb2x1bW5HYXA6IHRoaXMuY29sdW1uR2FwKCksXG4gICAgICAgIGNvbHVtbldpZHRoOiB0aGlzLmNvbHVtbldpZHRoKCksXG4gICAgICAgIG1hdGNoSGVpZ2h0OiB0aGlzLm1hdGNoSGVpZ2h0KCksXG4gICAgICAgIHJvdW5kSGVhZGVySGVpZ2h0OiB0aGlzLmhpZGVSb3VuZEhlYWRlcnMoKSA/IDAgOiB0aGlzLnJvdW5kSGVhZGVySGVpZ2h0KCksXG4gICAgICAgIHJvd0dhcDogdGhpcy5yb3dHYXAoKSxcbiAgICAgICAgZ3JpZERlZmluaXRpb25zOiB0aGlzLmRlZmluaXRpb25zKCksXG4gICAgICB9KSxcbiAgICApLFxuICApO1xufVxuIiwiPHNlY3Rpb25cbiAgW3N0eWxlLi0tX2N3LnB4XT1cImNvbHVtbldpZHRoKClcIlxuICBbc3R5bGUuLS1fbWgucHhdPVwibWF0Y2hIZWlnaHQoKVwiXG4gIFtzdHlsZS4tLV9yaGgucHhdPVwicm91bmRIZWFkZXJIZWlnaHQoKVwiXG4gIFtzdHlsZS4tLV9jZy5weF09XCJjb2x1bW5HYXAoKVwiXG4gIFtzdHlsZS4tLV9yZy5weF09XCJyb3dHYXAoKVwiXG4gIFtzdHlsZS4tLV9iY2NdPVwiZGVmaW5pdGlvbnMoKS5jb2x1bW5Db3VudFwiXG4gIFtzdHlsZS4tLV9icmNdPVwiZGVmaW5pdGlvbnMoKS5yb3dDb3VudFwiXG4gIGNsYXNzPVwiZXQtYnJhY2tldC1uZXdcIlxuPlxuICA8c3ZnIFtpbm5lckhUTUxdPVwiZHJhd01hbkRhdGEoKVwiIGNsYXNzPVwiZXQtYnJhY2tldC1uZXctc3ZnXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIC8+XG5cbiAgQGZvciAocm91bmQgb2YgaXRlbXMoKS52YWx1ZXMoKTsgdHJhY2sgcm91bmQuaWQpIHtcbiAgICA8dWwgW3N0eWxlLi0tX2NdPVwicm91bmQuY29sdW1uU3RhcnQgKyAnIC8gJyArIHJvdW5kLmNvbHVtbkVuZFwiIGNsYXNzPVwiZXQtYnJhY2tldC1uZXctcm91bmRcIj5cbiAgICAgIEBmb3IgKGl0ZW0gb2Ygcm91bmQuaXRlbXMudmFsdWVzKCk7IHRyYWNrIGl0ZW0uaWQpIHtcbiAgICAgICAgPGxpIFtzdHlsZS4tLV9yXT1cIml0ZW0ucm93U3RhcnQgKyAnIC8gJyArIGl0ZW0ucm93RW5kXCIgY2xhc3M9XCJldC1icmFja2V0LW5ldy1pdGVtXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdDb21wb25lbnRPdXRsZXQ9XCJpdGVtLmNvbXBvbmVudDsgaW5wdXRzOiBpdGVtLmRhdGFcIiAvPlxuICAgICAgICA8L2xpPlxuICAgICAgfVxuICAgIDwvdWw+XG4gIH1cbjwvc2VjdGlvbj5cbiJdfQ==
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * from '../bracket.imports';
|
|
2
2
|
export * from '../components/bracket';
|
|
3
|
+
export * as BracketNew from '../components/new-bracket';
|
|
3
4
|
export * from '../constants';
|
|
4
5
|
export * from '../directives/bracket-match';
|
|
5
6
|
export * from '../directives/bracket-round';
|
|
@@ -7,4 +8,4 @@ export * from '../partials/bracket-match';
|
|
|
7
8
|
export * from '../partials/bracket-round-header';
|
|
8
9
|
export * from '../types';
|
|
9
10
|
export * from '../utils';
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvYnJhY2tldC9wdWJsaWMtYXBpL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxPQUFPLEtBQUssVUFBVSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hELGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuLi9icmFja2V0LmltcG9ydHMnO1xuZXhwb3J0ICogZnJvbSAnLi4vY29tcG9uZW50cy9icmFja2V0JztcbmV4cG9ydCAqIGFzIEJyYWNrZXROZXcgZnJvbSAnLi4vY29tcG9uZW50cy9uZXctYnJhY2tldCc7XG5leHBvcnQgKiBmcm9tICcuLi9jb25zdGFudHMnO1xuZXhwb3J0ICogZnJvbSAnLi4vZGlyZWN0aXZlcy9icmFja2V0LW1hdGNoJztcbmV4cG9ydCAqIGZyb20gJy4uL2RpcmVjdGl2ZXMvYnJhY2tldC1yb3VuZCc7XG5leHBvcnQgKiBmcm9tICcuLi9wYXJ0aWFscy9icmFja2V0LW1hdGNoJztcbmV4cG9ydCAqIGZyb20gJy4uL3BhcnRpYWxzL2JyYWNrZXQtcm91bmQtaGVhZGVyJztcbmV4cG9ydCAqIGZyb20gJy4uL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4uL3V0aWxzJztcbiJdfQ==
|