@johnmorrisdotca/kyogijo-stadiums 0.21.0 → 0.23.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 +17 -0
- package/NOTICE.md +1 -1
- package/README.md +42 -26
- package/dist/budo/describe.js +25 -0
- package/dist/budo/looks.js +13 -4
- package/dist/budo/mat.d.ts +34 -0
- package/dist/budo/mat.js +71 -0
- package/dist/budo/plan.d.ts +3 -0
- package/dist/budo/plan.js +18 -3
- package/dist/budo/ring.js +7 -4
- package/dist/budo/types.d.ts +6 -4
- package/dist/budo.style.js +7 -4
- package/dist/crowd.js +4 -0
- package/dist/draw.js +5 -3
- package/dist/features.js +19 -0
- package/dist/fields.types.d.ts +1 -1
- package/dist/heat.zones.js +1 -1
- package/dist/homeside.js +4 -0
- package/dist/leagues/combat.d.ts +60 -2
- package/dist/leagues/combat.js +66 -1
- package/dist/leagues/sources.js +6 -0
- package/dist/leagues/types.d.ts +1 -1
- package/dist/leagues.d.ts +1 -1
- package/dist/leagues.js +42 -3
- package/dist/outline.js +2 -0
- package/dist/ranges.names.js +2 -0
- package/dist/score.js +6 -0
- package/dist/strings.d.ts +11 -0
- package/dist/strings.js +31 -9
- package/dist/types.d.ts +2 -2
- package/dist/units.js +4 -0
- package/dist/uprights.budo.js +9 -2
- package/dist/uprights.js +1 -1
- package/dist/uprights.ring.js +2 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
package/dist/draw.js
CHANGED
|
@@ -91,7 +91,7 @@ import { abbreviate, capitals } from "./text.js";
|
|
|
91
91
|
import { VERSION } from "./version.js";
|
|
92
92
|
export { isPortrait };
|
|
93
93
|
/** The sports that can be drawn, in the order a menu lists them. */
|
|
94
|
-
export const SPORTS = ["nfl", "cfl", "ifaf", "nhl", "nba", "mlb", "soccer", "curling", "tennis", "volleyball", "badminton", "pickleball", "tabletennis", "padel", "squash", "racquetball", "sepaktakraw", "teqball", "roundnet", "netball", "swimming", "waterpolo", "diving", "artisticswimming", "athletics", "skating", "judo", "karate", "kendo", "sumo", "kyudo", "dojo", "mma", "boxing", "lacrosse", "rugby", "afl", "gaelic", "cricket", "fieldhockey", "handball"];
|
|
94
|
+
export const SPORTS = ["nfl", "cfl", "ifaf", "nhl", "nba", "mlb", "soccer", "curling", "tennis", "volleyball", "badminton", "pickleball", "tabletennis", "padel", "squash", "racquetball", "sepaktakraw", "teqball", "roundnet", "netball", "swimming", "waterpolo", "diving", "artisticswimming", "athletics", "skating", "judo", "karate", "kendo", "sumo", "kyudo", "dojo", "mma", "boxing", "wrestling", "prowrestling", "lacrosse", "rugby", "afl", "gaelic", "cricket", "fieldhockey", "handball"];
|
|
95
95
|
/** The CSS custom property each colour of `Colors` sets. */
|
|
96
96
|
export const COLOR_PROPERTIES = {
|
|
97
97
|
apron: "--ky-apron",
|
|
@@ -265,7 +265,7 @@ function buildSkating(o, common) {
|
|
|
265
265
|
/** The budō surface: its plan, drawn as it lies. A hall, a kyūdōjō and a range of mats have little ground round them. */
|
|
266
266
|
function buildBudo(o, common) {
|
|
267
267
|
const plan = budoPlan({ ...o, detail: common.detail });
|
|
268
|
-
return budoSurface(common, plan, common.margin ?? (o.range === undefined ? (plan.mma === undefined && plan.boxing === undefined ? 12 : 5) : 4));
|
|
268
|
+
return budoSurface(common, plan, common.margin ?? (o.range === undefined ? (plan.mma === undefined && plan.boxing === undefined && plan.wrestling === undefined && plan.prowrestling === undefined ? 12 : 5) : 4));
|
|
269
269
|
}
|
|
270
270
|
/** One text for both ends or sides, or a pair of them. */
|
|
271
271
|
const pair = (text) => (text === undefined ? undefined : typeof text === "string" ? [text, text] : text);
|
|
@@ -375,6 +375,8 @@ function buildWhole(o, portrait, id, score, scored, extra) {
|
|
|
375
375
|
case "dojo":
|
|
376
376
|
case "mma":
|
|
377
377
|
case "boxing":
|
|
378
|
+
case "wrestling":
|
|
379
|
+
case "prowrestling":
|
|
378
380
|
return buildBudo({ ...o, sport }, common);
|
|
379
381
|
default:
|
|
380
382
|
throw new Error(`Unknown sport "${String(o.sport)}": use one of ${SPORTS.join(", ")}`);
|
|
@@ -610,7 +612,7 @@ function leagueAbout(league, year, language, sheet) {
|
|
|
610
612
|
const words = KYOGIJO_STRINGS[language].league;
|
|
611
613
|
if (league.family === "skating")
|
|
612
614
|
return skatingAbout({ sport: "skating", league: league.id }, language);
|
|
613
|
-
if (league.family === "judo" || league.family === "karate" || league.family === "kendo" || league.family === "sumo" || league.family === "kyudo" || league.family === "dojo" || league.family === "mma" || league.family === "boxing")
|
|
615
|
+
if (league.family === "judo" || league.family === "karate" || league.family === "kendo" || league.family === "sumo" || league.family === "kyudo" || league.family === "dojo" || league.family === "mma" || league.family === "boxing" || league.family === "wrestling" || league.family === "prowrestling")
|
|
614
616
|
return budoAbout({ sport: league.family, league: league.id }, language);
|
|
615
617
|
if (league.family === "athletics")
|
|
616
618
|
return athleticsAbout({ sport: "athletics", league: league.id, athletics: sheet === undefined ? undefined : undefined }, language);
|
package/dist/features.js
CHANGED
|
@@ -144,6 +144,23 @@ const BOXING = [
|
|
|
144
144
|
f("steps", "--ky-bud-floor", "The steps up to the platform."),
|
|
145
145
|
f("corners", "--ky-ink", "The four corner posts with their pads."),
|
|
146
146
|
];
|
|
147
|
+
const WRESTLING = [
|
|
148
|
+
f("apron", "--ky-apron", "The floor of the hall round the mat."),
|
|
149
|
+
f("platform", "--ky-bud-floor", "The platform the mat stands on."),
|
|
150
|
+
f("border", "--ky-surface-alt", "The matted area round the circle (the UWW's protection area)."),
|
|
151
|
+
f("circle", "--ky-surface", "The wrestling area, inside the circle."),
|
|
152
|
+
f("passivity", "--ky-red", "The orange passivity band of the UWW's mat."),
|
|
153
|
+
f("rim", "--ky-line", "The line that outlines a folkstyle circle."),
|
|
154
|
+
f("centre-circle", "--ky-line", "The circle in the middle of the mat."),
|
|
155
|
+
f("starting-lines", "--ky-line", "The two starting lines of a folkstyle mat with their green and red ends."),
|
|
156
|
+
];
|
|
157
|
+
const PROWRESTLING = [
|
|
158
|
+
f("apron", "--ky-apron", "The floor of the hall round the platform."),
|
|
159
|
+
f("canvas", "--ky-surface", "The canvas of the platform, ring and apron."),
|
|
160
|
+
f("ropes", "--ky-bud-rope", "The three ropes, and their extensions to the posts."),
|
|
161
|
+
f("steps", "--ky-bud-floor", "The steps beside the platform."),
|
|
162
|
+
f("corners", "--ky-ink", "The four corner posts with their pads."),
|
|
163
|
+
];
|
|
147
164
|
const KYUDO = [
|
|
148
165
|
f("apron", "--ky-apron", "The ground round the range."),
|
|
149
166
|
f("shajo", "--ky-bud-floor", "The floor of the shajō."),
|
|
@@ -453,6 +470,8 @@ export const FEATURE_INFO = Object.freeze({
|
|
|
453
470
|
dojo: DOJO,
|
|
454
471
|
mma: MMA,
|
|
455
472
|
boxing: BOXING,
|
|
473
|
+
wrestling: WRESTLING,
|
|
474
|
+
prowrestling: PROWRESTLING,
|
|
456
475
|
});
|
|
457
476
|
/**
|
|
458
477
|
* The names of the features of each sport: the keys `featureColors` takes. Football's three fields have the same, and so have the five net sports.
|
package/dist/fields.types.d.ts
CHANGED
|
@@ -24,7 +24,7 @@ export type AthleticsMark = "ky-ath-y" | "ky-ath-b" | "ky-ath-g" | "ky-ath-k" |
|
|
|
24
24
|
export type SkatingMark = "ky-ska-b" | "ky-ska-r" | "ky-ska-k" | "ky-ska-blocks";
|
|
25
25
|
/** The coloured marks of a budō surface: the white line, the blue, white and red tape, the seam between mats. */
|
|
26
26
|
/** The fills of a budō surface's tape: blue, white, red and ink. */
|
|
27
|
-
export type BudoFill = "ky-bud-blue-fill" | "ky-bud-white-fill" | "ky-bud-red-fill" | "ky-bud-ink-fill";
|
|
27
|
+
export type BudoFill = "ky-bud-blue-fill" | "ky-bud-white-fill" | "ky-bud-red-fill" | "ky-bud-ink-fill" | "ky-bud-green-fill";
|
|
28
28
|
export type BudoMark = "ky-bud-line" | "ky-bud-blue" | "ky-bud-white" | "ky-bud-red" | "ky-bud-seam" | "ky-bud-ink" | "ky-bud-rope";
|
|
29
29
|
/** A line from one point to another. */
|
|
30
30
|
export interface LineShape extends Stroked {
|
package/dist/heat.zones.js
CHANGED
|
@@ -37,7 +37,7 @@ export const ZONE_SETS = Object.freeze({
|
|
|
37
37
|
"pool-lanes": { sports: ["swimming"], title: "Lanes: each lane of the pool, the whole length of it", source: "docs/sources.md#zone-sets" },
|
|
38
38
|
"water-polo-areas": { sports: ["waterpolo"], title: "The goal area, the ground from 2 to 6 m, and the rest of the field, at each end", source: "docs/sources.md#zone-sets" },
|
|
39
39
|
"pool-thirds": { sports: ["diving", "artisticswimming"], title: "Thirds along the pool, from the wall the boards or the judges stand at", source: "docs/sources.md#zone-sets" },
|
|
40
|
-
"budo-areas": { sports: ["judo", "karate", "kendo", "sumo", "kyudo", "dojo", "mma", "boxing"], title: "The surface in its areas: the contest and the safety areas, the boundary band, the clay and the ring of a dohyō, the shajō, the yamichi and the azuchi, a dojo's floor", source: "docs/sources.md#zone-sets" },
|
|
40
|
+
"budo-areas": { sports: ["judo", "karate", "kendo", "sumo", "kyudo", "dojo", "mma", "boxing", "wrestling", "prowrestling"], title: "The surface in its areas: the contest and the safety areas, the boundary band, the clay and the ring of a dohyō, the shajō, the yamichi and the azuchi, a dojo's floor", source: "docs/sources.md#zone-sets" },
|
|
41
41
|
"field-thirds": { sports: ["lacrosse", "rugby", "afl", "gaelic", "fieldhockey", "handball", "netball"], title: "Thirds: defensive, middle and attacking", source: "docs/sources.md#zone-sets" },
|
|
42
42
|
"skating-track": { sports: ["skating"], title: "The rink in parts: the finish straight, the first curve, the crossing straight, the second curve and the infield (a figure skating rink in thirds)", source: "docs/sources.md#zone-sets" },
|
|
43
43
|
"athletics-track": { sports: ["athletics"], title: "The track in parts: the finish straight, the first bend, the back straight, the second bend, and the infield", source: "docs/sources.md#zone-sets" },
|
package/dist/homeside.js
CHANGED
|
@@ -53,6 +53,10 @@ export const HOME_FIRST = Object.freeze({
|
|
|
53
53
|
mma: false,
|
|
54
54
|
// A bout is between a red corner and a blue corner: no home side.
|
|
55
55
|
boxing: false,
|
|
56
|
+
// A bout is between a red wrestler and a blue one (the UWW) or a green and a red one (folkstyle): no home side.
|
|
57
|
+
wrestling: false,
|
|
58
|
+
// A match has no home side.
|
|
59
|
+
prowrestling: false,
|
|
56
60
|
});
|
|
57
61
|
/** The leagues whose convention is not their sport's: the international federation's lacrosse lists the home team first. */
|
|
58
62
|
export const HOME_FIRST_LEAGUES = Object.freeze({
|
package/dist/leagues/combat.d.ts
CHANGED
|
@@ -79,6 +79,9 @@ export interface RingFigures {
|
|
|
79
79
|
fromRopes: number;
|
|
80
80
|
pad: number;
|
|
81
81
|
};
|
|
82
|
+
/** Whether two ties hold the ropes of a side in line (a boxing ring's; a wrestling ring's ropes are not tethered together), and whether the corners are the two boxers' (red and blue) and two neutral ones. */
|
|
83
|
+
ties: boolean;
|
|
84
|
+
boxerCorners: boolean;
|
|
82
85
|
}
|
|
83
86
|
/** The figures of a boxing ring, in metres. */
|
|
84
87
|
export interface BoxingFigures extends RingFigures {
|
|
@@ -94,9 +97,64 @@ export declare const WISCONSIN_RING: BoxingFigures;
|
|
|
94
97
|
export declare const WBC_AMATEUR_RING: BoxingFigures;
|
|
95
98
|
/** The boxing leagues: the Nevada commission's first. */
|
|
96
99
|
export declare const BOXING_LEAGUES: readonly BoxingLeague[];
|
|
100
|
+
/**
|
|
101
|
+
* The figures of a wrestling mat, in metres. The UWW's mat (freestyle and Greco-Roman, which are wrestled on the same one) is a circle of 9 m with a central circle, an orange passivity band 1 m wide inside the circle and a
|
|
102
|
+
* protection area 1.5 m wide round it, on a platform at the great events; the folkstyle mats of the NCAA and the high schools (NFHS) are a competition circle with a matted area round it and two parallel starting lines at the middle.
|
|
103
|
+
*/
|
|
104
|
+
export interface WrestlingFigures {
|
|
105
|
+
kind: "wrestling";
|
|
106
|
+
/** The wrestling area: the circle's diameter (the UWW's is fixed at 9 m; the NCAA's is 32 to 42 feet; the NFHS's is at least 28 feet). */
|
|
107
|
+
circle: Span;
|
|
108
|
+
/** The matted area round the circle (the UWW's protection area 1.5 m; the NCAA's at least 5 feet; the NFHS's about 5 feet). */
|
|
109
|
+
border: Span;
|
|
110
|
+
/** The orange passivity band inside the circle, 1 m wide (the UWW's only), and the line that outlines the circle (the NCAA's 2 inch line, which is in bounds). */
|
|
111
|
+
passivity: number;
|
|
112
|
+
rim: number;
|
|
113
|
+
/** The circle in the middle: the UWW's central circle of 1 m inside with a band of 10 cm; the NFHS's optional circle of 10 feet; none for the NCAA. */
|
|
114
|
+
centre: {
|
|
115
|
+
diameter: number;
|
|
116
|
+
band: number;
|
|
117
|
+
} | null;
|
|
118
|
+
/** The starting lines: two parallel lines of `width` and `length`, `apart` between them, closed at the ends by a green and a red line (folkstyle); null for the UWW. */
|
|
119
|
+
lines: {
|
|
120
|
+
length: number;
|
|
121
|
+
width: number;
|
|
122
|
+
apart: number;
|
|
123
|
+
} | null;
|
|
124
|
+
/** The platform the mat is installed on at the great events (the UWW: 0.80 m to 1.10 m, and at least 1 m round each side of the mat; a mat on the floor is also allowed, at the other events); the folkstyle rules give none (ours: 0 drawn, up to the UWW's greatest). `least` is the lowest a platform may be when there is one. */
|
|
125
|
+
platform: {
|
|
126
|
+
height: Span;
|
|
127
|
+
around: number;
|
|
128
|
+
least: number;
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
/** A wrestling league: a rule's mat. */
|
|
132
|
+
export type WrestlingLeague = LeagueBase<"wrestling", WrestlingFigures>;
|
|
133
|
+
/** The UWW's mat (Wrestling Rules, Article 4, January 2026), for freestyle, Greco-Roman and women's wrestling alike: 9 m, a 1.50 m border, an orange band of 1 m, a central circle of 1 m with a band of 10 cm, a platform of 0.80 to 1.10 m. */
|
|
134
|
+
export declare const UWW_MAT: WrestlingFigures;
|
|
135
|
+
/** The NCAA's mat (Wrestling Rules 2025-26 and 2026-27, Rule 1, Section 1): a competition circle of 32 to 42 feet, a matted area of at least 5 feet round it, the circle's edge a 2 inch line in bounds, two down-position starting lines of 1 inch, 3 feet long and 10 inches apart, closed by a green and a red neutral line. */
|
|
136
|
+
export declare const NCAA_MAT: WrestlingFigures;
|
|
137
|
+
/** The high schools' mat (NFHS Rule 2-1): a wrestling area of at least 28 feet, a safety mat of about 5 feet round it, a 10 foot circle (optional from 2024-25) and the two starting lines of 1 inch, 3 feet long and 12 inches outside to outside, closed by a green and a red line. */
|
|
138
|
+
export declare const NFHS_MAT: WrestlingFigures;
|
|
139
|
+
/** The wrestling leagues: the UWW's first. */
|
|
140
|
+
export declare const WRESTLING_LEAGUES: readonly WrestlingLeague[];
|
|
141
|
+
/** The figures of a professional wrestling ring, in metres: the same ring as the boxing ring, with three ropes that are not tied together, posts at the corners and steel steps at ringside. No body's rule gives them: they are what rings are made as. */
|
|
142
|
+
export interface ProWrestlingFigures extends RingFigures {
|
|
143
|
+
kind: "prowrestling";
|
|
144
|
+
}
|
|
145
|
+
/** A professional wrestling league: the ring as rings are made. */
|
|
146
|
+
export type ProWrestlingLeague = LeagueBase<"prowrestling", ProWrestlingFigures>;
|
|
147
|
+
/**
|
|
148
|
+
* The professional wrestling ring as it is typically made (no rulebook gives it: every figure is typical, from the sources that describe one, and they differ): most rings measure 14 to 20 feet a side between the ropes, and 20 feet is
|
|
149
|
+
* the large promotions' size (English Wikipedia, "Wrestling ring"); three ropes of 1 to 1.5 inches at about 1, 3 and 5 feet over the mat; a platform 40 inches (3 to 4.5 feet) over the floor; an apron of 1 foot beyond the ropes
|
|
150
|
+
* (dimensions.com, "Professional Wrestling Ring"; a 2012 description of a large promotion's ring). The posts' height over the mat (ours) is 1.7 m, a little over the top rope.
|
|
151
|
+
*/
|
|
152
|
+
export declare const PRO_RING: ProWrestlingFigures;
|
|
153
|
+
/** The professional wrestling league: the ring as it is typically made. */
|
|
154
|
+
export declare const PRO_WRESTLING_LEAGUES: readonly ProWrestlingLeague[];
|
|
97
155
|
/** The figures of a combat league. */
|
|
98
|
-
export type CombatFigures = MmaFigures | BoxingFigures;
|
|
156
|
+
export type CombatFigures = MmaFigures | BoxingFigures | WrestlingFigures | ProWrestlingFigures;
|
|
99
157
|
/** A league with a combat surface of its own. */
|
|
100
|
-
export type CombatLeague = MmaLeague | BoxingLeague;
|
|
158
|
+
export type CombatLeague = MmaLeague | BoxingLeague | WrestlingLeague | ProWrestlingLeague;
|
|
101
159
|
/** Every combat league, once each. */
|
|
102
160
|
export declare const COMBAT_LEAGUES: readonly CombatLeague[];
|
package/dist/leagues/combat.js
CHANGED
|
@@ -33,6 +33,8 @@ export const NRUC_RING = {
|
|
|
33
33
|
foam: span(1 * IN, 1.5 * IN, 1 * IN),
|
|
34
34
|
ropes: { count: 4, heights: [18 * IN, 30 * IN, 42 * IN, 54 * IN], diameter: span(1 * IN, 2 * IN, 1 * IN) },
|
|
35
35
|
post: { height: 58 * IN, diameter: 3 * IN, fromRopes: 18 * IN, pad: 0.3 },
|
|
36
|
+
ties: true,
|
|
37
|
+
boxerCorners: true,
|
|
36
38
|
};
|
|
37
39
|
/** The ring of Wisconsin's rule (SPS 192.38): 16 to 20 feet within the ropes, an apron of at least 18 inches, a platform of at most 4 feet with three sets of steps, ropes at 18, 30, 42 and 54 inches, posts at least 3 inches across and 58 inches high. */
|
|
38
40
|
export const WISCONSIN_RING = {
|
|
@@ -43,6 +45,8 @@ export const WISCONSIN_RING = {
|
|
|
43
45
|
foam: span(1 * IN, 1 * IN, 1 * IN),
|
|
44
46
|
ropes: { count: 4, heights: [18 * IN, 30 * IN, 42 * IN, 54 * IN], diameter: span(1 * IN, 2 * IN, 1 * IN) },
|
|
45
47
|
post: { height: 58 * IN, diameter: 3 * IN, fromRopes: 18 * IN, pad: 0.3 },
|
|
48
|
+
ties: true,
|
|
49
|
+
boxerCorners: true,
|
|
46
50
|
};
|
|
47
51
|
/** The amateur ring of the WBC Amateur rules (Rule 1, 2026): 4.50 to 6.10 m within the ropes, a platform of 0.90 to 1.20 m, an apron of at least 0.50 m, ropes of 3 to 5 cm at 41, 71, 102 and 132 cm, three sets of steps. Ontario's amateur rules agree (4.9 to 6.1 m, ropes at 40, 70, 100 and 130 cm, an apron of at least 45 cm, a platform of at most 1.2 m). */
|
|
48
52
|
export const WBC_AMATEUR_RING = {
|
|
@@ -53,6 +57,8 @@ export const WBC_AMATEUR_RING = {
|
|
|
53
57
|
foam: span(0.01, 0.025, 0.02),
|
|
54
58
|
ropes: { count: 4, heights: [0.41, 0.71, 1.02, 1.32], diameter: span(0.03, 0.05, 0.04) },
|
|
55
59
|
post: { height: 1.5, diameter: 0.076, fromRopes: 0.45, pad: 0.3 },
|
|
60
|
+
ties: true,
|
|
61
|
+
boxerCorners: true,
|
|
56
62
|
};
|
|
57
63
|
/** The boxing leagues: the Nevada commission's first. */
|
|
58
64
|
export const BOXING_LEAGUES = [
|
|
@@ -60,5 +66,64 @@ export const BOXING_LEAGUES = [
|
|
|
60
66
|
{ id: "wisconsin", family: "boxing", name: { en: "Boxing ring, Wisconsin", ja: "ボクシングのリング(ウィスコンシン州の規則)" }, unit: "ft", figuresUnit: "m", dimensions: WISCONSIN_RING, sources: ["wi-sps-192", "wp-boxing-ring"] },
|
|
61
67
|
{ id: "wbc-amateur", family: "boxing", name: { en: "Boxing ring, WBC Amateur rules", ja: "ボクシングのリング(WBCアマチュア規則)" }, unit: "m", dimensions: WBC_AMATEUR_RING, sources: ["wbc-amateur", "ontario-amateur-boxing"] },
|
|
62
68
|
];
|
|
69
|
+
/** The UWW's mat (Wrestling Rules, Article 4, January 2026), for freestyle, Greco-Roman and women's wrestling alike: 9 m, a 1.50 m border, an orange band of 1 m, a central circle of 1 m with a band of 10 cm, a platform of 0.80 to 1.10 m. */
|
|
70
|
+
export const UWW_MAT = {
|
|
71
|
+
kind: "wrestling",
|
|
72
|
+
circle: span(9, 9, 9),
|
|
73
|
+
border: span(1.5, 1.5, 1.5),
|
|
74
|
+
passivity: 1,
|
|
75
|
+
rim: 0,
|
|
76
|
+
centre: { diameter: 1, band: 0.1 },
|
|
77
|
+
lines: null,
|
|
78
|
+
platform: { height: span(0, 1.1, 1), around: 1, least: 0.8 },
|
|
79
|
+
};
|
|
80
|
+
/** The NCAA's mat (Wrestling Rules 2025-26 and 2026-27, Rule 1, Section 1): a competition circle of 32 to 42 feet, a matted area of at least 5 feet round it, the circle's edge a 2 inch line in bounds, two down-position starting lines of 1 inch, 3 feet long and 10 inches apart, closed by a green and a red neutral line. */
|
|
81
|
+
export const NCAA_MAT = {
|
|
82
|
+
kind: "wrestling",
|
|
83
|
+
circle: span(32 * FT, 42 * FT, 32 * FT),
|
|
84
|
+
border: span(5 * FT, 10 * FT, 5 * FT),
|
|
85
|
+
passivity: 0,
|
|
86
|
+
rim: 2 * IN,
|
|
87
|
+
centre: null,
|
|
88
|
+
lines: { length: 3 * FT, width: 1 * IN, apart: 10 * IN },
|
|
89
|
+
platform: { height: span(0, 1.1, 0), around: 1, least: 0 },
|
|
90
|
+
};
|
|
91
|
+
/** The high schools' mat (NFHS Rule 2-1): a wrestling area of at least 28 feet, a safety mat of about 5 feet round it, a 10 foot circle (optional from 2024-25) and the two starting lines of 1 inch, 3 feet long and 12 inches outside to outside, closed by a green and a red line. */
|
|
92
|
+
export const NFHS_MAT = {
|
|
93
|
+
kind: "wrestling",
|
|
94
|
+
circle: span(28 * FT, 42 * FT, 28 * FT),
|
|
95
|
+
border: span(5 * FT, 10 * FT, 5 * FT),
|
|
96
|
+
passivity: 0,
|
|
97
|
+
rim: 2 * IN,
|
|
98
|
+
centre: { diameter: 10 * FT, band: 2 * IN },
|
|
99
|
+
lines: { length: 3 * FT, width: 1 * IN, apart: 10 * IN },
|
|
100
|
+
platform: { height: span(0, 1.1, 0), around: 1, least: 0 },
|
|
101
|
+
};
|
|
102
|
+
/** The wrestling leagues: the UWW's first. */
|
|
103
|
+
export const WRESTLING_LEAGUES = [
|
|
104
|
+
{ id: "uww", family: "wrestling", name: { en: "Wrestling mat, UWW (freestyle and Greco-Roman)", ja: "レスリングのマット(UWW:フリースタイルとグレコローマン)" }, unit: "m", dimensions: UWW_MAT, sources: ["uww-wrestling-rules"], builtIn: true },
|
|
105
|
+
{ id: "ncaa-wrestling", family: "wrestling", name: { en: "Wrestling mat, NCAA folkstyle", ja: "レスリングのマット(NCAA:フォークスタイル)" }, unit: "ft", figuresUnit: "m", dimensions: NCAA_MAT, sources: ["ncaa-wrestling"] },
|
|
106
|
+
{ id: "nfhs-wrestling", family: "wrestling", name: { en: "Wrestling mat, high school folkstyle (NFHS)", ja: "レスリングのマット(NFHS:アメリカの高校のフォークスタイル)" }, unit: "ft", figuresUnit: "m", dimensions: NFHS_MAT, sources: ["nfhs-wrestling-mat", "ncaa-wrestling"] },
|
|
107
|
+
];
|
|
108
|
+
/**
|
|
109
|
+
* The professional wrestling ring as it is typically made (no rulebook gives it: every figure is typical, from the sources that describe one, and they differ): most rings measure 14 to 20 feet a side between the ropes, and 20 feet is
|
|
110
|
+
* the large promotions' size (English Wikipedia, "Wrestling ring"); three ropes of 1 to 1.5 inches at about 1, 3 and 5 feet over the mat; a platform 40 inches (3 to 4.5 feet) over the floor; an apron of 1 foot beyond the ropes
|
|
111
|
+
* (dimensions.com, "Professional Wrestling Ring"; a 2012 description of a large promotion's ring). The posts' height over the mat (ours) is 1.7 m, a little over the top rope.
|
|
112
|
+
*/
|
|
113
|
+
export const PRO_RING = {
|
|
114
|
+
kind: "prowrestling",
|
|
115
|
+
size: span(14 * FT, 20 * FT, 20 * FT),
|
|
116
|
+
platform: { height: span(0, 6 * FT, 40 * IN), steps: { sets: 2, treads: 3, tread: 0.3, width: 1 } },
|
|
117
|
+
apron: span(1 * FT, 3 * FT, 1 * FT),
|
|
118
|
+
foam: span(1 * IN, 2 * IN, 1 * IN),
|
|
119
|
+
ropes: { count: 3, heights: [1 * FT, 3 * FT, 5 * FT], diameter: span(1 * IN, 1.5 * IN, 1.25 * IN) },
|
|
120
|
+
post: { height: 1.7, diameter: 0.15, fromRopes: 0.12, pad: 0.26 },
|
|
121
|
+
ties: false,
|
|
122
|
+
boxerCorners: false,
|
|
123
|
+
};
|
|
124
|
+
/** The professional wrestling league: the ring as it is typically made. */
|
|
125
|
+
export const PRO_WRESTLING_LEAGUES = [
|
|
126
|
+
{ id: "pro-ring", family: "prowrestling", name: { en: "Professional wrestling ring, as rings are typically made", ja: "プロレスのリング(一般的な寸法)" }, unit: "ft", figuresUnit: "m", dimensions: PRO_RING, sources: ["wp-wrestling-ring", "dimensions-pro-ring", "wwe-ring-2012", "wp-boxing-ring"], builtIn: true },
|
|
127
|
+
];
|
|
63
128
|
/** Every combat league, once each. */
|
|
64
|
-
export const COMBAT_LEAGUES = Object.freeze([...MMA_LEAGUES, ...BOXING_LEAGUES]);
|
|
129
|
+
export const COMBAT_LEAGUES = Object.freeze([...MMA_LEAGUES, ...BOXING_LEAGUES, ...WRESTLING_LEAGUES, ...PRO_WRESTLING_LEAGUES]);
|
package/dist/leagues/sources.js
CHANGED
|
@@ -134,6 +134,12 @@ export const LEAGUE_SOURCES = Object.freeze(Object.fromEntries([
|
|
|
134
134
|
source({ id: "wbc-amateur", title: "WBC Amateur competition rules, Rule 1, The Ring (4.50 to 6.10 m inside the ropes, a platform of 0.90 to 1.20 m, an apron of at least 0.50 m, ropes of 3 to 5 cm at 41, 71, 102 and 132 cm, three sets of steps, corner colours)", by: "World Boxing Council Amateur", edition: "updated 2026 (the file of October 2025)", url: "https://wbcboxing.com/amateur/esp/wp-content/uploads/2025/10/WBC-AMATEUR-RULES-UPDATED-2026.pdf", read: COMBAT_READ, note: "the amateur ring's figures; the corner colours (red and blue for the boxers, white neutral) are its alternative colours" }),
|
|
135
135
|
source({ id: "ontario-amateur-boxing", title: "Amateur combative sport rules: Boxing, Part II: Competitive field of play, 1.1 to 1.1.6 (4.9 to 6.1 m inside the ropes, a platform of at most 1.2 m, an apron of at least 45 cm, ropes of 2 to 5 cm at 40, 70, 100 and 130 cm, padding of 2.5 to 3.75 cm under a canvas, the red corner on the left nearest the jury table)", by: "Ontario Ministry of Sport", edition: "published 17 December 2024, updated 22 May 2025", url: "https://www.ontario.ca/document/amateur-combative-sport-rules-boxing/part-ii-competitive-field-play", read: COMBAT_READ, note: "a second amateur rule beside the WBC's; the red corner at the left" }),
|
|
136
136
|
source({ id: "wp-boxing-ring", title: "Boxing ring (English Wikipedia): a square raised platform with a post at each corner, four ropes, a red corner and a blue corner; a standard ring 16 to 24 feet a side between the ropes with 2 feet outside, a platform 3 to 4 feet from the ground, ropes at 18, 30, 42 and 54 inches", by: "Wikipedia contributors (CC BY-SA 4.0), read for facts only", edition: "revision 1370389178", url: "https://en.wikipedia.org/w/index.php?title=Boxing_ring&oldid=1370389178", read: COMBAT_READ, note: "what is typical and not a rule: the 2 foot apron, the 4 foot platform, the heights of the ropes, the red and blue corners" }),
|
|
137
|
+
source({ id: "uww-wrestling-rules", title: "Wrestling Rules, Article 4 The Mat (a 9 m mat with a 1.50 m border of the same thickness; an orange band of 1 m inside the 9 m circle; the central circle of 1 m with a band of 10 cm; the central surface of 7 m; the platform of 0.80 to 1.10 m with at least 1 m round the mat) and Article 45 Passivity Zone", by: "United World Wrestling", edition: "January 2026", url: "https://cdn.uww.org/2026-01/wrestling_rules.pdf", read: COMBAT_READ, note: "the one mat of freestyle, Greco-Roman and women's wrestling; the wrestlers' places (red left, blue right) are not drawn" }),
|
|
138
|
+
source({ id: "ncaa-wrestling", title: "NCAA Wrestling Rules 2025-26 and 2026-27, Rule 1, Section 1 Mats (Art. 1 mat specifications: a competition circle of 32 to 42 feet, a matted area of at least 5 feet round it, the circle's edge a 2 inch line in bounds; Art. 3 mat markings: two 1 inch down-position starting lines 3 feet long and 10 inches apart, closed by a green and a red neutral line) and Diagram 1", by: "NCAA, Men's Wrestling Rules Committee", edition: "August 2025", url: "https://ncaaorg.s3.amazonaws.com/championships/sports/wrestling/rules/PRMWR_RulesBook.pdf", read: COMBAT_READ, note: "the college mat; the NFHS's starting lines are the same size" }),
|
|
139
|
+
source({ id: "nfhs-wrestling-mat", title: "Required Wrestling Mat Area (quoting NFHS Wrestling Rule 2-1-2: a wrestling area of a minimum of 28 feet in diameter with a safety mat area of approximately 5 feet wide round it)", by: "Kentucky High School Athletic Association, notice of 21 November 2014", edition: "2014 notice of the NFHS rule", url: "https://khsaa.org/?p=14520", read: COMBAT_READ, note: "the high school mat's size; the starting lines (1 inch, 3 feet long, 12 inches outside to outside, closed by a red and a green line, front line on the diameter of the 10 foot circle) are quoted from NFHS Rule 2-1-4 on https://info.resilite.com/knowledge/why-are-my-referee-/-starting-lines-not-centered, and the circle of 10 feet became optional in 2024-25 (NFHS 2-1-3 and 2-1-4: NJSIAA, Wrestling Rule Changes 2024-2025, https://njsiaa.org/sites/default/files/documents/2024-10/wrestling-rule-changes-2024-2025.pdf)" }),
|
|
140
|
+
source({ id: "wp-wrestling-ring", title: "Wrestling ring (English Wikipedia): constructed like a boxing ring; three ring ropes (one fewer than a boxing ring) that are not tethered together, held by turnbuckles hung on steel posts; the apron the mat beyond the ropes; steel steps at ringside; most rings 14 to 20 feet on each side, 20 feet for the large promotions and 18 for some others", by: "Wikipedia contributors (CC BY-SA 4.0), read for facts only", edition: "revision 1379090810", url: "https://en.wikipedia.org/w/index.php?title=Wrestling_ring&oldid=1379090810", read: COMBAT_READ, note: "typical, not a rule: the size range, three ropes, no ties, the apron, the steps" }),
|
|
141
|
+
source({ id: "dimensions-pro-ring", title: "Professional Wrestling Ring Dimensions & Drawings: a ring of 20 by 20 feet, the mat 40 inches (1.02 m) over the floor, an apron of 1 foot, ropes of 1 to 1.5 inches, posts 6 inches across", by: "Dimensions.com", edition: "the page as read on the date given (it names no promotion; its figure of an 8 foot top rope is not used)", url: "https://www.dimensions.com/element/professional-wrestling-ring", read: COMBAT_READ, note: "typical, not a rule: the platform's height, the apron, the ropes' thickness" }),
|
|
142
|
+
source({ id: "wwe-ring-2012", title: "WWE Wrestling Ring Dimensions (a blog's description of a large promotion's ring as of 2012: a mat of 20 by 20 feet between the turnbuckles, 21 by 21 feet with the apron, 4 to 6 feet from the floor, three ropes at about 1, 3 and 5 feet over the mat, an apron of 1 foot beyond the ropes)", by: "Abstruse Decapod Games & Fun (a blog)", edition: "posted 15 November 2012", url: "http://abstrusedecapod.blogspot.com/2012/11/wwe-wrestling-ring-dimensions.html", read: COMBAT_READ, note: "typical, not a rule, and the weakest source here: the ropes' heights and the platform's upper range; the blog's own spacing figure is wrong, as a comment on it says, and its post height is not used" }),
|
|
137
143
|
// Baseball and softball.
|
|
138
144
|
source({ id: "obr-2026", title: "Official Baseball Rules, 2.01, 2.03 and 2.04 (the rules Minor League Baseball plays under)", by: "Major League Baseball", edition: "2026", url: "https://mktg.mlbstatic.com/mlb/official-information/2026-official-baseball-rules.pdf", read: READ, note: "bases 18 inches (2.03), the fence at least 325 and 400 feet (2.01 note); Minor League Baseball's own facility standards are not public" }),
|
|
139
145
|
source({ id: "ncaa-baseball", title: "NCAA Baseball Rules, Rule 1, and the field diagram", by: "NCAA", edition: "2027 and 2028 rules book (printed October 2026)", url: "https://ncaaorg.s3.amazonaws.com/championships/sports/baseball/rules/PRMBA_RulesBook.pdf", read: READ, note: "90-foot square (1-2-a), recommended fence 330, 375 and 400 feet (1-2-b), boxes 4 by 6 feet (1-3-a), backstop 45 feet (1-5-b); diagram: PRMBA_Re-imagedFieldDiagrams.pdf" }),
|
package/dist/leagues/types.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export interface Named {
|
|
|
5
5
|
ja: string;
|
|
6
6
|
}
|
|
7
7
|
/** The families of surface a league is a variant of. */
|
|
8
|
-
export type Family = "basketball" | "hockey" | "football" | "baseball" | "curling" | "tennis" | "volleyball" | "badminton" | "pickleball" | "tabletennis" | "padel" | "squash" | "racquetball" | "sepaktakraw" | "teqball" | "roundnet" | "netball" | "lacrosse" | "rugby" | "afl" | "gaelic" | "cricket" | "fieldhockey" | "handball" | "athletics" | "skating" | "judo" | "karate" | "kendo" | "sumo" | "kyudo" | "dojo" | "mma" | "boxing";
|
|
8
|
+
export type Family = "basketball" | "hockey" | "football" | "baseball" | "curling" | "tennis" | "volleyball" | "badminton" | "pickleball" | "tabletennis" | "padel" | "squash" | "racquetball" | "sepaktakraw" | "teqball" | "roundnet" | "netball" | "lacrosse" | "rugby" | "afl" | "gaelic" | "cricket" | "fieldhockey" | "handball" | "athletics" | "skating" | "judo" | "karate" | "kendo" | "sumo" | "kyudo" | "dojo" | "mma" | "boxing" | "wrestling" | "prowrestling";
|
|
9
9
|
/** The state of one marking from a season on, in a league's own history: the season it began, what it was, and its sources. */
|
|
10
10
|
export interface LeagueSpan<T> {
|
|
11
11
|
/** The first season it was in force, or `null` for the state before the first change that is cited. */
|
package/dist/leagues.d.ts
CHANGED
|
@@ -36,7 +36,7 @@ export { WA_STANDARD_TRACK, WA_SHORT_TRACK, WA_STAGGER_TABLE, WA_SHORT_STAGGER_T
|
|
|
36
36
|
export type { SkatingFigures, SkatingLeague, LongTrackFigures, ShortTrackFigures, FigureRinkFigures } from "./leagues/skating.ts";
|
|
37
37
|
export { ISU_LONG_TRACK, ISU_SHORT_TRACK, ISU_FIGURE_RINK, ISU_LONG_TRACK_TABLE } from "./leagues/skating.ts";
|
|
38
38
|
export type { BudoFigures, BudoLeague, DojoFigures, DojoLeague, JudoFigures, JudoLeague, KarateFigures, KarateLeague, KendoFigures, KendoLeague, KyudoFigures, KyudoLeague, Mat, SumoFigures, SumoLeague } from "./leagues/budo.ts";
|
|
39
|
-
export { BOXING_LEAGUES, IMMAF_CAGE, MMA_LEAGUES, NRUC_CAGE, NRUC_RING, WBC_AMATEUR_RING, WISCONSIN_RING } from "./leagues/combat.ts";
|
|
39
|
+
export { BOXING_LEAGUES, IMMAF_CAGE, MMA_LEAGUES, NRUC_CAGE, NCAA_MAT, NFHS_MAT, NRUC_RING, PRO_RING, PRO_WRESTLING_LEAGUES, UWW_MAT, WBC_AMATEUR_RING, WISCONSIN_RING, WRESTLING_LEAGUES } from "./leagues/combat.ts";
|
|
40
40
|
export { AJJF_CONTEST, BUDO_LEAGUES, ENTEKI, FIK_SHIAI_JO, IJF_CONTEST, IJF_KATA, JSA_DOHYO, KINTEKI, WKF_KATA, WKF_KUMITE } from "./leagues/budo.ts";
|
|
41
41
|
export type { BadmintonFigures, BadmintonLeague, FreeZone, FreeZones, NetFigures, NetLeague, NetSport, NetballFigures, NetballLeague, PadelFigures, PadelLeague, PickleballFigures, PickleballLeague, RacquetballFigures, RacquetballLeague, RoundnetFigures, RoundnetLeague, SepakTakrawFigures, SepakTakrawLeague, SquashFigures, SquashLeague, TableTennisFigures, TableTennisLeague, TennisFigures, TennisLeague, TeqballFigures, TeqballLeague, VolleyballFigures, VolleyballLeague } from "./leagues/courts.ts";
|
|
42
42
|
export type { CourtFigures, CourtMarks } from "./leagues/basketball.ts";
|
package/dist/leagues.js
CHANGED
|
@@ -15,7 +15,7 @@ import { FIELD_HOCKEY_LEAGUES, fieldHockeyInFeet } from "./leagues/fieldhockey.j
|
|
|
15
15
|
import { ATHLETICS_LEAGUES, athleticsInFeet } from "./leagues/athletics.js";
|
|
16
16
|
import { longOval, outerEdge } from "./skating/track.js";
|
|
17
17
|
import { SKATING_LEAGUES, skatingInFeet } from "./leagues/skating.js";
|
|
18
|
-
import { BOXING_LEAGUES, MMA_LEAGUES } from "./leagues/combat.js";
|
|
18
|
+
import { BOXING_LEAGUES, MMA_LEAGUES, PRO_WRESTLING_LEAGUES, WRESTLING_LEAGUES } from "./leagues/combat.js";
|
|
19
19
|
import { BUDO_LEAGUES, DOJO_LEAGUES, JUDO_LEAGUES, KARATE_LEAGUES, KENDO_LEAGUES, KYUDO_LEAGUES, SUMO_LEAGUES } from "./leagues/budo.js";
|
|
20
20
|
import { GAELIC_LEAGUES, gaelicInFeet } from "./leagues/gaelic.js";
|
|
21
21
|
import { HANDBALL_LEAGUES, handballInFeet } from "./leagues/handball.js";
|
|
@@ -28,10 +28,10 @@ export { LEAGUE_SOURCES };
|
|
|
28
28
|
export { AFL_GROUNDS } from "./leagues/aussie.js";
|
|
29
29
|
export { WA_STANDARD_TRACK, WA_SHORT_TRACK, WA_STAGGER_TABLE, WA_SHORT_STAGGER_TABLE } from "./leagues/athletics.js";
|
|
30
30
|
export { ISU_LONG_TRACK, ISU_SHORT_TRACK, ISU_FIGURE_RINK, ISU_LONG_TRACK_TABLE } from "./leagues/skating.js";
|
|
31
|
-
export { BOXING_LEAGUES, IMMAF_CAGE, MMA_LEAGUES, NRUC_CAGE, NRUC_RING, WBC_AMATEUR_RING, WISCONSIN_RING } from "./leagues/combat.js";
|
|
31
|
+
export { BOXING_LEAGUES, IMMAF_CAGE, MMA_LEAGUES, NRUC_CAGE, NCAA_MAT, NFHS_MAT, NRUC_RING, PRO_RING, PRO_WRESTLING_LEAGUES, UWW_MAT, WBC_AMATEUR_RING, WISCONSIN_RING, WRESTLING_LEAGUES } from "./leagues/combat.js";
|
|
32
32
|
export { AJJF_CONTEST, BUDO_LEAGUES, ENTEKI, FIK_SHIAI_JO, IJF_CONTEST, IJF_KATA, JSA_DOHYO, KINTEKI, WKF_KATA, WKF_KUMITE } from "./leagues/budo.js";
|
|
33
33
|
/** The family of surface each sport draws; soccer's variants are its pitches (`pitch`), not leagues. */
|
|
34
|
-
export const FAMILY_OF = Object.freeze({ nfl: "football", cfl: "football", ifaf: "football", nhl: "hockey", nba: "basketball", mlb: "baseball", soccer: undefined, curling: "curling", tennis: "tennis", volleyball: "volleyball", badminton: "badminton", pickleball: "pickleball", tabletennis: "tabletennis", padel: "padel", squash: "squash", racquetball: "racquetball", sepaktakraw: "sepaktakraw", teqball: "teqball", roundnet: "roundnet", netball: "netball", lacrosse: "lacrosse", rugby: "rugby", afl: "afl", gaelic: "gaelic", cricket: "cricket", fieldhockey: "fieldhockey", handball: "handball", swimming: undefined, waterpolo: undefined, diving: undefined, artisticswimming: undefined, athletics: "athletics", skating: "skating", judo: "judo", karate: "karate", kendo: "kendo", sumo: "sumo", kyudo: "kyudo", dojo: "dojo", mma: "mma", boxing: "boxing" });
|
|
34
|
+
export const FAMILY_OF = Object.freeze({ nfl: "football", cfl: "football", ifaf: "football", nhl: "hockey", nba: "basketball", mlb: "baseball", soccer: undefined, curling: "curling", tennis: "tennis", volleyball: "volleyball", badminton: "badminton", pickleball: "pickleball", tabletennis: "tabletennis", padel: "padel", squash: "squash", racquetball: "racquetball", sepaktakraw: "sepaktakraw", teqball: "teqball", roundnet: "roundnet", netball: "netball", lacrosse: "lacrosse", rugby: "rugby", afl: "afl", gaelic: "gaelic", cricket: "cricket", fieldhockey: "fieldhockey", handball: "handball", swimming: undefined, waterpolo: undefined, diving: undefined, artisticswimming: undefined, athletics: "athletics", skating: "skating", judo: "judo", karate: "karate", kendo: "kendo", sumo: "sumo", kyudo: "kyudo", dojo: "dojo", mma: "mma", boxing: "boxing", wrestling: "wrestling", prowrestling: "prowrestling" });
|
|
35
35
|
/**
|
|
36
36
|
* The leagues each sport can draw, in the order a menu lists them, the sport's own first (the three football sports share their
|
|
37
37
|
* list, the football leagues). Soccer and the pools have none.
|
|
@@ -79,6 +79,8 @@ export const LEAGUES = Object.freeze({
|
|
|
79
79
|
dojo: DOJO_LEAGUES,
|
|
80
80
|
mma: MMA_LEAGUES,
|
|
81
81
|
boxing: BOXING_LEAGUES,
|
|
82
|
+
wrestling: WRESTLING_LEAGUES,
|
|
83
|
+
prowrestling: PRO_WRESTLING_LEAGUES,
|
|
82
84
|
});
|
|
83
85
|
/** Every league of every family, once each. */
|
|
84
86
|
export const VARIANTS = Object.freeze([...BASKETBALL_LEAGUES, ...HOCKEY_LEAGUES, ...FOOTBALL_LEAGUES, ...BASEBALL_LEAGUES, ...CURLING_LEAGUES, ...TENNIS_LEAGUES, ...VOLLEYBALL_LEAGUES, ...BADMINTON_LEAGUES, ...PICKLEBALL_LEAGUES, ...TABLE_TENNIS_LEAGUES, ...PADEL_LEAGUES, ...SQUASH_LEAGUES, ...RACQUETBALL_LEAGUES, ...SEPAK_TAKRAW_LEAGUES, ...TEQBALL_LEAGUES, ...ROUNDNET_LEAGUES, ...NETBALL_LEAGUES, ...LACROSSE_LEAGUES, ...RUGBY_LEAGUES, ...AFL_LEAGUES, ...GAELIC_LEAGUES, ...CRICKET_LEAGUES, ...FIELD_HOCKEY_LEAGUES, ...HANDBALL_LEAGUES, ...ATHLETICS_LEAGUES, ...BUDO_LEAGUES]);
|
|
@@ -334,6 +336,20 @@ export function leagueSize(sport, id, unit) {
|
|
|
334
336
|
feet = { length: convertLength(length, "m", "ft"), width: convertLength(frontage, "m", "ft") };
|
|
335
337
|
break;
|
|
336
338
|
}
|
|
339
|
+
case "prowrestling": {
|
|
340
|
+
// The platform: the ring at the size drawn, with its apron.
|
|
341
|
+
const d = league.dimensions;
|
|
342
|
+
const m = d.size.drawn + 2 * Math.max(d.apron.drawn, d.post.fromRopes + d.post.pad / 2 + 0.02);
|
|
343
|
+
feet = { length: convertLength(m, "m", "ft"), width: convertLength(m, "m", "ft") };
|
|
344
|
+
break;
|
|
345
|
+
}
|
|
346
|
+
case "wrestling": {
|
|
347
|
+
// The mat's square: the circle with the matted area round it.
|
|
348
|
+
const d = league.dimensions;
|
|
349
|
+
const m = d.circle.drawn + 2 * d.border.drawn;
|
|
350
|
+
feet = { length: convertLength(m, "m", "ft"), width: convertLength(m, "m", "ft") };
|
|
351
|
+
break;
|
|
352
|
+
}
|
|
337
353
|
case "boxing": {
|
|
338
354
|
// The platform: the ring at the size drawn, with its apron.
|
|
339
355
|
const d = league.dimensions;
|
|
@@ -702,6 +718,29 @@ export function leagueFigures(league) {
|
|
|
702
718
|
["shajō", `${f.hall.depth} m deep, ${f.hall.side} m from the end shooters to the walls, ceiling ${f.ceiling} m`],
|
|
703
719
|
];
|
|
704
720
|
}
|
|
721
|
+
case "prowrestling": {
|
|
722
|
+
const f = league.dimensions;
|
|
723
|
+
const ft = (m) => `${Math.round((m / 0.3048) * 100) / 100} ft`;
|
|
724
|
+
return [
|
|
725
|
+
["ring", `${ft(f.size.min)} to ${ft(f.size.max)} square between the ropes (typical)`],
|
|
726
|
+
["platform", `${ft(f.platform.height.drawn)} drawn, up to ${ft(f.platform.height.max)}`],
|
|
727
|
+
["ropes", `${f.ropes.count} at ${f.ropes.heights.map((h) => ft(h)).join(", ")}, not tied together`],
|
|
728
|
+
["apron", `${ft(f.apron.drawn)} beyond the ropes`],
|
|
729
|
+
];
|
|
730
|
+
}
|
|
731
|
+
case "wrestling": {
|
|
732
|
+
const f = league.dimensions;
|
|
733
|
+
const ft = (m) => `${Math.round((m / 0.3048) * 100) / 100} ft`;
|
|
734
|
+
const m = (v) => `${Math.round(v * 100) / 100} m`;
|
|
735
|
+
const sized = f.circle.min === f.circle.max ? m(f.circle.min) : `${ft(f.circle.min)} to ${ft(f.circle.max)}`;
|
|
736
|
+
return [
|
|
737
|
+
["wrestling area", `a circle of ${sized}`],
|
|
738
|
+
["matted area", `${f.border.min === f.border.max ? m(f.border.min) : `at least ${ft(f.border.min)}`} round the circle`],
|
|
739
|
+
...(f.passivity > 0 ? [["passivity band", `${m(f.passivity)} wide inside the circle`]] : []),
|
|
740
|
+
...(f.centre === null ? [] : [["centre circle", `${f.centre.diameter >= 3 ? ft(f.centre.diameter) : m(f.centre.diameter)} across`]]),
|
|
741
|
+
...(f.lines === null ? [] : [["starting lines", `two of ${Math.round(f.lines.width / 0.0254)} inch, ${ft(f.lines.length)} long, ${Math.round(f.lines.apart / 0.0254)} inches apart`]]),
|
|
742
|
+
];
|
|
743
|
+
}
|
|
705
744
|
case "boxing": {
|
|
706
745
|
const f = league.dimensions;
|
|
707
746
|
const ft = (m) => `${Math.round((m / 0.3048) * 100) / 100} ft`;
|
package/dist/outline.js
CHANGED
package/dist/ranges.names.js
CHANGED
|
@@ -80,6 +80,8 @@ export const RANGES = Object.freeze({
|
|
|
80
80
|
dojo: Object.freeze([range("kamiza"), range("half", "left")]),
|
|
81
81
|
mma: Object.freeze([range("cage"), range("gate"), range("half", "left")]),
|
|
82
82
|
boxing: Object.freeze([range("ropes"), range("corner"), range("half", "left")]),
|
|
83
|
+
prowrestling: Object.freeze([range("ropes"), range("half", "left")]),
|
|
84
|
+
wrestling: Object.freeze([range("start"), range("passivity", undefined, ["uww"]), range("half", "left")]),
|
|
83
85
|
});
|
|
84
86
|
const isNumber = (value) => typeof value === "number" && Number.isFinite(value);
|
|
85
87
|
/**
|
package/dist/score.js
CHANGED
|
@@ -218,6 +218,12 @@ export function glyph(sport) {
|
|
|
218
218
|
case "dojo":
|
|
219
219
|
// A dojo: a floor of mats laid so that no four corners meet.
|
|
220
220
|
return "M-14 -10H14V10H-14ZM-14 0H14M-5 -10V0M5 0V10";
|
|
221
|
+
case "prowrestling":
|
|
222
|
+
// A ring: the platform's square, the three ropes and the four posts.
|
|
223
|
+
return "M-10 -10H10V10H-10ZM-6 -6H6V6H-6ZM-5 -5H5V5H-5ZM-8 -8L-6 -6M8 -8L6 -6M-8 8L-6 6M8 8L6 6";
|
|
224
|
+
case "wrestling":
|
|
225
|
+
// A mat: the square, the circle, the passivity band and the circle in the middle.
|
|
226
|
+
return "M-10 -10H10V10H-10ZM-8 0A8 8 0 1 0 8 0A8 8 0 1 0 -8 0M-5.5 0A5.5 5.5 0 1 0 5.5 0A5.5 5.5 0 1 0 -5.5 0M-1 0A1 1 0 1 0 1 0A1 1 0 1 0 -1 0";
|
|
221
227
|
case "boxing":
|
|
222
228
|
// A ring: the platform's square, the ropes and the four posts.
|
|
223
229
|
return "M-10 -10H10V10H-10ZM-6 -6H6V6H-6ZM-8 -8L-6 -6M8 -8L6 -6M-8 8L-6 6M8 8L6 6";
|
package/dist/strings.d.ts
CHANGED
|
@@ -452,6 +452,17 @@ export interface KyogijoWords {
|
|
|
452
452
|
boxingFloor: string;
|
|
453
453
|
boxingCorners: string;
|
|
454
454
|
boxingSteps: string;
|
|
455
|
+
/** A wrestling mat: the UWW's ({circle}, {border}, {band}, {platform}) and a folkstyle mat's ({feet}, {circle}, {border}, {platform}), the platform it stands on ({height}) or the floor, and the sentences about its middle circle ({d}) and its starting lines. */
|
|
456
|
+
wrestlingUww: string;
|
|
457
|
+
wrestlingFolk: string;
|
|
458
|
+
wrestlingPlatform: string;
|
|
459
|
+
wrestlingFloor: string;
|
|
460
|
+
wrestlingCentre: string;
|
|
461
|
+
wrestlingLines: string;
|
|
462
|
+
/** A professional wrestling ring: the sentence ({size}, {feet}, {apron}, {platform}; the platform parts are the boxing ring's), and the sentences about its ropes and its steps. */
|
|
463
|
+
prowrestling: string;
|
|
464
|
+
prowrestlingRopes: string;
|
|
465
|
+
prowrestlingSteps: string;
|
|
455
466
|
/** The scoreboards: the heads and the sentences that say what each side scored. */
|
|
456
467
|
board: {
|
|
457
468
|
ippon: string;
|