@johnmorrisdotca/kyogijo-stadiums 0.44.2 → 0.45.1

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.
Files changed (786) hide show
  1. package/CHANGELOG.md +91 -0
  2. package/dist/arenas/69th-regiment-armory.data.d.ts +2 -0
  3. package/dist/arenas/69th-regiment-armory.data.js +19 -0
  4. package/dist/arenas/alexander-memorial-coliseum.data.d.ts +2 -0
  5. package/dist/arenas/alexander-memorial-coliseum.data.js +27 -0
  6. package/dist/arenas/allen-county-war-memorial-coliseum.data.d.ts +2 -0
  7. package/dist/arenas/allen-county-war-memorial-coliseum.data.js +20 -0
  8. package/dist/arenas/allstate-arena.data.d.ts +2 -0
  9. package/dist/arenas/allstate-arena.data.js +23 -0
  10. package/dist/arenas/amerant-bank-arena.data.d.ts +2 -0
  11. package/dist/arenas/amerant-bank-arena.data.js +23 -0
  12. package/dist/arenas/american-airlines-center.data.d.ts +2 -0
  13. package/dist/arenas/american-airlines-center.data.js +19 -0
  14. package/dist/arenas/arco-arena-1985.data.d.ts +2 -0
  15. package/dist/arenas/arco-arena-1985.data.js +21 -0
  16. package/dist/arenas/arco-arena.data.d.ts +2 -0
  17. package/dist/arenas/arco-arena.data.js +23 -0
  18. package/dist/arenas/arizona-veterans-memorial-coliseum.data.d.ts +2 -0
  19. package/dist/arenas/arizona-veterans-memorial-coliseum.data.js +21 -0
  20. package/dist/arenas/ball-arena.data.d.ts +2 -0
  21. package/dist/arenas/ball-arena.data.js +26 -0
  22. package/dist/arenas/baltimore-civic-center.data.d.ts +2 -0
  23. package/dist/arenas/baltimore-civic-center.data.js +19 -0
  24. package/dist/arenas/baltimore-coliseum.data.d.ts +2 -0
  25. package/dist/arenas/baltimore-coliseum.data.js +20 -0
  26. package/dist/arenas/barclays-center.data.d.ts +2 -0
  27. package/dist/arenas/barclays-center.data.js +19 -0
  28. package/dist/arenas/barton-street-arena.data.d.ts +2 -0
  29. package/dist/arenas/barton-street-arena.data.js +23 -0
  30. package/dist/arenas/bell-centre.data.d.ts +2 -0
  31. package/dist/arenas/bell-centre.data.js +27 -0
  32. package/dist/arenas/benchmark-international-arena.data.d.ts +2 -0
  33. package/dist/arenas/benchmark-international-arena.data.js +19 -0
  34. package/dist/arenas/big-e-coliseum.data.d.ts +2 -0
  35. package/dist/arenas/big-e-coliseum.data.js +18 -0
  36. package/dist/arenas/bill-graham-civic-auditorium.data.d.ts +2 -0
  37. package/dist/arenas/bill-graham-civic-auditorium.data.js +23 -0
  38. package/dist/arenas/bok-center.data.d.ts +2 -0
  39. package/dist/arenas/bok-center.data.js +18 -0
  40. package/dist/arenas/boston-garden.data.d.ts +2 -0
  41. package/dist/arenas/boston-garden.data.js +25 -0
  42. package/dist/arenas/bradley-center.data.d.ts +2 -0
  43. package/dist/arenas/bradley-center.data.js +23 -0
  44. package/dist/arenas/bridgestone-arena.data.d.ts +2 -0
  45. package/dist/arenas/bridgestone-arena.data.js +26 -0
  46. package/dist/arenas/buffalo-memorial-auditorium.data.d.ts +2 -0
  47. package/dist/arenas/buffalo-memorial-auditorium.data.js +24 -0
  48. package/dist/arenas/calihan-hall.data.d.ts +2 -0
  49. package/dist/arenas/calihan-hall.data.js +22 -0
  50. package/dist/arenas/canada-life-centre.data.d.ts +2 -0
  51. package/dist/arenas/canada-life-centre.data.js +26 -0
  52. package/dist/arenas/canadian-tire-centre.data.d.ts +2 -0
  53. package/dist/arenas/canadian-tire-centre.data.js +28 -0
  54. package/dist/arenas/capital-centre.data.d.ts +2 -0
  55. package/dist/arenas/capital-centre.data.js +26 -0
  56. package/dist/arenas/capital-one-arena.data.d.ts +2 -0
  57. package/dist/arenas/capital-one-arena.data.js +26 -0
  58. package/dist/arenas/carefirst-arena.data.d.ts +2 -0
  59. package/dist/arenas/carefirst-arena.data.js +22 -0
  60. package/dist/arenas/charlotte-coliseum.data.d.ts +2 -0
  61. package/dist/arenas/charlotte-coliseum.data.js +21 -0
  62. package/dist/arenas/chase-center.data.d.ts +2 -0
  63. package/dist/arenas/chase-center.data.js +18 -0
  64. package/dist/arenas/chicago-coliseum.data.d.ts +2 -0
  65. package/dist/arenas/chicago-coliseum.data.js +16 -0
  66. package/dist/arenas/chicago-stadium.data.d.ts +2 -0
  67. package/dist/arenas/chicago-stadium.data.js +23 -0
  68. package/dist/arenas/cincinnati-gardens.data.d.ts +2 -0
  69. package/dist/arenas/cincinnati-gardens.data.js +20 -0
  70. package/dist/arenas/civic-arena.data.d.ts +2 -0
  71. package/dist/arenas/civic-arena.data.js +29 -0
  72. package/dist/arenas/cleveland-arena.data.d.ts +2 -0
  73. package/dist/arenas/cleveland-arena.data.js +20 -0
  74. package/dist/arenas/climate-pledge-arena.data.d.ts +2 -0
  75. package/dist/arenas/climate-pledge-arena.data.js +27 -0
  76. package/dist/arenas/cobo-arena.data.d.ts +2 -0
  77. package/dist/arenas/cobo-arena.data.js +25 -0
  78. package/dist/arenas/coca-cola-coliseum.data.d.ts +2 -0
  79. package/dist/arenas/coca-cola-coliseum.data.js +27 -0
  80. package/dist/arenas/colisee-de-quebec.data.d.ts +2 -0
  81. package/dist/arenas/colisee-de-quebec.data.js +29 -0
  82. package/dist/arenas/college-park-center.data.d.ts +2 -0
  83. package/dist/arenas/college-park-center.data.js +18 -0
  84. package/dist/arenas/cow-palace.data.d.ts +2 -0
  85. package/dist/arenas/cow-palace.data.js +24 -0
  86. package/dist/arenas/credit-union-1-arena.data.d.ts +2 -0
  87. package/dist/arenas/credit-union-1-arena.data.js +23 -0
  88. package/dist/arenas/crypto-com-arena.data.d.ts +2 -0
  89. package/dist/arenas/crypto-com-arena.data.js +25 -0
  90. package/dist/arenas/delta-center.data.d.ts +2 -0
  91. package/dist/arenas/delta-center.data.js +31 -0
  92. package/dist/arenas/denver-auditorium-arena.data.d.ts +2 -0
  93. package/dist/arenas/denver-auditorium-arena.data.js +19 -0
  94. package/dist/arenas/desert-diamond-arena.data.d.ts +2 -0
  95. package/dist/arenas/desert-diamond-arena.data.js +28 -0
  96. package/dist/arenas/detroit-olympia.data.d.ts +2 -0
  97. package/dist/arenas/detroit-olympia.data.js +21 -0
  98. package/dist/arenas/duquesne-gardens.data.d.ts +2 -0
  99. package/dist/arenas/duquesne-gardens.data.js +24 -0
  100. package/dist/arenas/edgerton-park-arena.data.d.ts +2 -0
  101. package/dist/arenas/edgerton-park-arena.data.js +19 -0
  102. package/dist/arenas/enterprise-center.data.d.ts +2 -0
  103. package/dist/arenas/enterprise-center.data.js +27 -0
  104. package/dist/arenas/expo-hall.data.d.ts +2 -0
  105. package/dist/arenas/expo-hall.data.js +22 -0
  106. package/dist/arenas/fedexforum.data.d.ts +2 -0
  107. package/dist/arenas/fedexforum.data.js +18 -0
  108. package/dist/arenas/first-horizon-coliseum.data.d.ts +2 -0
  109. package/dist/arenas/first-horizon-coliseum.data.js +24 -0
  110. package/dist/arenas/fiserv-forum.data.d.ts +2 -0
  111. package/dist/arenas/fiserv-forum.data.js +20 -0
  112. package/dist/arenas/frost-bank-center.data.d.ts +2 -0
  113. package/dist/arenas/frost-bank-center.data.js +27 -0
  114. package/dist/arenas/gainbridge-fieldhouse.data.d.ts +2 -0
  115. package/dist/arenas/gainbridge-fieldhouse.data.js +25 -0
  116. package/dist/arenas/golden-1-center.data.d.ts +2 -0
  117. package/dist/arenas/golden-1-center.data.js +20 -0
  118. package/dist/arenas/grand-casino-arena.data.d.ts +2 -0
  119. package/dist/arenas/grand-casino-arena.data.js +23 -0
  120. package/dist/arenas/hemisfair-arena.data.d.ts +2 -0
  121. package/dist/arenas/hemisfair-arena.data.js +22 -0
  122. package/dist/arenas/hinkle-fieldhouse.data.d.ts +2 -0
  123. package/dist/arenas/hinkle-fieldhouse.data.js +22 -0
  124. package/dist/arenas/hofheinz-pavilion.data.d.ts +2 -0
  125. package/dist/arenas/hofheinz-pavilion.data.js +18 -0
  126. package/dist/arenas/honda-center.data.d.ts +2 -0
  127. package/dist/arenas/honda-center.data.js +25 -0
  128. package/dist/arenas/international-amphitheatre.data.d.ts +2 -0
  129. package/dist/arenas/international-amphitheatre.data.js +26 -0
  130. package/dist/arenas/intuit-dome.data.d.ts +2 -0
  131. package/dist/arenas/intuit-dome.data.js +19 -0
  132. package/dist/arenas/joe-louis-arena.data.d.ts +2 -0
  133. package/dist/arenas/joe-louis-arena.data.js +20 -0
  134. package/dist/arenas/jubilee-arena.data.d.ts +2 -0
  135. package/dist/arenas/jubilee-arena.data.js +19 -0
  136. package/dist/arenas/kaseya-center.data.d.ts +2 -0
  137. package/dist/arenas/kaseya-center.data.js +29 -0
  138. package/dist/arenas/kemper-arena.data.d.ts +2 -0
  139. package/dist/arenas/kemper-arena.data.js +21 -0
  140. package/dist/arenas/keybank-center.data.d.ts +2 -0
  141. package/dist/arenas/keybank-center.data.js +28 -0
  142. package/dist/arenas/kia-center.data.d.ts +2 -0
  143. package/dist/arenas/kia-center.data.js +23 -0
  144. package/dist/arenas/kia-forum.data.d.ts +2 -0
  145. package/dist/arenas/kia-forum.data.js +23 -0
  146. package/dist/arenas/kiel-auditorium.data.d.ts +2 -0
  147. package/dist/arenas/kiel-auditorium.data.js +27 -0
  148. package/dist/arenas/lenovo-center.data.d.ts +2 -0
  149. package/dist/arenas/lenovo-center.data.js +28 -0
  150. package/dist/arenas/little-caesars-arena.data.d.ts +2 -0
  151. package/dist/arenas/little-caesars-arena.data.js +20 -0
  152. package/dist/arenas/los-angeles-memorial-sports-arena.data.d.ts +2 -0
  153. package/dist/arenas/los-angeles-memorial-sports-arena.data.js +22 -0
  154. package/dist/arenas/loyola-field-house.data.d.ts +2 -0
  155. package/dist/arenas/loyola-field-house.data.js +19 -0
  156. package/dist/arenas/madison-square-garden-1925.data.d.ts +2 -0
  157. package/dist/arenas/madison-square-garden-1925.data.js +25 -0
  158. package/dist/arenas/madison-square-garden.data.d.ts +2 -0
  159. package/dist/arenas/madison-square-garden.data.js +24 -0
  160. package/dist/arenas/maple-leaf-gardens.data.d.ts +2 -0
  161. package/dist/arenas/maple-leaf-gardens.data.js +20 -0
  162. package/dist/arenas/market-square-arena.data.d.ts +2 -0
  163. package/dist/arenas/market-square-arena.data.js +20 -0
  164. package/dist/arenas/massmutual-center.data.d.ts +2 -0
  165. package/dist/arenas/massmutual-center.data.js +23 -0
  166. package/dist/arenas/matthews-arena.data.d.ts +2 -0
  167. package/dist/arenas/matthews-arena.data.js +29 -0
  168. package/dist/arenas/mcnichols-sports-arena.data.d.ts +2 -0
  169. package/dist/arenas/mcnichols-sports-arena.data.js +19 -0
  170. package/dist/arenas/meadowlands-arena.data.d.ts +2 -0
  171. package/dist/arenas/meadowlands-arena.data.js +29 -0
  172. package/dist/arenas/memphis-pyramid.data.d.ts +2 -0
  173. package/dist/arenas/memphis-pyramid.data.js +19 -0
  174. package/dist/arenas/met-center.data.d.ts +2 -0
  175. package/dist/arenas/met-center.data.js +23 -0
  176. package/dist/arenas/miami-arena.data.d.ts +2 -0
  177. package/dist/arenas/miami-arena.data.js +19 -0
  178. package/dist/arenas/michelob-ultra-arena.data.d.ts +2 -0
  179. package/dist/arenas/michelob-ultra-arena.data.js +23 -0
  180. package/dist/arenas/milwaukee-arena.data.d.ts +2 -0
  181. package/dist/arenas/milwaukee-arena.data.js +27 -0
  182. package/dist/arenas/minneapolis-armory.data.d.ts +2 -0
  183. package/dist/arenas/minneapolis-armory.data.js +17 -0
  184. package/dist/arenas/minneapolis-auditorium.data.d.ts +2 -0
  185. package/dist/arenas/minneapolis-auditorium.data.js +20 -0
  186. package/dist/arenas/moda-center.data.d.ts +2 -0
  187. package/dist/arenas/moda-center.data.js +23 -0
  188. package/dist/arenas/mohegan-sun-arena.data.d.ts +2 -0
  189. package/dist/arenas/mohegan-sun-arena.data.js +19 -0
  190. package/dist/arenas/montreal-arena.data.d.ts +2 -0
  191. package/dist/arenas/montreal-arena.data.js +22 -0
  192. package/dist/arenas/montreal-forum.data.d.ts +2 -0
  193. package/dist/arenas/montreal-forum.data.js +24 -0
  194. package/dist/arenas/moody-coliseum.data.d.ts +2 -0
  195. package/dist/arenas/moody-coliseum.data.js +22 -0
  196. package/dist/arenas/mortgage-matchup-center.data.d.ts +2 -0
  197. package/dist/arenas/mortgage-matchup-center.data.js +36 -0
  198. package/dist/arenas/mount-royal-arena.data.d.ts +2 -0
  199. package/dist/arenas/mount-royal-arena.data.js +19 -0
  200. package/dist/arenas/mullett-arena.data.d.ts +2 -0
  201. package/dist/arenas/mullett-arena.data.js +18 -0
  202. package/dist/arenas/municipal-auditorium-kansas-city.data.d.ts +2 -0
  203. package/dist/arenas/municipal-auditorium-kansas-city.data.js +21 -0
  204. package/dist/arenas/municipal-auditorium-new-orleans.data.d.ts +2 -0
  205. package/dist/arenas/municipal-auditorium-new-orleans.data.js +19 -0
  206. package/dist/arenas/mutual-street-arena.data.d.ts +2 -0
  207. package/dist/arenas/mutual-street-arena.data.js +19 -0
  208. package/dist/arenas/nassau-coliseum.data.d.ts +2 -0
  209. package/dist/arenas/nassau-coliseum.data.js +20 -0
  210. package/dist/arenas/nationwide-arena.data.d.ts +2 -0
  211. package/dist/arenas/nationwide-arena.data.js +18 -0
  212. package/dist/arenas/northlands-coliseum.data.d.ts +2 -0
  213. package/dist/arenas/northlands-coliseum.data.js +28 -0
  214. package/dist/arenas/oakland-arena.data.d.ts +2 -0
  215. package/dist/arenas/oakland-arena.data.js +28 -0
  216. package/dist/arenas/omaha-civic-auditorium.data.d.ts +2 -0
  217. package/dist/arenas/omaha-civic-auditorium.data.js +20 -0
  218. package/dist/arenas/omni-coliseum.data.d.ts +2 -0
  219. package/dist/arenas/omni-coliseum.data.js +22 -0
  220. package/dist/arenas/onondaga-county-war-memorial.data.d.ts +2 -0
  221. package/dist/arenas/onondaga-county-war-memorial.data.js +23 -0
  222. package/dist/arenas/orlando-arena.data.d.ts +2 -0
  223. package/dist/arenas/orlando-arena.data.js +28 -0
  224. package/dist/arenas/ottawa-auditorium.data.d.ts +2 -0
  225. package/dist/arenas/ottawa-auditorium.data.js +18 -0
  226. package/dist/arenas/pacific-coliseum.data.d.ts +2 -0
  227. package/dist/arenas/pacific-coliseum.data.js +20 -0
  228. package/dist/arenas/palace-of-auburn-hills.data.d.ts +2 -0
  229. package/dist/arenas/palace-of-auburn-hills.data.js +21 -0
  230. package/dist/arenas/paycom-center.data.d.ts +2 -0
  231. package/dist/arenas/paycom-center.data.js +30 -0
  232. package/dist/arenas/pechanga-arena.data.d.ts +2 -0
  233. package/dist/arenas/pechanga-arena.data.js +25 -0
  234. package/dist/arenas/peoplesbank-arena.data.d.ts +2 -0
  235. package/dist/arenas/peoplesbank-arena.data.js +27 -0
  236. package/dist/arenas/philadelphia-arena.data.d.ts +2 -0
  237. package/dist/arenas/philadelphia-arena.data.js +30 -0
  238. package/dist/arenas/philadelphia-convention-hall-and-civic-center.data.d.ts +2 -0
  239. package/dist/arenas/philadelphia-convention-hall-and-civic-center.data.js +23 -0
  240. package/dist/arenas/place-bell.data.d.ts +2 -0
  241. package/dist/arenas/place-bell.data.js +19 -0
  242. package/dist/arenas/ppg-paints-arena.data.d.ts +2 -0
  243. package/dist/arenas/ppg-paints-arena.data.js +24 -0
  244. package/dist/arenas/prudential-center.data.d.ts +2 -0
  245. package/dist/arenas/prudential-center.data.js +18 -0
  246. package/dist/arenas/quebec-arena.data.d.ts +2 -0
  247. package/dist/arenas/quebec-arena.data.js +19 -0
  248. package/dist/arenas/reliant-arena.data.d.ts +2 -0
  249. package/dist/arenas/reliant-arena.data.js +24 -0
  250. package/dist/arenas/reunion-arena.data.d.ts +2 -0
  251. package/dist/arenas/reunion-arena.data.js +21 -0
  252. package/dist/arenas/rhode-island-auditorium.data.d.ts +2 -0
  253. package/dist/arenas/rhode-island-auditorium.data.js +19 -0
  254. package/dist/arenas/richfield-coliseum.data.d.ts +2 -0
  255. package/dist/arenas/richfield-coliseum.data.js +20 -0
  256. package/dist/arenas/rochester-community-war-memorial.data.d.ts +2 -0
  257. package/dist/arenas/rochester-community-war-memorial.data.js +24 -0
  258. package/dist/arenas/rocket-arena.data.d.ts +2 -0
  259. package/dist/arenas/rocket-arena.data.js +28 -0
  260. package/dist/arenas/rogers-arena.data.d.ts +2 -0
  261. package/dist/arenas/rogers-arena.data.js +20 -0
  262. package/dist/arenas/rogers-place.data.d.ts +2 -0
  263. package/dist/arenas/rogers-place.data.js +18 -0
  264. package/dist/arenas/rutgers-athletic-center.data.d.ts +2 -0
  265. package/dist/arenas/rutgers-athletic-center.data.js +23 -0
  266. package/dist/arenas/salt-palace.data.d.ts +2 -0
  267. package/dist/arenas/salt-palace.data.js +20 -0
  268. package/dist/arenas/sap-center.data.d.ts +2 -0
  269. package/dist/arenas/sap-center.data.js +30 -0
  270. package/dist/arenas/scotiabank-arena.data.d.ts +2 -0
  271. package/dist/arenas/scotiabank-arena.data.js +21 -0
  272. package/dist/arenas/scotiabank-saddledome.data.d.ts +2 -0
  273. package/dist/arenas/scotiabank-saddledome.data.js +27 -0
  274. package/dist/arenas/sheboygan-armory.data.d.ts +2 -0
  275. package/dist/arenas/sheboygan-armory.data.js +17 -0
  276. package/dist/arenas/smoothie-king-center.data.d.ts +2 -0
  277. package/dist/arenas/smoothie-king-center.data.js +24 -0
  278. package/dist/arenas/spectrum-center.data.d.ts +2 -0
  279. package/dist/arenas/spectrum-center.data.js +27 -0
  280. package/dist/arenas/spectrum.data.d.ts +2 -0
  281. package/dist/arenas/spectrum.data.js +27 -0
  282. package/dist/arenas/st-louis-arena.data.d.ts +2 -0
  283. package/dist/arenas/st-louis-arena.data.js +25 -0
  284. package/dist/arenas/stampede-corral.data.d.ts +2 -0
  285. package/dist/arenas/stampede-corral.data.js +21 -0
  286. package/dist/arenas/state-farm-arena.data.d.ts +2 -0
  287. package/dist/arenas/state-farm-arena.data.js +24 -0
  288. package/dist/arenas/t-mobile-arena.data.d.ts +2 -0
  289. package/dist/arenas/t-mobile-arena.data.js +20 -0
  290. package/dist/arenas/tacoma-dome.data.d.ts +2 -0
  291. package/dist/arenas/tacoma-dome.data.js +19 -0
  292. package/dist/arenas/target-center.data.d.ts +2 -0
  293. package/dist/arenas/target-center.data.js +18 -0
  294. package/dist/arenas/td-garden.data.d.ts +2 -0
  295. package/dist/arenas/td-garden.data.js +21 -0
  296. package/dist/arenas/td-place-arena.data.d.ts +2 -0
  297. package/dist/arenas/td-place-arena.data.js +29 -0
  298. package/dist/arenas/the-arena-ottawa.data.d.ts +2 -0
  299. package/dist/arenas/the-arena-ottawa.data.js +20 -0
  300. package/dist/arenas/the-hippodrome.data.d.ts +2 -0
  301. package/dist/arenas/the-hippodrome.data.js +24 -0
  302. package/dist/arenas/the-summit.data.d.ts +2 -0
  303. package/dist/arenas/the-summit.data.js +26 -0
  304. package/dist/arenas/total-mortgage-arena.data.d.ts +2 -0
  305. package/dist/arenas/total-mortgage-arena.data.js +25 -0
  306. package/dist/arenas/toyota-center.data.d.ts +2 -0
  307. package/dist/arenas/toyota-center.data.js +20 -0
  308. package/dist/arenas/toyota-coliseum.data.d.ts +2 -0
  309. package/dist/arenas/toyota-coliseum.data.js +17 -0
  310. package/dist/arenas/tsongas-center.data.d.ts +2 -0
  311. package/dist/arenas/tsongas-center.data.js +22 -0
  312. package/dist/arenas/ubs-arena.data.d.ts +2 -0
  313. package/dist/arenas/ubs-arena.data.js +19 -0
  314. package/dist/arenas/uline-arena.data.d.ts +2 -0
  315. package/dist/arenas/uline-arena.data.js +19 -0
  316. package/dist/arenas/united-center.data.d.ts +2 -0
  317. package/dist/arenas/united-center.data.js +21 -0
  318. package/dist/arenas/verdun-auditorium.data.d.ts +2 -0
  319. package/dist/arenas/verdun-auditorium.data.js +20 -0
  320. package/dist/arenas/veterans-memorial-coliseum.data.d.ts +2 -0
  321. package/dist/arenas/veterans-memorial-coliseum.data.js +21 -0
  322. package/dist/arenas/war-memorial-gymnasium.data.d.ts +2 -0
  323. package/dist/arenas/war-memorial-gymnasium.data.js +19 -0
  324. package/dist/arenas/westchester-county-center.data.d.ts +2 -0
  325. package/dist/arenas/westchester-county-center.data.js +18 -0
  326. package/dist/arenas/wharton-field-house.data.d.ts +2 -0
  327. package/dist/arenas/wharton-field-house.data.js +18 -0
  328. package/dist/arenas/windsor-arena.data.d.ts +2 -0
  329. package/dist/arenas/windsor-arena.data.js +23 -0
  330. package/dist/arenas/winnipeg-arena.data.d.ts +2 -0
  331. package/dist/arenas/winnipeg-arena.data.js +20 -0
  332. package/dist/arenas/wintrust-arena.data.d.ts +2 -0
  333. package/dist/arenas/wintrust-arena.data.js +19 -0
  334. package/dist/arenas/xfinity-mobile-arena.data.d.ts +2 -0
  335. package/dist/arenas/xfinity-mobile-arena.data.js +23 -0
  336. package/dist/arenas.core.d.ts +107 -0
  337. package/dist/arenas.core.js +59 -0
  338. package/dist/arenas.d.ts +3 -103
  339. package/dist/arenas.data.d.ts +1 -1
  340. package/dist/arenas.index.d.ts +8 -0
  341. package/dist/arenas.index.js +169 -0
  342. package/dist/arenas.js +4 -50
  343. package/dist/athletics/plan.js +2 -2
  344. package/dist/athletics-entry.d.ts +1 -0
  345. package/dist/athletics-entry.js +1 -0
  346. package/dist/ballpark.d.ts +1 -1
  347. package/dist/ballpark.js +2 -2
  348. package/dist/budo-entry.d.ts +1 -0
  349. package/dist/budo-entry.js +1 -0
  350. package/dist/canvas-entry.d.ts +1 -0
  351. package/dist/canvas-entry.js +1 -0
  352. package/dist/charts-entry.d.ts +1 -0
  353. package/dist/charts-entry.js +1 -0
  354. package/dist/charts.baseball.js +2 -2
  355. package/dist/context.d.ts +2 -0
  356. package/dist/context.js +17 -0
  357. package/dist/d3-entry.d.ts +1 -0
  358. package/dist/d3-entry.js +1 -0
  359. package/dist/district-entry.d.ts +2 -20
  360. package/dist/district-entry.js +3 -12
  361. package/dist/district-lean-entry.d.ts +7 -0
  362. package/dist/district-lean-entry.js +8 -0
  363. package/dist/district.api.d.ts +20 -0
  364. package/dist/district.api.js +13 -0
  365. package/dist/district.d.ts +5 -0
  366. package/dist/district.js +22 -2
  367. package/dist/district.turn.js +61 -6
  368. package/dist/draw.js +21 -19
  369. package/dist/draw.parts.d.ts +12 -0
  370. package/dist/draw.parts.js +14 -0
  371. package/dist/element-entry.d.ts +1 -0
  372. package/dist/element-entry.js +1 -0
  373. package/dist/events-entry.d.ts +1 -0
  374. package/dist/events-entry.js +1 -0
  375. package/dist/events.js +4 -4
  376. package/dist/flythrough-entry.d.ts +1 -0
  377. package/dist/flythrough-entry.js +1 -0
  378. package/dist/flythrough.dom.js +2 -2
  379. package/dist/full.d.ts +3 -0
  380. package/dist/full.js +10 -0
  381. package/dist/geojson-entry.d.ts +1 -0
  382. package/dist/geojson-entry.js +1 -0
  383. package/dist/grounds/allianz-arena.data.d.ts +2 -0
  384. package/dist/grounds/allianz-arena.data.js +30 -0
  385. package/dist/grounds/allianz-stadium-turin.data.d.ts +2 -0
  386. package/dist/grounds/allianz-stadium-turin.data.js +25 -0
  387. package/dist/grounds/anfield.data.d.ts +2 -0
  388. package/dist/grounds/anfield.data.js +22 -0
  389. package/dist/grounds/arrowhead-stadium.data.d.ts +2 -0
  390. package/dist/grounds/arrowhead-stadium.data.js +27 -0
  391. package/dist/grounds/att-stadium.data.d.ts +2 -0
  392. package/dist/grounds/att-stadium.data.js +30 -0
  393. package/dist/grounds/bc-place.data.d.ts +2 -0
  394. package/dist/grounds/bc-place.data.js +27 -0
  395. package/dist/grounds/bmo-field.data.d.ts +2 -0
  396. package/dist/grounds/bmo-field.data.js +28 -0
  397. package/dist/grounds/camp-nou.data.d.ts +2 -0
  398. package/dist/grounds/camp-nou.data.js +33 -0
  399. package/dist/grounds/celtic-park.data.d.ts +2 -0
  400. package/dist/grounds/celtic-park.data.js +23 -0
  401. package/dist/grounds/dignity-health-sports-park.data.d.ts +2 -0
  402. package/dist/grounds/dignity-health-sports-park.data.js +30 -0
  403. package/dist/grounds/emirates-stadium.data.d.ts +2 -0
  404. package/dist/grounds/emirates-stadium.data.js +23 -0
  405. package/dist/grounds/estadio-akron.data.d.ts +2 -0
  406. package/dist/grounds/estadio-akron.data.js +30 -0
  407. package/dist/grounds/estadio-azteca.data.d.ts +2 -0
  408. package/dist/grounds/estadio-azteca.data.js +37 -0
  409. package/dist/grounds/estadio-bbva.data.d.ts +2 -0
  410. package/dist/grounds/estadio-bbva.data.js +31 -0
  411. package/dist/grounds/estadio-centenario.data.d.ts +2 -0
  412. package/dist/grounds/estadio-centenario.data.js +28 -0
  413. package/dist/grounds/estadio-da-luz.data.d.ts +2 -0
  414. package/dist/grounds/estadio-da-luz.data.js +26 -0
  415. package/dist/grounds/estadio-nacional-santiago.data.d.ts +2 -0
  416. package/dist/grounds/estadio-nacional-santiago.data.js +32 -0
  417. package/dist/grounds/etihad-stadium.data.d.ts +2 -0
  418. package/dist/grounds/etihad-stadium.data.js +26 -0
  419. package/dist/grounds/gillette-stadium.data.d.ts +2 -0
  420. package/dist/grounds/gillette-stadium.data.js +29 -0
  421. package/dist/grounds/groupama-stadium.data.d.ts +2 -0
  422. package/dist/grounds/groupama-stadium.data.js +32 -0
  423. package/dist/grounds/hampden-park.data.d.ts +2 -0
  424. package/dist/grounds/hampden-park.data.js +24 -0
  425. package/dist/grounds/hard-rock-stadium.data.d.ts +2 -0
  426. package/dist/grounds/hard-rock-stadium.data.js +34 -0
  427. package/dist/grounds/hongkou-football-stadium.data.d.ts +2 -0
  428. package/dist/grounds/hongkou-football-stadium.data.js +26 -0
  429. package/dist/grounds/ibrox.data.d.ts +2 -0
  430. package/dist/grounds/ibrox.data.js +26 -0
  431. package/dist/grounds/japan-national-stadium.data.d.ts +2 -0
  432. package/dist/grounds/japan-national-stadium.data.js +27 -0
  433. package/dist/grounds/johan-cruyff-arena.data.d.ts +2 -0
  434. package/dist/grounds/johan-cruyff-arena.data.js +29 -0
  435. package/dist/grounds/kashima-soccer-stadium.data.d.ts +2 -0
  436. package/dist/grounds/kashima-soccer-stadium.data.js +31 -0
  437. package/dist/grounds/la-bombonera.data.d.ts +2 -0
  438. package/dist/grounds/la-bombonera.data.js +32 -0
  439. package/dist/grounds/levis-stadium.data.d.ts +2 -0
  440. package/dist/grounds/levis-stadium.data.js +28 -0
  441. package/dist/grounds/lincoln-financial-field.data.d.ts +2 -0
  442. package/dist/grounds/lincoln-financial-field.data.js +28 -0
  443. package/dist/grounds/lumen-field.data.d.ts +2 -0
  444. package/dist/grounds/lumen-field.data.js +30 -0
  445. package/dist/grounds/lusail.data.d.ts +2 -0
  446. package/dist/grounds/lusail.data.js +26 -0
  447. package/dist/grounds/luzhniki.data.d.ts +2 -0
  448. package/dist/grounds/luzhniki.data.js +34 -0
  449. package/dist/grounds/maracana.data.d.ts +2 -0
  450. package/dist/grounds/maracana.data.js +33 -0
  451. package/dist/grounds/mercedes-benz-stadium.data.d.ts +2 -0
  452. package/dist/grounds/mercedes-benz-stadium.data.js +28 -0
  453. package/dist/grounds/metlife-stadium.data.d.ts +2 -0
  454. package/dist/grounds/metlife-stadium.data.js +29 -0
  455. package/dist/grounds/monumental.data.d.ts +2 -0
  456. package/dist/grounds/monumental.data.js +33 -0
  457. package/dist/grounds/nissan-stadium-yokohama.data.d.ts +2 -0
  458. package/dist/grounds/nissan-stadium-yokohama.data.js +36 -0
  459. package/dist/grounds/nrg-stadium.data.d.ts +2 -0
  460. package/dist/grounds/nrg-stadium.data.js +30 -0
  461. package/dist/grounds/old-trafford.data.d.ts +2 -0
  462. package/dist/grounds/old-trafford.data.js +25 -0
  463. package/dist/grounds/olympiastadion-berlin.data.d.ts +2 -0
  464. package/dist/grounds/olympiastadion-berlin.data.js +30 -0
  465. package/dist/grounds/olympiastadion-munich.data.d.ts +2 -0
  466. package/dist/grounds/olympiastadion-munich.data.js +29 -0
  467. package/dist/grounds/parc-des-princes.data.d.ts +2 -0
  468. package/dist/grounds/parc-des-princes.data.js +27 -0
  469. package/dist/grounds/rasunda.data.d.ts +2 -0
  470. package/dist/grounds/rasunda.data.js +28 -0
  471. package/dist/grounds/rose-bowl.data.d.ts +2 -0
  472. package/dist/grounds/rose-bowl.data.js +27 -0
  473. package/dist/grounds/saitama-stadium-2002.data.d.ts +2 -0
  474. package/dist/grounds/saitama-stadium-2002.data.js +30 -0
  475. package/dist/grounds/san-siro.data.d.ts +2 -0
  476. package/dist/grounds/san-siro.data.js +38 -0
  477. package/dist/grounds/santiago-bernabeu.data.d.ts +2 -0
  478. package/dist/grounds/santiago-bernabeu.data.js +33 -0
  479. package/dist/grounds/seoul-world-cup-stadium.data.d.ts +2 -0
  480. package/dist/grounds/seoul-world-cup-stadium.data.js +27 -0
  481. package/dist/grounds/signal-iduna-park.data.d.ts +2 -0
  482. package/dist/grounds/signal-iduna-park.data.js +32 -0
  483. package/dist/grounds/soccer-city.data.d.ts +2 -0
  484. package/dist/grounds/soccer-city.data.js +30 -0
  485. package/dist/grounds/sofi-stadium.data.d.ts +2 -0
  486. package/dist/grounds/sofi-stadium.data.js +26 -0
  487. package/dist/grounds/stade-de-france.data.d.ts +2 -0
  488. package/dist/grounds/stade-de-france.data.js +28 -0
  489. package/dist/grounds/stade-yves-du-manoir.data.d.ts +2 -0
  490. package/dist/grounds/stade-yves-du-manoir.data.js +32 -0
  491. package/dist/grounds/stadio-nazionale-pnf.data.d.ts +2 -0
  492. package/dist/grounds/stadio-nazionale-pnf.data.js +28 -0
  493. package/dist/grounds/stadio-olimpico-rome.data.d.ts +2 -0
  494. package/dist/grounds/stadio-olimpico-rome.data.js +34 -0
  495. package/dist/grounds/stadium-australia.data.d.ts +2 -0
  496. package/dist/grounds/stadium-australia.data.js +31 -0
  497. package/dist/grounds/stamford-bridge.data.d.ts +2 -0
  498. package/dist/grounds/stamford-bridge.data.js +23 -0
  499. package/dist/grounds/tianhe-stadium.data.d.ts +2 -0
  500. package/dist/grounds/tianhe-stadium.data.js +29 -0
  501. package/dist/grounds/tottenham-hotspur-stadium.data.d.ts +2 -0
  502. package/dist/grounds/tottenham-hotspur-stadium.data.js +23 -0
  503. package/dist/grounds/waldstadion-frankfurt.data.d.ts +2 -0
  504. package/dist/grounds/waldstadion-frankfurt.data.js +38 -0
  505. package/dist/grounds/wankdorf.data.d.ts +2 -0
  506. package/dist/grounds/wankdorf.data.js +25 -0
  507. package/dist/grounds/wembley-1923.data.d.ts +2 -0
  508. package/dist/grounds/wembley-1923.data.js +28 -0
  509. package/dist/grounds/wembley.data.d.ts +2 -0
  510. package/dist/grounds/wembley.data.js +25 -0
  511. package/dist/grounds.core.d.ts +108 -0
  512. package/dist/grounds.core.js +51 -0
  513. package/dist/grounds.d.ts +3 -104
  514. package/dist/grounds.data.d.ts +1 -1
  515. package/dist/grounds.index.d.ts +8 -0
  516. package/dist/grounds.index.js +66 -0
  517. package/dist/grounds.js +4 -40
  518. package/dist/index.d.ts +3 -1
  519. package/dist/index.js +3 -1
  520. package/dist/judging-entry.d.ts +1 -0
  521. package/dist/judging-entry.js +1 -0
  522. package/dist/judging.mount.js +7 -0
  523. package/dist/kodokan.d.ts +5 -0
  524. package/dist/kodokan.js +3 -1
  525. package/dist/layers-entry.d.ts +1 -0
  526. package/dist/layers-entry.js +1 -0
  527. package/dist/layouts-entry.d.ts +1 -0
  528. package/dist/layouts-entry.js +1 -0
  529. package/dist/leagues-entry.d.ts +2 -1
  530. package/dist/leagues-entry.js +2 -1
  531. package/dist/leagues.d.ts +0 -2
  532. package/dist/leagues.js +0 -2
  533. package/dist/mount-entry.d.ts +1 -0
  534. package/dist/mount-entry.js +1 -0
  535. package/dist/multi-entry.d.ts +1 -0
  536. package/dist/multi-entry.js +1 -0
  537. package/dist/outline.js +5 -5
  538. package/dist/outside.dom.d.ts +5 -0
  539. package/dist/outside.dom.js +13 -5
  540. package/dist/outside.js +3 -3
  541. package/dist/parks/american-family-field.data.d.ts +2 -0
  542. package/dist/parks/american-family-field.data.js +33 -0
  543. package/dist/parks/angel-stadium.data.d.ts +2 -0
  544. package/dist/parks/angel-stadium.data.js +51 -0
  545. package/dist/parks/arlington-stadium.data.d.ts +2 -0
  546. package/dist/parks/arlington-stadium.data.js +35 -0
  547. package/dist/parks/astrodome.data.d.ts +2 -0
  548. package/dist/parks/astrodome.data.js +40 -0
  549. package/dist/parks/atlanta-fulton-county-stadium.data.d.ts +2 -0
  550. package/dist/parks/atlanta-fulton-county-stadium.data.js +62 -0
  551. package/dist/parks/baker-bowl.data.d.ts +2 -0
  552. package/dist/parks/baker-bowl.data.js +43 -0
  553. package/dist/parks/baltimore-memorial-stadium.data.d.ts +2 -0
  554. package/dist/parks/baltimore-memorial-stadium.data.js +60 -0
  555. package/dist/parks/belluna-dome.data.d.ts +2 -0
  556. package/dist/parks/belluna-dome.data.js +73 -0
  557. package/dist/parks/braves-field.data.d.ts +2 -0
  558. package/dist/parks/braves-field.data.js +38 -0
  559. package/dist/parks/busch-memorial-stadium.data.d.ts +2 -0
  560. package/dist/parks/busch-memorial-stadium.data.js +51 -0
  561. package/dist/parks/busch-stadium.data.d.ts +2 -0
  562. package/dist/parks/busch-stadium.data.js +32 -0
  563. package/dist/parks/candlestick-park.data.d.ts +2 -0
  564. package/dist/parks/candlestick-park.data.js +44 -0
  565. package/dist/parks/chase-field.data.d.ts +2 -0
  566. package/dist/parks/chase-field.data.js +34 -0
  567. package/dist/parks/citi-field.data.d.ts +2 -0
  568. package/dist/parks/citi-field.data.js +49 -0
  569. package/dist/parks/citizens-bank-park.data.d.ts +2 -0
  570. package/dist/parks/citizens-bank-park.data.js +35 -0
  571. package/dist/parks/cleveland-stadium.data.d.ts +2 -0
  572. package/dist/parks/cleveland-stadium.data.js +37 -0
  573. package/dist/parks/colt-stadium.data.d.ts +2 -0
  574. package/dist/parks/colt-stadium.data.js +35 -0
  575. package/dist/parks/comerica-park.data.d.ts +2 -0
  576. package/dist/parks/comerica-park.data.js +39 -0
  577. package/dist/parks/comiskey-park.data.d.ts +2 -0
  578. package/dist/parks/comiskey-park.data.js +50 -0
  579. package/dist/parks/coors-field.data.d.ts +2 -0
  580. package/dist/parks/coors-field.data.js +47 -0
  581. package/dist/parks/crosley-field.data.d.ts +2 -0
  582. package/dist/parks/crosley-field.data.js +52 -0
  583. package/dist/parks/daikin-park.data.d.ts +2 -0
  584. package/dist/parks/daikin-park.data.js +60 -0
  585. package/dist/parks/dodger-stadium.data.d.ts +2 -0
  586. package/dist/parks/dodger-stadium.data.js +37 -0
  587. package/dist/parks/ebbets-field.data.d.ts +2 -0
  588. package/dist/parks/ebbets-field.data.js +47 -0
  589. package/dist/parks/es-con-field-hokkaido.data.d.ts +2 -0
  590. package/dist/parks/es-con-field-hokkaido.data.js +40 -0
  591. package/dist/parks/exhibition-stadium.data.d.ts +2 -0
  592. package/dist/parks/exhibition-stadium.data.js +37 -0
  593. package/dist/parks/exposition-park-pittsburgh.data.d.ts +2 -0
  594. package/dist/parks/exposition-park-pittsburgh.data.js +32 -0
  595. package/dist/parks/fenway-park.data.d.ts +2 -0
  596. package/dist/parks/fenway-park.data.js +61 -0
  597. package/dist/parks/forbes-field.data.d.ts +2 -0
  598. package/dist/parks/forbes-field.data.js +65 -0
  599. package/dist/parks/globe-life-field.data.d.ts +2 -0
  600. package/dist/parks/globe-life-field.data.js +31 -0
  601. package/dist/parks/globe-life-park-in-arlington.data.d.ts +2 -0
  602. package/dist/parks/globe-life-park-in-arlington.data.js +39 -0
  603. package/dist/parks/great-american-ball-park.data.d.ts +2 -0
  604. package/dist/parks/great-american-ball-park.data.js +32 -0
  605. package/dist/parks/griffith-stadium.data.d.ts +2 -0
  606. package/dist/parks/griffith-stadium.data.js +54 -0
  607. package/dist/parks/hanshin-koshien-stadium.data.d.ts +2 -0
  608. package/dist/parks/hanshin-koshien-stadium.data.js +42 -0
  609. package/dist/parks/heiwadai-stadium.data.d.ts +2 -0
  610. package/dist/parks/heiwadai-stadium.data.js +40 -0
  611. package/dist/parks/hilltop-park.data.d.ts +2 -0
  612. package/dist/parks/hilltop-park.data.js +35 -0
  613. package/dist/parks/hiroshima-municipal-stadium.data.d.ts +2 -0
  614. package/dist/parks/hiroshima-municipal-stadium.data.js +45 -0
  615. package/dist/parks/hotto-motto-field-kobe.data.d.ts +2 -0
  616. package/dist/parks/hotto-motto-field-kobe.data.js +59 -0
  617. package/dist/parks/huntington-avenue-grounds.data.d.ts +2 -0
  618. package/dist/parks/huntington-avenue-grounds.data.js +47 -0
  619. package/dist/parks/jarry-park-stadium.data.d.ts +2 -0
  620. package/dist/parks/jarry-park-stadium.data.js +37 -0
  621. package/dist/parks/kauffman-stadium.data.d.ts +2 -0
  622. package/dist/parks/kauffman-stadium.data.js +51 -0
  623. package/dist/parks/kawasaki-stadium.data.d.ts +2 -0
  624. package/dist/parks/kawasaki-stadium.data.js +35 -0
  625. package/dist/parks/korakuen-stadium.data.d.ts +2 -0
  626. package/dist/parks/korakuen-stadium.data.js +41 -0
  627. package/dist/parks/kyocera-dome-osaka.data.d.ts +2 -0
  628. package/dist/parks/kyocera-dome-osaka.data.js +50 -0
  629. package/dist/parks/league-park-cleveland.data.d.ts +2 -0
  630. package/dist/parks/league-park-cleveland.data.js +36 -0
  631. package/dist/parks/loandepot-park.data.d.ts +2 -0
  632. package/dist/parks/loandepot-park.data.js +36 -0
  633. package/dist/parks/mazda-stadium-hiroshima.data.d.ts +2 -0
  634. package/dist/parks/mazda-stadium-hiroshima.data.js +64 -0
  635. package/dist/parks/meiji-jingu-stadium.data.d.ts +2 -0
  636. package/dist/parks/meiji-jingu-stadium.data.js +49 -0
  637. package/dist/parks/metrodome.data.d.ts +2 -0
  638. package/dist/parks/metrodome.data.js +75 -0
  639. package/dist/parks/metropolitan-stadium.data.d.ts +2 -0
  640. package/dist/parks/metropolitan-stadium.data.js +45 -0
  641. package/dist/parks/mile-high-stadium.data.d.ts +2 -0
  642. package/dist/parks/mile-high-stadium.data.js +42 -0
  643. package/dist/parks/milwaukee-county-stadium.data.d.ts +2 -0
  644. package/dist/parks/milwaukee-county-stadium.data.js +78 -0
  645. package/dist/parks/mizuho-paypay-dome-fukuoka.data.d.ts +2 -0
  646. package/dist/parks/mizuho-paypay-dome-fukuoka.data.js +64 -0
  647. package/dist/parks/municipal-stadium-kansas-city.data.d.ts +2 -0
  648. package/dist/parks/municipal-stadium-kansas-city.data.js +37 -0
  649. package/dist/parks/nagoya-stadium.data.d.ts +2 -0
  650. package/dist/parks/nagoya-stadium.data.js +40 -0
  651. package/dist/parks/nationals-park.data.d.ts +2 -0
  652. package/dist/parks/nationals-park.data.js +30 -0
  653. package/dist/parks/oakland-coliseum.data.d.ts +2 -0
  654. package/dist/parks/oakland-coliseum.data.js +49 -0
  655. package/dist/parks/olympic-stadium-montreal.data.d.ts +2 -0
  656. package/dist/parks/olympic-stadium-montreal.data.js +51 -0
  657. package/dist/parks/oracle-park.data.d.ts +2 -0
  658. package/dist/parks/oracle-park.data.js +71 -0
  659. package/dist/parks/oriole-park-at-camden-yards.data.d.ts +2 -0
  660. package/dist/parks/oriole-park-at-camden-yards.data.js +56 -0
  661. package/dist/parks/osaka-stadium.data.d.ts +2 -0
  662. package/dist/parks/osaka-stadium.data.js +74 -0
  663. package/dist/parks/petco-park.data.d.ts +2 -0
  664. package/dist/parks/petco-park.data.js +48 -0
  665. package/dist/parks/pnc-park.data.d.ts +2 -0
  666. package/dist/parks/pnc-park.data.js +56 -0
  667. package/dist/parks/polo-grounds.data.d.ts +2 -0
  668. package/dist/parks/polo-grounds.data.js +89 -0
  669. package/dist/parks/progressive-field.data.d.ts +2 -0
  670. package/dist/parks/progressive-field.data.js +54 -0
  671. package/dist/parks/rakuten-mobile-park-miyagi.data.d.ts +2 -0
  672. package/dist/parks/rakuten-mobile-park-miyagi.data.js +57 -0
  673. package/dist/parks/rate-field.data.d.ts +2 -0
  674. package/dist/parks/rate-field.data.js +48 -0
  675. package/dist/parks/riverfront-stadium.data.d.ts +2 -0
  676. package/dist/parks/riverfront-stadium.data.js +47 -0
  677. package/dist/parks/robert-f-kennedy-memorial-stadium.data.d.ts +2 -0
  678. package/dist/parks/robert-f-kennedy-memorial-stadium.data.js +37 -0
  679. package/dist/parks/rogers-centre.data.d.ts +2 -0
  680. package/dist/parks/rogers-centre.data.js +35 -0
  681. package/dist/parks/sapporo-dome.data.d.ts +2 -0
  682. package/dist/parks/sapporo-dome.data.js +41 -0
  683. package/dist/parks/seals-stadium.data.d.ts +2 -0
  684. package/dist/parks/seals-stadium.data.js +47 -0
  685. package/dist/parks/shea-stadium.data.d.ts +2 -0
  686. package/dist/parks/shea-stadium.data.js +58 -0
  687. package/dist/parks/shibe-park.data.d.ts +2 -0
  688. package/dist/parks/shibe-park.data.js +82 -0
  689. package/dist/parks/sicks-stadium.data.d.ts +2 -0
  690. package/dist/parks/sicks-stadium.data.js +33 -0
  691. package/dist/parks/south-end-grounds.data.d.ts +2 -0
  692. package/dist/parks/south-end-grounds.data.js +38 -0
  693. package/dist/parks/sportsmans-park.data.d.ts +2 -0
  694. package/dist/parks/sportsmans-park.data.js +91 -0
  695. package/dist/parks/sutter-health-park.data.d.ts +2 -0
  696. package/dist/parks/sutter-health-park.data.js +31 -0
  697. package/dist/parks/t-mobile-park.data.d.ts +2 -0
  698. package/dist/parks/t-mobile-park.data.js +36 -0
  699. package/dist/parks/target-field.data.d.ts +2 -0
  700. package/dist/parks/target-field.data.js +31 -0
  701. package/dist/parks/three-rivers-stadium.data.d.ts +2 -0
  702. package/dist/parks/three-rivers-stadium.data.js +43 -0
  703. package/dist/parks/tiger-stadium.data.d.ts +2 -0
  704. package/dist/parks/tiger-stadium.data.js +53 -0
  705. package/dist/parks/tokyo-dome.data.d.ts +2 -0
  706. package/dist/parks/tokyo-dome.data.js +57 -0
  707. package/dist/parks/tropicana-field.data.d.ts +2 -0
  708. package/dist/parks/tropicana-field.data.js +34 -0
  709. package/dist/parks/truist-park.data.d.ts +2 -0
  710. package/dist/parks/truist-park.data.js +32 -0
  711. package/dist/parks/turner-field.data.d.ts +2 -0
  712. package/dist/parks/turner-field.data.js +35 -0
  713. package/dist/parks/vantelin-dome-nagoya.data.d.ts +2 -0
  714. package/dist/parks/vantelin-dome-nagoya.data.js +57 -0
  715. package/dist/parks/veterans-stadium.data.d.ts +2 -0
  716. package/dist/parks/veterans-stadium.data.js +35 -0
  717. package/dist/parks/wrigley-field-los-angeles.data.d.ts +2 -0
  718. package/dist/parks/wrigley-field-los-angeles.data.js +35 -0
  719. package/dist/parks/wrigley-field.data.d.ts +2 -0
  720. package/dist/parks/wrigley-field.data.js +124 -0
  721. package/dist/parks/yankee-stadium-1923.data.d.ts +2 -0
  722. package/dist/parks/yankee-stadium-1923.data.js +42 -0
  723. package/dist/parks/yankee-stadium.data.d.ts +2 -0
  724. package/dist/parks/yankee-stadium.data.js +49 -0
  725. package/dist/parks/yokohama-stadium.data.d.ts +2 -0
  726. package/dist/parks/yokohama-stadium.data.js +40 -0
  727. package/dist/parks/zozo-marine-stadium.data.d.ts +2 -0
  728. package/dist/parks/zozo-marine-stadium.data.js +51 -0
  729. package/dist/parks.core.d.ts +180 -0
  730. package/dist/parks.core.js +80 -0
  731. package/dist/parks.d.ts +3 -176
  732. package/dist/parks.data.d.ts +1 -1
  733. package/dist/parks.index.d.ts +8 -0
  734. package/dist/parks.index.js +96 -0
  735. package/dist/parks.js +4 -69
  736. package/dist/parks.walls.d.ts +1 -0
  737. package/dist/parks.walls.js +3 -0
  738. package/dist/plot-entry.d.ts +1 -0
  739. package/dist/plot-entry.js +1 -0
  740. package/dist/png-entry.d.ts +1 -0
  741. package/dist/png-entry.js +1 -0
  742. package/dist/pointer-entry.d.ts +1 -0
  743. package/dist/pointer-entry.js +1 -0
  744. package/dist/quality.d.ts +110 -0
  745. package/dist/quality.js +160 -0
  746. package/dist/react-entry.d.ts +1 -0
  747. package/dist/react-entry.js +1 -0
  748. package/dist/replay-entry.d.ts +1 -0
  749. package/dist/replay-entry.js +1 -0
  750. package/dist/rules.d.ts +1 -1
  751. package/dist/rules.js +6 -5
  752. package/dist/scene-entry.d.ts +1 -0
  753. package/dist/scene-entry.js +1 -0
  754. package/dist/skating-entry.d.ts +1 -0
  755. package/dist/skating-entry.js +1 -0
  756. package/dist/special.js +2 -2
  757. package/dist/stadiums-entry.d.ts +1 -0
  758. package/dist/stadiums-entry.js +1 -0
  759. package/dist/stadiums.d.ts +1 -1
  760. package/dist/stadiums.js +4 -4
  761. package/dist/target-entry.d.ts +1 -0
  762. package/dist/target-entry.js +1 -0
  763. package/dist/turn-entry.d.ts +3 -0
  764. package/dist/turn-entry.js +2 -0
  765. package/dist/turn.dom.d.ts +7 -0
  766. package/dist/turn.dom.js +186 -20
  767. package/dist/turn.markup.d.ts +10 -7
  768. package/dist/turn.markup.js +28 -15
  769. package/dist/turn.model.d.ts +13 -0
  770. package/dist/turn.style.js +6 -0
  771. package/dist/uprights.fields.d.ts +1 -1
  772. package/dist/uprights.js +2 -2
  773. package/dist/venue-data-entry.d.ts +5 -0
  774. package/dist/venue-data-entry.js +2 -0
  775. package/dist/venue-data.d.ts +64 -0
  776. package/dist/venue-data.js +115 -0
  777. package/dist/venue.js +2 -2
  778. package/dist/venues-entry.d.ts +1 -0
  779. package/dist/venues-entry.js +1 -0
  780. package/dist/venues.d.ts +1 -1
  781. package/dist/venues.js +3 -3
  782. package/dist/version.d.ts +1 -1
  783. package/dist/version.js +1 -1
  784. package/dist/zones-entry.d.ts +1 -0
  785. package/dist/zones-entry.js +1 -0
  786. package/package.json +19 -3
@@ -2,6 +2,7 @@ import { type TurnDirection, type TurnPreset, type TurnView } from "./turn.camer
2
2
  import { type TurnModel, type TurnSettings } from "./turn.model.ts";
3
3
  import type { ScoreOptions, SurfaceOptions } from "./types.ts";
4
4
  import type { VenueSettings } from "./venue.ts";
5
+ import { type Quality, type QualityTier } from "./quality.ts";
5
6
  import type { OutsideLevel } from "./outside.paint.ts";
6
7
  /** What `mountKyogijoTurn` gives back. `O` is what `update` takes: the options of a drawing, or (for `mountMultiTurn`) of a tournament layout. */
7
8
  export interface KyogijoTurn<O = SurfaceOptions | ScoreOptions> {
@@ -43,6 +44,12 @@ export interface KyogijoTurn<O = SurfaceOptions | ScoreOptions> {
43
44
  mode: string;
44
45
  pixels: number;
45
46
  } | undefined;
47
+ /** What the view was asked to draw: `auto`, or the tier it is held at. */
48
+ readonly quality: Quality;
49
+ /** The tier the view is drawn at now: what `quality` says, and for `auto` the one the frames have led it to (`high` at first). */
50
+ readonly tier: QualityTier;
51
+ /** Change what the view is asked to draw: a tier is taken at once, `auto` goes on from the tier it is at. The camera and the auto-turn are not touched. */
52
+ setQuality(quality: Quality): void;
46
53
  /** The flat drawing that is the floor, or `null` after `destroy`. */
47
54
  svg(): SVGSVGElement | null;
48
55
  /** Stop listening and empty the container. */
package/dist/turn.dom.js CHANGED
@@ -10,6 +10,8 @@ import { KYOGIJO_TURN_STYLE } from "./turn.style.js";
10
10
  import { esc } from "./format.js";
11
11
  import { turnBoardMarkup } from "./overlay.js";
12
12
  import { attachOutside3d } from "./outside.dom.js";
13
+ import { TIER_PROFILES, createGovernor, handheld, layerBudget, qualityOf, rasterOf, rasterShares, tierOf } from "./quality.js";
14
+ import { size } from "./turn.kit.js";
13
15
  /** True where the page can draw a plane in 3D by one `matrix3d`: that is, nearly everywhere with a stylesheet. */
14
16
  export function turnSupported(win = typeof window === "undefined" ? undefined : window) {
15
17
  const css = win?.CSS;
@@ -43,7 +45,33 @@ export function mountTurn(host, options, settings, build) {
43
45
  const win = doc.defaultView;
44
46
  /** The venue's settings as they are now: the mounted ones, altered by `update`. */
45
47
  let venue = settings.venue;
46
- let model = build(options, settings);
48
+ // How much is drawn: what was asked, and the tier it is drawn at (`auto` starts on `high` and is moved by the frames the view makes while it turns).
49
+ let quality = qualityOf(settings.quality);
50
+ let tier = tierOf(quality);
51
+ // (Set again below, once the model is built, for a view that has no tiers.)
52
+ const isHandheld = handheld(win);
53
+ /** The share of its size each layer is made at for a model, now: one number when they all are, one each when the biggest are held to a budget of pixels. */
54
+ const rasterFor = (of) => {
55
+ // (Only a model that has tiers is made smaller: a surface on its own is small, and nothing of it would be left out.)
56
+ if (of.tiered !== true)
57
+ return 1;
58
+ const dpr = win?.devicePixelRatio ?? 1;
59
+ const share = rasterOf(quality, tier, dpr, isHandheld);
60
+ const budget = layerBudget(tier, isHandheld);
61
+ if (share === 1 && budget === Infinity)
62
+ return 1;
63
+ const boxes = [[of.viewBox.w * of.scale, of.viewBox.h * of.scale], ...of.planes.map((p) => { const [w, h] = size(p); return [w * of.scale, h * of.scale]; })];
64
+ return rasterShares(boxes, share, dpr, budget);
65
+ };
66
+ const sameRaster = (a, b) => (typeof a === "number" || typeof b === "number" ? a === b : a.length === b.length && a.every((x, i) => x === b[i]));
67
+ let current = options;
68
+ let model = build(options, { ...settings, quality: tier });
69
+ if (model.tiered !== true)
70
+ tier = "high";
71
+ let raster = rasterFor(model);
72
+ /** The models built at each tier for the options now, so that a step back to a tier is not built again. */
73
+ let made = new Map([[tier, model]]);
74
+ const baseId = model.id;
47
75
  /** What names the four viewpoints: the model's own table (a tournament layout has one), else the sport's. */
48
76
  const sport = () => model.presets ?? model.options.sport;
49
77
  const supported = turnSupported(win ?? undefined) && model.turnable;
@@ -66,6 +94,9 @@ export function mountTurn(host, options, settings, build) {
66
94
  direction: () => turnDirection(settings.direction),
67
95
  setDirection: () => undefined,
68
96
  togglePlay: () => false,
97
+ quality: qualityOf(settings.quality),
98
+ tier: tierOf(settings.quality),
99
+ setQuality: () => undefined,
69
100
  update: (next, change) => {
70
101
  if (change?.venue !== undefined)
71
102
  venue = { ...(typeof venue === "object" ? venue : {}), ...change.venue };
@@ -79,7 +110,7 @@ export function mountTurn(host, options, settings, build) {
79
110
  },
80
111
  };
81
112
  }
82
- host.innerHTML = turnMarkupOf(model, settings);
113
+ host.innerHTML = turnMarkupOf(model, settings, raster);
83
114
  const root = host.querySelector(".ky-turn");
84
115
  const stage = root.querySelector(".ky-turn-view");
85
116
  const live = root.querySelector(".ky-turn-live");
@@ -119,8 +150,116 @@ export function mountTurn(host, options, settings, build) {
119
150
  outside?.destroy();
120
151
  const floor = stage.querySelector(".ky-turn-floor");
121
152
  outside = model.outside === undefined || floor === null ? undefined : attachOutside3d(floor, model.outside);
153
+ outside?.setDetail(TIER_PROFILES[tier].outside);
122
154
  };
123
155
  crowd();
156
+ root.dataset.quality = quality;
157
+ root.dataset.tier = tier;
158
+ // ---- Quality: in `auto`, the frames the view makes while it turns decide the tier. ----
159
+ let governor = quality === "auto" && win !== null && model.tiered === true ? createGovernor(tier, settings.qualityTuning) : undefined;
160
+ let meterFrame;
161
+ let lastStamp;
162
+ let lastPaint = 0;
163
+ /** The display's own interval, measured once with nothing else going on: an idle loop of frames a moment after the mount (the lower decile of their intervals, so that a busy moment does not count). */
164
+ let probe;
165
+ let displayMs;
166
+ const probeDisplay = () => {
167
+ if (win === null || probe !== undefined || displayMs !== undefined)
168
+ return;
169
+ const found = [];
170
+ let before;
171
+ const step = (stamp) => {
172
+ probe = undefined;
173
+ if (!alive || win === null)
174
+ return;
175
+ if (doc.hidden === true) {
176
+ // Hidden: start over when it can be seen.
177
+ found.length = 0;
178
+ before = undefined;
179
+ probe = win.setTimeout(() => (probe = win.requestAnimationFrame(step)), 400);
180
+ return;
181
+ }
182
+ if (before !== undefined)
183
+ found.push(stamp - before);
184
+ before = stamp;
185
+ if (found.length < 24)
186
+ probe = win.requestAnimationFrame(step);
187
+ else {
188
+ displayMs = [...found].sort((a, b) => a - b)[Math.floor(found.length * 0.1)];
189
+ governor?.display(displayMs);
190
+ }
191
+ };
192
+ probe = win.setTimeout(() => (probe = win.requestAnimationFrame(step)), 350);
193
+ };
194
+ const stopMeter = () => {
195
+ if (meterFrame !== undefined)
196
+ win?.cancelAnimationFrame(meterFrame);
197
+ meterFrame = undefined;
198
+ lastStamp = undefined;
199
+ };
200
+ if (governor !== undefined)
201
+ probeDisplay();
202
+ /** The loop that times the frames: it runs while the view is being painted and for a third of a second after, and does nothing while the view is still. */
203
+ const meterTick = (stamp) => {
204
+ meterFrame = undefined;
205
+ if (!alive || governor === undefined || win === null)
206
+ return;
207
+ if (doc.hidden === true || stamp - lastPaint > 300) {
208
+ lastStamp = undefined;
209
+ governor.pause();
210
+ return;
211
+ }
212
+ const next = lastStamp === undefined ? undefined : governor.frame(stamp - lastStamp, stamp);
213
+ lastStamp = next === undefined ? stamp : undefined;
214
+ // (A step draws the view again, which asks for the loop itself: only one is ever running.)
215
+ if (next !== undefined)
216
+ retier(next);
217
+ if (meterFrame === undefined)
218
+ meterFrame = win.requestAnimationFrame(meterTick);
219
+ };
220
+ /** The view was painted: the frames are timed from now until it is still. */
221
+ const touched = () => {
222
+ if (governor === undefined || win === null)
223
+ return;
224
+ lastPaint = win.performance.now();
225
+ if (meterFrame === undefined)
226
+ meterFrame = win.requestAnimationFrame(meterTick);
227
+ };
228
+ /** Draw the world again, from the model of the tier and the options now: the camera, the auto-turn and the pointer are not touched (the elements are the only thing replaced). */
229
+ const renderWorld = () => {
230
+ const known = made.get(tier);
231
+ model = known ?? build(current, { ...settings, quality: tier, id: settings.id ?? baseId, venue, preset: undefined, view });
232
+ made.set(tier, model);
233
+ raster = rasterFor(model);
234
+ const layout = layoutOf(model, shown, stage.clientWidth || 960, stage.clientHeight || 600, settings.lens, false, raster);
235
+ const world = root.querySelector(".ky-turn-world");
236
+ world.innerHTML = worldMarkup(model, layout, raster);
237
+ // The look the floor is painted in (and the theme) are attributes of the world.
238
+ for (const name of ["data-sport", "data-look", "data-theme"])
239
+ world.removeAttribute(name);
240
+ world.className = model.look === undefined ? "ky-turn-world" : "ky-turn-world kyogijo";
241
+ if (model.look !== undefined) {
242
+ world.setAttribute("data-sport", model.look.sport);
243
+ world.setAttribute("data-look", model.look.look);
244
+ const forced = model.options.theme;
245
+ if (forced === "light" || forced === "dark")
246
+ world.setAttribute("data-theme", forced);
247
+ }
248
+ gather();
249
+ crowd();
250
+ root.dataset.quality = quality;
251
+ root.dataset.tier = tier;
252
+ };
253
+ /** The governor stepped: draw at the new tier. */
254
+ const retier = (next) => {
255
+ if (next === tier)
256
+ return;
257
+ tier = next;
258
+ renderWorld();
259
+ paint(shown);
260
+ label();
261
+ settings.onQualityChange?.(tier, quality);
262
+ };
124
263
  const buttons = () => root.querySelectorAll("button[data-preset]");
125
264
  /** The Play button says what it is and what it does: pressed while the view turns. */
126
265
  const syncPlay = () => {
@@ -138,7 +277,7 @@ export function mountTurn(host, options, settings, build) {
138
277
  const paint = (now) => {
139
278
  const width = stage.clientWidth || 960;
140
279
  const height = stage.clientHeight || 600;
141
- const layout = layoutOf(model, now, width, height, settings.lens, true);
280
+ const layout = layoutOf(model, now, width, height, settings.lens, true, raster);
142
281
  outside?.zoom(now.zoom);
143
282
  const culled = layout.culled;
144
283
  elements.forEach((one, i) => {
@@ -159,6 +298,7 @@ export function mountTurn(host, options, settings, build) {
159
298
  if (faded[i] !== o)
160
299
  one.style.opacity = faded[i] = o;
161
300
  });
301
+ touched();
162
302
  };
163
303
  const label = () => {
164
304
  const here = presetOf(view, sport());
@@ -481,25 +621,11 @@ export function mountTurn(host, options, settings, build) {
481
621
  return;
482
622
  if (change?.venue !== undefined)
483
623
  venue = { ...(typeof venue === "object" ? venue : {}), ...change.venue };
484
- model = build(next, { ...settings, id: settings.id ?? model.id, venue, preset: undefined, view });
624
+ current = next;
625
+ made = new Map();
485
626
  view = clampView(view);
627
+ renderWorld();
486
628
  opening = openingView(settings, sport());
487
- const layout = layoutOf(model, shown, stage.clientWidth || 960, stage.clientHeight || 600, settings.lens);
488
- const world = root.querySelector(".ky-turn-world");
489
- world.innerHTML = worldMarkup(model, layout);
490
- // The look the floor is painted in (and the theme) are attributes of the world.
491
- for (const name of ["data-sport", "data-look", "data-theme"])
492
- world.removeAttribute(name);
493
- world.className = model.look === undefined ? "ky-turn-world" : "ky-turn-world kyogijo";
494
- if (model.look !== undefined) {
495
- world.setAttribute("data-sport", model.look.sport);
496
- world.setAttribute("data-look", model.look.look);
497
- const forced = model.options.theme;
498
- if (forced === "light" || forced === "dark")
499
- world.setAttribute("data-theme", forced);
500
- }
501
- gather();
502
- crowd();
503
629
  // The board is a layer of its own over the view, after the scene: it is written again, and the view's turn is not touched.
504
630
  stage.querySelector(".ky-turn-board")?.remove();
505
631
  if (model.board !== undefined)
@@ -525,6 +651,45 @@ export function mountTurn(host, options, settings, build) {
525
651
  get playing() {
526
652
  return playing;
527
653
  },
654
+ get quality() {
655
+ return quality;
656
+ },
657
+ get tier() {
658
+ return tier;
659
+ },
660
+ setQuality(asked) {
661
+ if (!alive)
662
+ return;
663
+ quality = qualityOf(asked, quality);
664
+ const was = tier;
665
+ if (model.tiered !== true) {
666
+ // A view that has no tiers draws as it does whatever is asked: the question is kept, and answered `high`.
667
+ governor = undefined;
668
+ stopMeter();
669
+ tier = "high";
670
+ }
671
+ else if (quality === "auto") {
672
+ stopMeter();
673
+ governor = win === null ? undefined : createGovernor(tier, settings.qualityTuning);
674
+ if (displayMs !== undefined)
675
+ governor?.display(displayMs);
676
+ else
677
+ probeDisplay();
678
+ }
679
+ else {
680
+ governor = undefined;
681
+ stopMeter();
682
+ tier = quality;
683
+ }
684
+ root.dataset.quality = quality;
685
+ // The tier, or the share its layers are made at, has changed: the world is drawn again (the shares are worked out for the model of the tier, in `renderWorld`).
686
+ if (tier !== was || !sameRaster(rasterFor(model), raster)) {
687
+ renderWorld();
688
+ paint(shown);
689
+ label();
690
+ }
691
+ settings.onQualityChange?.(tier, quality);
692
+ },
528
693
  play() {
529
694
  setPlaying(true);
530
695
  return playing;
@@ -557,6 +722,7 @@ export function mountTurn(host, options, settings, build) {
557
722
  outside?.destroy();
558
723
  stop();
559
724
  stopTick();
725
+ stopMeter();
560
726
  seen?.disconnect();
561
727
  doc.removeEventListener("visibilitychange", onVisible);
562
728
  clearTimeout(spoken);
@@ -2,6 +2,8 @@ import { type Placement, type TurnDirection, type TurnView } from "./turn.camera
2
2
  import { type Plane } from "./turn.kit.ts";
3
3
  import { type TurnModel, type TurnSettings } from "./turn.model.ts";
4
4
  import type { ScoreOptions, SurfaceOptions } from "./types.ts";
5
+ /** The share of its size each layer is made at: one number for all, or one for each (the floor first, then the planes in the model's order). */
6
+ export type Raster = number | readonly number[];
5
7
  /**
6
8
  * The matrix that stands a plane in the scene, before the camera: its x along `u`, its y along `v`, its corner `o`, in pixels from the middle of the scene
7
9
  * (`centre`, in feet).
@@ -28,18 +30,19 @@ export interface Layout {
28
30
  }
29
31
  /**
30
32
  * Work a view out in a container `width` by `height` pixels. With `cull`, the faces of a closed solid that are turned away from the eye (`Plane.cull`) are left out: they have no transform and no place in the stack, and `culled` says
31
- * which, so that a page need not write them at all; without it every plane is laid out, as a still picture needs.
33
+ * which, so that a page need not write them at all; without it every plane is laid out, as a still picture needs. `raster` is the share of its size an element is made at (`rasterOf`): each element's matrix widens it back, so that the
34
+ * picture is the same and the layers hold `raster` squared as many pixels.
32
35
  */
33
- export declare function layoutOf(model: TurnModel, view: TurnView, width: number, height: number, lens?: number, cull?: boolean): Layout;
36
+ export declare function layoutOf(model: TurnModel, view: TurnView, width: number, height: number, lens?: number, cull?: boolean, raster?: Raster): Layout;
34
37
  /** One plane as an element: its box in pixels and the SVG drawn on it in feet. */
35
- export declare function planeMarkup(p: Plane, scale: number, transform: string, stack: number, fade?: number): string;
38
+ export declare function planeMarkup(p: Plane, scale: number, transform: string, stack: number, fade?: number, raster?: number): string;
36
39
  /**
37
40
  * A plane that is the floor's own drawing seen through its rectangle (`Plane.crop`): the floor's SVG again, its viewBox cut down to the plane's rectangle, in the plane's own box. It is a picture, not a second
38
41
  * description: it carries no role, title or description of its own.
39
42
  */
40
- export declare function cropMarkup(model: TurnModel, p: Plane, transform: string, stack: number, fade?: number): string;
43
+ export declare function cropMarkup(model: TurnModel, p: Plane, transform: string, stack: number, fade?: number, raster?: number): string;
41
44
  /** The floor as an element: the flat drawing, in the pixels of the scene. */
42
- export declare function floorMarkup(model: TurnModel, transform: string, stack: number): string;
45
+ export declare function floorMarkup(model: TurnModel, transform: string, stack: number, raster?: number): string;
43
46
  /** The patterns the venue's planes are drawn with, once, in a box of no size: every plane's SVG reads them by id, and the crowd's colours are on this element. */
44
47
  export declare function defsMarkup(model: TurnModel): string;
45
48
  /**
@@ -48,7 +51,7 @@ export declare function defsMarkup(model: TurnModel): string;
48
51
  */
49
52
  export declare function worldAttributes(model: TurnModel): string;
50
53
  /** The floor and the planes of a model, laid out. */
51
- export declare function worldMarkup(model: TurnModel, layout: Layout): string;
54
+ export declare function worldMarkup(model: TurnModel, layout: Layout, raster?: Raster): string;
52
55
  /** The buttons under the view. */
53
56
  export declare function controlsMarkup(model: TurnModel, view: TurnView, playing?: boolean, direction?: TurnDirection): string;
54
57
  /** The size, in pixels, the first view is worked out for. */
@@ -57,7 +60,7 @@ export declare const sizeOf: (settings: TurnSettings) => {
57
60
  height: number;
58
61
  };
59
62
  /** The 3D view of a model as markup, laid out for `settings.size`; a page's script then makes it turn. */
60
- export declare function turnMarkupOf(model: TurnModel, settings?: TurnSettings): string;
63
+ export declare function turnMarkupOf(model: TurnModel, settings?: TurnSettings, raster?: Raster): string;
61
64
  /**
62
65
  * A surface as a 3D view, as markup: the flat drawing for a floor, what stands on it as planes, and the controls under it. Pure, so it can be made on a
63
66
  * server; it is a still picture until `mountKyogijoTurn` (or the element) makes it turn in a page.
@@ -9,6 +9,8 @@ import { KYOGIJO_TURN_STYLE } from "./turn.style.js";
9
9
  import { esc } from "./format.js";
10
10
  import { turnBoardMarkup } from "./overlay.js";
11
11
  const px = (value) => `${Math.round(value * 1000) / 1000}`;
12
+ /** The share of the layer at `index` (0 the floor, then the planes). */
13
+ const shareOf = (raster, index) => (typeof raster === "number" ? raster : (raster[index] ?? 1));
12
14
  /**
13
15
  * The matrix that stands a plane in the scene, before the camera: its x along `u`, its y along `v`, its corner `o`, in pixels from the middle of the scene
14
16
  * (`centre`, in feet).
@@ -88,9 +90,10 @@ function prepare(model) {
88
90
  const turnedAway = (m, side) => side * (m[0] * (m[5] * m[15] - m[13] * m[7]) - m[4] * (m[1] * m[15] - m[13] * m[3]) + m[12] * (m[1] * m[7] - m[5] * m[3])) <= 0;
89
91
  /**
90
92
  * Work a view out in a container `width` by `height` pixels. With `cull`, the faces of a closed solid that are turned away from the eye (`Plane.cull`) are left out: they have no transform and no place in the stack, and `culled` says
91
- * which, so that a page need not write them at all; without it every plane is laid out, as a still picture needs.
93
+ * which, so that a page need not write them at all; without it every plane is laid out, as a still picture needs. `raster` is the share of its size an element is made at (`rasterOf`): each element's matrix widens it back, so that the
94
+ * picture is the same and the layers hold `raster` squared as many pixels.
92
95
  */
93
- export function layoutOf(model, view, width, height, lens, cull = false) {
96
+ export function layoutOf(model, view, width, height, lens, cull = false, raster = 1) {
94
97
  const distance = eyeDistance(width, height, lens ?? model.lens);
95
98
  const at = fit(model.box, { ...view, zoom: 1 }, width, height, distance);
96
99
  const camera = cameraMatrix(view, at, distance);
@@ -99,15 +102,24 @@ export function layoutOf(model, view, width, height, lens, cull = false) {
99
102
  const known = prepare(model);
100
103
  const floor = { id: "floor", kind: "ground", o: [model.viewBox.x, model.viewBox.y, model.uprights.lift], u: [model.viewBox.w, 0, 0], v: [0, model.viewBox.h, 0], svg: "" };
101
104
  const count = model.planes.length;
105
+ const widen = (m, index) => {
106
+ const share = shareOf(raster, index);
107
+ if (share === 1)
108
+ return m;
109
+ const back = 1 / share;
110
+ for (let i = 0; i < 8; i += 1)
111
+ m[i] *= back;
112
+ return m;
113
+ };
102
114
  const transforms = new Array(count + 1);
103
115
  const culled = cull ? new Array(count + 1).fill(false) : undefined;
104
116
  // A billboard faces the eye at this view.
105
117
  const planes = new Array(count);
106
118
  for (let i = 0; i < count; i += 1)
107
119
  planes[i] = facing(model.planes[i], view.yaw, view.pitch);
108
- transforms[0] = matrix3d(multiply(camera, planeMatrix(floor, s, centre)));
120
+ transforms[0] = matrix3d(widen(multiply(camera, planeMatrix(floor, s, centre)), 0));
109
121
  for (let i = 0; i < count; i += 1) {
110
- const m = multiply(camera, known.base[i] ?? planeMatrix(planes[i], s, centre));
122
+ const m = widen(multiply(camera, known.base[i] ?? planeMatrix(planes[i], s, centre)), i + 1);
111
123
  const side = planes[i].cull;
112
124
  if (culled !== undefined && side !== undefined && turnedAway(m, side)) {
113
125
  culled[i + 1] = true;
@@ -159,15 +171,16 @@ export function layoutOf(model, view, width, height, lens, cull = false) {
159
171
  return { at, transforms, stack, fade, ...(culled === undefined ? {} : { culled }) };
160
172
  }
161
173
  /** One plane as an element: its box in pixels and the SVG drawn on it in feet. */
162
- export function planeMarkup(p, scale, transform, stack, fade = 1) {
174
+ export function planeMarkup(p, scale, transform, stack, fade = 1, raster = 1) {
163
175
  const [w, h] = size(p);
164
- return `<div class="ky-up ky-up-${p.kind}" data-part="${esc(p.id)}" style="width:${px(w * scale)}px;height:${px(h * scale)}px;transform:${transform};z-index:${stack}${fade < 1 ? `;opacity:${n(fade)}` : ""}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${n(w)} ${n(h)}" width="${px(w * scale)}" height="${px(h * scale)}" aria-hidden="true" focusable="false">${p.svg}</svg></div>`;
176
+ const [bw, bh] = [px(w * scale * raster), px(h * scale * raster)];
177
+ return `<div class="ky-up ky-up-${p.kind}" data-part="${esc(p.id)}" style="width:${bw}px;height:${bh}px;transform:${transform};z-index:${stack}${fade < 1 ? `;opacity:${n(fade)}` : ""}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${n(w)} ${n(h)}" width="${bw}" height="${bh}" aria-hidden="true" focusable="false">${p.svg}</svg></div>`;
165
178
  }
166
179
  /**
167
180
  * A plane that is the floor's own drawing seen through its rectangle (`Plane.crop`): the floor's SVG again, its viewBox cut down to the plane's rectangle, in the plane's own box. It is a picture, not a second
168
181
  * description: it carries no role, title or description of its own.
169
182
  */
170
- export function cropMarkup(model, p, transform, stack, fade = 1) {
183
+ export function cropMarkup(model, p, transform, stack, fade = 1, raster = 1) {
171
184
  const [w, h] = size(p);
172
185
  const box = `${px(p.o[0])} ${px(p.o[1])} ${px(w)} ${px(h)}`;
173
186
  const picture = model.floor
@@ -177,12 +190,12 @@ export function cropMarkup(model, p, transform, stack, fade = 1) {
177
190
  .replace(/^<svg([^>]*?)\srole="img"/, '<svg$1 aria-hidden="true"')
178
191
  .replace(/^<svg([^>]*?)\saria-labelledby="[^"]*"/, "<svg$1")
179
192
  .replace(/<title\b[^>]*>[\s\S]*?<\/title>|<desc\b[^>]*>[\s\S]*?<\/desc>/g, "");
180
- return `<div class="ky-up ky-up-${p.kind}" data-part="${esc(p.id)}" data-crop="floor" style="width:${px(w * model.scale)}px;height:${px(h * model.scale)}px;transform:${transform};z-index:${stack}${fade < 1 ? `;opacity:${n(fade)}` : ""}">${picture}</div>`;
193
+ return `<div class="ky-up ky-up-${p.kind}" data-part="${esc(p.id)}" data-crop="floor" style="width:${px(w * model.scale * raster)}px;height:${px(h * model.scale * raster)}px;transform:${transform};z-index:${stack}${fade < 1 ? `;opacity:${n(fade)}` : ""}">${picture}</div>`;
181
194
  }
182
195
  /** The floor as an element: the flat drawing, in the pixels of the scene. */
183
- export function floorMarkup(model, transform, stack) {
196
+ export function floorMarkup(model, transform, stack, raster = 1) {
184
197
  const vb = model.viewBox;
185
- return `<div class="ky-turn-floor" style="width:${px(vb.w * model.scale)}px;height:${px(vb.h * model.scale)}px;transform:${transform};z-index:${stack}">${model.floor}</div>`;
198
+ return `<div class="ky-turn-floor"${raster === 1 ? "" : ` data-raster="${raster}"`} style="width:${px(vb.w * model.scale * raster)}px;height:${px(vb.h * model.scale * raster)}px;transform:${transform};z-index:${stack}">${model.floor}</div>`;
186
199
  }
187
200
  /** The patterns the venue's planes are drawn with, once, in a box of no size: every plane's SVG reads them by id, and the crowd's colours are on this element. */
188
201
  export function defsMarkup(model) {
@@ -197,8 +210,8 @@ export function worldAttributes(model) {
197
210
  return model.look === undefined ? 'class="ky-turn-world"' : `class="ky-turn-world kyogijo" data-sport="${esc(model.look.sport)}" data-look="${esc(model.look.look)}"${theme === "light" || theme === "dark" ? ` data-theme="${theme}"` : ""}`;
198
211
  }
199
212
  /** The floor and the planes of a model, laid out. */
200
- export function worldMarkup(model, layout) {
201
- return defsMarkup(model) + floorMarkup(model, layout.transforms[0], layout.stack[0]) + model.planes.map((p, i) => (p.crop === true ? cropMarkup(model, p, layout.transforms[i + 1], layout.stack[i + 1], layout.fade[i + 1]) : planeMarkup(p, model.scale, layout.transforms[i + 1], layout.stack[i + 1], layout.fade[i + 1]))).join("");
213
+ export function worldMarkup(model, layout, raster = 1) {
214
+ return defsMarkup(model) + floorMarkup(model, layout.transforms[0], layout.stack[0], shareOf(raster, 0)) + model.planes.map((p, i) => (p.crop === true ? cropMarkup(model, p, layout.transforms[i + 1], layout.stack[i + 1], layout.fade[i + 1], shareOf(raster, i + 1)) : planeMarkup(p, model.scale, layout.transforms[i + 1], layout.stack[i + 1], layout.fade[i + 1], shareOf(raster, i + 1)))).join("");
202
215
  }
203
216
  /** The buttons under the view. */
204
217
  export function controlsMarkup(model, view, playing = false, direction = "counterclockwise") {
@@ -223,18 +236,18 @@ export function controlsMarkup(model, view, playing = false, direction = "counte
223
236
  /** The size, in pixels, the first view is worked out for. */
224
237
  export const sizeOf = (settings) => settings.size ?? { width: 960, height: 600 };
225
238
  /** The 3D view of a model as markup, laid out for `settings.size`; a page's script then makes it turn. */
226
- export function turnMarkupOf(model, settings = {}) {
239
+ export function turnMarkupOf(model, settings = {}, raster = 1) {
227
240
  const words = turnWords(model);
228
241
  const { width, height } = sizeOf(settings);
229
242
  const view = model.view;
230
- const layout = layoutOf(model, view, width, height, settings.lens);
243
+ const layout = layoutOf(model, view, width, height, settings.lens, false, raster);
231
244
  const keys = `${words.keys}${model.standing === "" ? "" : ` ${model.standing}`}`;
232
245
  const sheet = model.options.style === "none" ? "" : `<style>${KYOGIJO_TURN_STYLE}</style>`;
233
246
  const theme = model.options.theme;
234
247
  const sport = model.options.sport;
235
248
  return (`<div class="ky-turn" id="${esc(model.id)}" data-sport="${esc(String(sport))}" data-mode="3d" data-touch="${settings.touch === "turn" ? "turn" : "scroll"}" data-preset="${presetOf(view, model.presets ?? sport) ?? "custom"}"${model.lighting === undefined ? "" : ` data-lighting="${model.lighting}"`}${theme === "light" || theme === "dark" ? ` data-theme="${theme}"` : ""} lang="${model.language}">` +
236
249
  sheet +
237
- `<div class="ky-turn-view" tabindex="0" role="group" aria-roledescription="${esc(words.region)}" aria-label="${esc(model.title)}" aria-describedby="${esc(model.id)}-help" aria-keyshortcuts="ArrowLeft ArrowRight ArrowUp ArrowDown + - 0 1 2 3 4 Home Space"><div ${worldAttributes(model)}>${worldMarkup(model, layout)}</div>${model.board === undefined ? "" : turnBoardMarkup(model.board)}</div>` +
250
+ `<div class="ky-turn-view" tabindex="0" role="group" aria-roledescription="${esc(words.region)}" aria-label="${esc(model.title)}" aria-describedby="${esc(model.id)}-help" aria-keyshortcuts="ArrowLeft ArrowRight ArrowUp ArrowDown + - 0 1 2 3 4 Home Space"><div ${worldAttributes(model)}>${worldMarkup(model, layout, raster)}</div>${model.board === undefined ? "" : turnBoardMarkup(model.board)}</div>` +
238
251
  `<p class="ky-turn-help" id="${esc(model.id)}-help">${esc(keys)}</p>` +
239
252
  (settings.controls === false ? "" : controlsMarkup(model, view, false, turnDirection(settings.direction))) +
240
253
  `<div class="ky-turn-live" role="status" aria-live="polite"></div>` +
@@ -6,6 +6,7 @@ import { type ResolvedBoard } from "./overlay.ts";
6
6
  import type { VenueSettings } from "./venue.ts";
7
7
  import type { Box3 } from "./turn.camera.ts";
8
8
  import type { OutsideSpec } from "./outside.dom.ts";
9
+ import type { GovernorTuning, Quality, QualityTier } from "./quality.ts";
9
10
  import type { Language, LightingOptions, LightingPreset, ScoreOptions, SurfaceOptions } from "./types.ts";
10
11
  /** What can be asked of a 3D view. */
11
12
  export interface TurnSettings {
@@ -53,6 +54,16 @@ export interface TurnSettings {
53
54
  onDirectionChange?: (direction: TurnDirection) => void;
54
55
  /** Called with `true` when the auto-turn starts and `false` when it stops, whatever stopped it. */
55
56
  onPlayChange?: (playing: boolean) => void;
57
+ /**
58
+ * How much the view draws, so that it turns well on every device: `"auto"` (the default) starts on `high` and watches the frames the view makes while it turns, stepping a tier down when they run over budget for a while and back up
59
+ * when they have been steady for longer; `"high"` is everything as it always was; `"medium"` and `"low"` draw less (the buildings round a district stand up fewer, the trees and the crowd are thinner, a small venue is a block, and the layers
60
+ * are rastered at a lower pixel ratio). A tier asked for by name is kept; `setQuality` changes it at once, and the camera and the auto-turn go on. See `docs/quality.md`.
61
+ */
62
+ quality?: Quality;
63
+ /** How the frames are judged in `auto` (see `GovernorTuning`): for a test or a screen that is unusual; the defaults suit a 60 Hz display. */
64
+ qualityTuning?: Partial<GovernorTuning>;
65
+ /** Called with the tier the view is drawn at when it is first mounted and each time `auto` or `setQuality` changes it. */
66
+ onQualityChange?: (tier: QualityTier, quality: Quality) => void;
56
67
  /** Called after the view has changed by a key, a button or the pointer, with the view and the viewpoint it is (`undefined` when it has been turned by hand). */
57
68
  onChange?: (view: TurnView, preset: TurnPreset | undefined) => void;
58
69
  }
@@ -113,6 +124,8 @@ export interface TurnModel {
113
124
  }[];
114
125
  /** The board the options ask for (`board`), laid over the view: a layer of its own, never a plane of the scene. */
115
126
  board?: ResolvedBoard;
127
+ /** Whether the model has tiers: a district's does (`quality`), a single surface's does not, and the view does not time its frames or make its layers smaller for one that has none. */
128
+ tiered?: boolean;
116
129
  /** The crowd outside the venues of a district, asked for (`DistrictOptions.outside`): a canvas on the floor that the mount paints (`outside.dom.ts`), never a plane of the scene. */
117
130
  outside?: OutsideSpec;
118
131
  }
@@ -80,6 +80,12 @@ export const KYOGIJO_TURN_STYLE = `
80
80
  .ky-turn .u-slab-top{fill:var(--ky-up-blk-roof);stroke:var(--ky-up-blk-line);stroke-width:.5}
81
81
  .ky-turn .u-floorplate{fill:var(--ky-up-plate);stroke:var(--ky-up-plate-line);stroke-width:1.2;stroke-linejoin:round}
82
82
  .ky-turn .u-block-roof{fill:var(--ky-up-blk-roof);stroke:var(--ky-up-blk-line);stroke-width:.5;stroke-linejoin:round}
83
+ /* A venue drawn as a proxy in the lower tiers (district.turn.ts): the tones of the buildings round it, darker and bluer, as a stadium's concrete and roof read against a city's. */
84
+ .ky-turn .u-proxy{stroke:var(--ky-up-blk-line);stroke-width:.6}
85
+ .ky-turn .u-proxy-a{fill:color-mix(in srgb,var(--ky-up-blk-a) 52%,#4d6fa0)}
86
+ .ky-turn .u-proxy-b{fill:color-mix(in srgb,var(--ky-up-blk-b) 52%,#3f5c88)}
87
+ .ky-turn .u-proxy-c{fill:color-mix(in srgb,var(--ky-up-blk-c) 52%,#324b72)}
88
+ .ky-turn .u-proxy-roof{fill:color-mix(in srgb,var(--ky-up-blk-roof) 60%,#5f7fae);stroke:var(--ky-up-blk-line);stroke-width:.6;stroke-linejoin:round}
83
89
  .ky-turn .u-roof{fill:var(--ky-up-roof);stroke:var(--ky-up-roofline);stroke-width:.8;stroke-linejoin:round}
84
90
  .ky-turn .u-signplate{fill:var(--ky-turn-bg);fill-opacity:.9;stroke:var(--ky-turn-rule);stroke-width:.5}
85
91
  .ky-turn .u-sign{fill:var(--ky-turn-ink);font-family:var(--ky-font,system-ui,-apple-system,"Segoe UI","Hiragino Sans","Noto Sans JP",sans-serif);font-weight:600}
@@ -1,7 +1,7 @@
1
1
  import type { FieldPlan } from "./fields.types.ts";
2
2
  import { type FencePoint, type FootballSpec } from "./geometry.ts";
3
3
  import type { SoccerSpec } from "./surfaces/soccer-spec.ts";
4
- import type { ParkWall } from "./parks.ts";
4
+ import type { ParkWall } from "./parks.core.ts";
5
5
  import { type Plane, type Upright } from "./turn.kit.ts";
6
6
  /**
7
7
  * The crossbar of a football post is 10 ft over the ground (NFL 2026 Rule 1-3-1: "the top face of which is 10 feet above the ground"; CFL 2026 Rule 1-1-1:
package/dist/uprights.js CHANGED
@@ -11,7 +11,7 @@ import { diamondFence } from "./leagues/baseball.js";
11
11
  import { NBA_COURT } from "./leagues/basketball.js";
12
12
  import { NHL_RINK } from "./leagues/hockey.js";
13
13
  import { chooseLeague, courtOf, diamondOf, fieldOf, rinkOf } from "./leagues.js";
14
- import { fenceFor, parkById, parkWallsIn } from "./parks.js";
14
+ import { fenceFor, heldPark, parkWallsIn } from "./parks.core.js";
15
15
  import { fenceOutline } from "./surfaces/baseball.js";
16
16
  import { KYOGIJO_STRINGS, fill } from "./strings.js";
17
17
  import { soccerSpec } from "./surfaces/soccer-spec.js";
@@ -65,7 +65,7 @@ export function uprightsFor(o, settings = {}) {
65
65
  }
66
66
  else if (sport === "mlb") {
67
67
  const diamond = league?.family === "baseball" ? diamondOf(league, o.year) : undefined;
68
- const park = parkById(o.park);
68
+ const park = heldPark(o.park);
69
69
  const points = fenceFor(park, feetFence(o.fence, unit), o.year, diamond === undefined ? undefined : diamondFence(diamond));
70
70
  thin = 0.4;
71
71
  items = ballparkUprights(points, park === undefined ? [] : parkWallsIn(park, o.year), thin);
@@ -0,0 +1,5 @@
1
+ export { loadArena, loadGround, loadPark, loadVenueDataFor, venueDataKeysFor, venueName } from "./venue-data.ts";
2
+ export type { VenueDataKeys } from "./venue-data.ts";
3
+ export type { Arena } from "./arenas.core.ts";
4
+ export type { Ground } from "./grounds.core.ts";
5
+ export type { Park } from "./parks.core.ts";
@@ -0,0 +1,2 @@
1
+ // The data of the venues a page shows, one file each, read when asked for: `loadVenueDataFor` for the venues of a district, `loadArena`, `loadPark` and `loadGround` for one, `venueName` to list the venues by name without reading any of them.
2
+ export { loadArena, loadGround, loadPark, loadVenueDataFor, venueDataKeysFor, venueName } from "./venue-data.js";
@@ -0,0 +1,64 @@
1
+ import { type Arena } from "./arenas.core.ts";
2
+ import { type Ground } from "./grounds.core.ts";
3
+ import { type Park } from "./parks.core.ts";
4
+ import type { Language } from "./types.ts";
5
+ /**
6
+ * An arena by its key, read from its own file the first time and held for the drawing after: asking again gives the same promise. A key that is not an arena rejects, naming the keys there are.
7
+ * @example
8
+ * ```ts
9
+ * import { loadArena } from "@johnmorrisdotca/kyogijo-stadiums/venue-data";
10
+ * const arena = await loadArena("rogers-arena");
11
+ * console.log(arena.name, arena.city);
12
+ * // Rogers Arena Vancouver
13
+ * ```
14
+ */
15
+ export declare const loadArena: (id: string) => Promise<Arena>;
16
+ /** A park by its key, read from its own file the first time and held for the drawing after (see `loadArena`). */
17
+ export declare const loadPark: (id: string) => Promise<Park>;
18
+ /** A ground by its key, read from its own file the first time and held for the drawing after (see `loadArena`). */
19
+ export declare const loadGround: (id: string) => Promise<Ground>;
20
+ /** The keys of the arenas, parks and grounds whose records the drawing of some venues reads. */
21
+ export interface VenueDataKeys {
22
+ arenas: string[];
23
+ parks: string[];
24
+ grounds: string[];
25
+ }
26
+ /**
27
+ * The records the drawing of some venues of a district reads, by kind: an arena's own, a ballpark's park, a stadium's ground, and nothing for a hall (which carries its own names) or the Kodokan. The keys are a district's (`rogers-arena`,
28
+ * `bc-place:cfl`).
29
+ * @example
30
+ * ```ts
31
+ * import { venueDataKeysFor } from "@johnmorrisdotca/kyogijo-stadiums/venue-data";
32
+ * console.log(venueDataKeysFor(["rogers-arena", "bc-place:cfl", "t-mobile-park:mlb"]));
33
+ * // {
34
+ * // arenas: [ 'rogers-arena' ],
35
+ * // parks: [ 't-mobile-park' ],
36
+ * // grounds: [ 'bc-place' ]
37
+ * // }
38
+ * ```
39
+ */
40
+ export declare function venueDataKeysFor(venues: readonly string[]): VenueDataKeys;
41
+ /**
42
+ * The records of the venues a page is about to draw, each read from its own file and no other, and held for the drawing: what `planDistrict`, `drawDistrict` and `mountDistrictTurn` of the lean district read. Await it before the
43
+ * first call and again when the venues change; a venue whose records are held is not read twice.
44
+ * @example
45
+ * ```ts
46
+ * import { loadVenueDataFor, planDistrict } from "@johnmorrisdotca/kyogijo-stadiums/district-lean";
47
+ * const venues = ["bc-place:cfl", "rogers-arena"];
48
+ * await loadVenueDataFor(venues);
49
+ * console.log(planDistrict({ venues }).members.length);
50
+ * // 2
51
+ * ```
52
+ */
53
+ export declare function loadVenueDataFor(venues: readonly string[]): Promise<void>;
54
+ /**
55
+ * The name of a venue of a district in a language, from the lists of names alone: no record is read, so a page can list every venue to choose from and read only the records of those chosen. It is the name `districtMember(key, language).name[language]` gives.
56
+ * `undefined` for a key that is not a venue of a district.
57
+ * @example
58
+ * ```ts
59
+ * import { venueName } from "@johnmorrisdotca/kyogijo-stadiums/venue-data";
60
+ * console.log(venueName("rogers-arena", "en"), venueName("bc-place:cfl", "ja"));
61
+ * // Rogers Arena BCプレイス
62
+ * ```
63
+ */
64
+ export declare function venueName(key: string, language?: Language): string | undefined;