@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
package/dist/ballpark.js CHANGED
@@ -1,7 +1,7 @@
1
1
  // What a ballpark's article gives beyond the fence's distances, turned into what a drawing is asked for: the walls and their heights (`walls`), the quirks
2
2
  // (`quirks`), the warning track's width, and the words that name them. The figures are in parks.ts; this file reads the options and says what to draw and what to say.
3
3
  import { lengthUnit } from "./common.js";
4
- import { parkById, parkQuirksIn, parkWallsIn } from "./parks.js";
4
+ import { heldPark, parkQuirksIn, parkWallsIn } from "./parks.core.js";
5
5
  import { KYOGIJO_STRINGS, fill } from "./strings.js";
6
6
  /** True when a drawing has something of a ballpark to add (its stylesheet is then written in). */
7
7
  export const ballparkDrawn = (b) => b !== undefined && (b.walls.length > 0 || b.quirks.length > 0 || b.backstop !== undefined || b.dugouts !== undefined);
@@ -11,7 +11,7 @@ const QUIRK_NAMES = ["hill", "overhang", "pole", "flagpole", "bullpen", "ivy", "
11
11
  * A request that cannot be read is left out, as the other options' are.
12
12
  */
13
13
  export function ballparkFor(o) {
14
- const park = parkById(o.park);
14
+ const park = heldPark(o.park);
15
15
  if (park === undefined)
16
16
  return undefined;
17
17
  const language = o.language === "ja" ? "ja" : "en";
@@ -1,3 +1,4 @@
1
+ import "./full.ts";
1
2
  export { DOJO_STANDARDS, dojo, drawDojo } from "./budo/dojo.api.ts";
2
3
  export type { Dojo, Tatami } from "./budo/dojo.api.ts";
3
4
  export { DOJO_SIZES, floorOf, shapeOfJo } from "./budo/dojo.ts";
@@ -1,4 +1,5 @@
1
1
  // The budō (武道): judo and karate competition areas, the kendo shiai-jo, the sumo dohyō, the kyūdōjō and the dojo builder, with their plans, the tatami layout, the kimarite, the looks and the stylesheet.
2
+ import "./full.js";
2
3
  export { DOJO_STANDARDS, dojo, drawDojo } from "./budo/dojo.api.js";
3
4
  export { DOJO_SIZES, floorOf, shapeOfJo } from "./budo/dojo.js";
4
5
  export { dojoGallery, dojoRoom, ROOM_HEIGHTS } from "./budo/room.js";
@@ -1,2 +1,3 @@
1
+ import "./full.ts";
1
2
  export { drawToCanvas, withAlpha } from "./canvas.ts";
2
3
  export type { CanvasContext, CanvasGradientLike, CanvasOptions, Drawn } from "./canvas.ts";
@@ -1,2 +1,3 @@
1
1
  // A drawing on a canvas context (a browser's, an OffscreenCanvas's or a Node canvas's), with no canvas library imported.
2
+ import "./full.js";
2
3
  export { drawToCanvas, withAlpha } from "./canvas.js";
@@ -1,3 +1,4 @@
1
+ import "./full.ts";
1
2
  export { nbaShotChart, nflPassChart, nhlShotMap } from "./charts.ts";
2
3
  export { mlbSprayChart } from "./charts.baseball.ts";
3
4
  export { soccerGoalMouth, soccerShotMap } from "./charts.soccer.ts";
@@ -1,4 +1,5 @@
1
1
  // The ready-made charts: shot charts, shot maps, spray charts and pass charts built on the data layers.
2
+ import "./full.js";
2
3
  export { nbaShotChart, nflPassChart, nhlShotMap } from "./charts.js";
3
4
  export { mlbSprayChart } from "./charts.baseball.js";
4
5
  export { soccerGoalMouth, soccerShotMap } from "./charts.soccer.js";
@@ -5,7 +5,7 @@ import { fenceAt } from "./geometry.js";
5
5
  import { convert } from "./frames.js";
6
6
  import { zoneToPoint } from "./frames.providers.js";
7
7
  import { outlineOf } from "./outline.js";
8
- import { fenceFor, parkById } from "./parks.js";
8
+ import { fenceFor, heldPark } from "./parks.core.js";
9
9
  import { MLB } from "./geometry.js";
10
10
  import { fill } from "./strings.js";
11
11
  import { assemble, clean, countOutcomes, describeCounts, drawingOptions, frameOf, fromOf, hasPlace, keyItems, keyLayers, languageOf, placed, wordsOf, zoneTotals } from "./charts.js";
@@ -61,7 +61,7 @@ export function mlbSprayChart(balls, options = {}) {
61
61
  const all = wordsOf(language);
62
62
  const w = all.charts;
63
63
  const frame = frameOf(options.from, "mlbam");
64
- const park = options.park === undefined ? undefined : parkById(options.park);
64
+ const park = options.park === undefined ? undefined : heldPark(options.park);
65
65
  if (options.park !== undefined && options.park !== "generic" && park === undefined)
66
66
  throw new RangeError(`Unknown park "${options.park}": use a key of PARKS, such as "fenway-park"`);
67
67
  const margin = typeof options.margin === "number" && options.margin >= 0 ? options.margin : 40;
package/dist/context.d.ts CHANGED
@@ -145,6 +145,8 @@ export declare function placeContext(areas: readonly ContextArea[], origin: LonL
145
145
  w: number;
146
146
  h: number;
147
147
  }, venues: readonly ContextVenue[]): ContextPlan;
148
+ /** A share of the trees, spread evenly over the lot: every tree at 1, none at 0, and at 0.5 every other. The same trees every time, so that a view drawn again at a tier keeps the ones it kept. */
149
+ export declare function thinTrees(trees: readonly ContextTree[], share: number): ContextTree[];
148
150
  /** The tone (0 low to 3 tall) of a building of `feet` height. */
149
151
  export declare const toneOf: (feet: number) => number;
150
152
  /** The streets flat on the floor, under the buildings: a path for each kind and width (a foot), widest and lowest kinds first, so that a sidewalk lies over the carriageway beside it and a viaduct's deck over the street under it. */
package/dist/context.js CHANGED
@@ -149,6 +149,23 @@ export function placeContext(areas, origin, turn, frame, venues) {
149
149
  const credits = (language) => [...new Set(layers.map((l) => l.attribution[language]).filter((text) => text !== ""))];
150
150
  return { blocks, streets, land, trees, owned, attribution: { en: credits("en"), ja: credits("ja") } };
151
151
  }
152
+ /** A share of the trees, spread evenly over the lot: every tree at 1, none at 0, and at 0.5 every other. The same trees every time, so that a view drawn again at a tier keeps the ones it kept. */
153
+ export function thinTrees(trees, share) {
154
+ if (share >= 1)
155
+ return [...trees];
156
+ if (!(share > 0))
157
+ return [];
158
+ const kept = [];
159
+ let owed = 0;
160
+ for (const tree of trees) {
161
+ owed += share;
162
+ if (owed >= 1) {
163
+ owed -= 1;
164
+ kept.push(tree);
165
+ }
166
+ }
167
+ return kept;
168
+ }
152
169
  /** The tone (0 low to 3 tall) of a building of `feet` height. */
153
170
  export const toneOf = (feet) => CONTEXT_TONES.filter((m) => feet / FEET_PER_METRE >= m).length;
154
171
  const num = (value) => String(Math.round(value * 100) / 100);
@@ -1,3 +1,4 @@
1
+ import "./full.ts";
1
2
  export { appendSurface, surfaceDomain } from "./d3.ts";
2
3
  export type { AppendOptions, D3Selection } from "./d3.ts";
3
4
  export type { ScaleFunction, SurfaceDomain } from "./scene.fit.ts";
package/dist/d3-entry.js CHANGED
@@ -1,2 +1,3 @@
1
1
  // A drawing on a d3 selection, in the caller's scales, with d3 not imported.
2
+ import "./full.js";
2
3
  export { appendSurface, surfaceDomain } from "./d3.js";
@@ -1,20 +1,2 @@
1
- export { DISTRICT_IDS, DISTRICT_MARGIN, DISTRICT_MODES, KYOGIJO_DISTRICT_STYLE, describeDistrict, districtId, districtMember, drawDistrict, isDistrictId, metresText, planDistrict, scaleOf, unknownVenues } from "./district.ts";
2
- export type { DistrictMember, DistrictMode, DistrictOptions, DistrictPart, DistrictPlaced, DistrictPlan, DistrictVenueInput, PlacedPart } from "./district.ts";
3
- export { buildDistrictTurn, districtPresets, districtTurnMarkup, mountDistrictTurn } from "./district.turn.ts";
4
- export type { DistrictTurnSettings } from "./district.turn.ts";
5
- export type { ContextArea } from "./context.ts";
6
- export { KODOKAN, KODOKAN_DOJO, KODOKAN_FLOOR_HEIGHT, KODOKAN_FLOOR_IDS, KODOKAN_FLOORS, KODOKAN_ROOM_HEIGHT, kodokanLevel, kodokanMember } from "./kodokan.ts";
7
- export type { KodokanFloor, KodokanRoom } from "./kodokan.ts";
8
- export { VENUE_ATTRIBUTION } from "./venues.ts";
9
- export { mountDistrict } from "./district.dom.ts";
10
- export type { KyogijoDistrict } from "./district.dom.ts";
11
- export { OUTSIDE_DENSITY, OUTSIDE_LEVELS, OUTSIDE_REACH, OUTSIDE_VENUES, hasOutside, isOutsideLevel, outsideCount, outsideCrowd, outsideLevelOf } from "./outside.ts";
12
- export type { OutsideCrowd, OutsideLevel, OutsideOptions } from "./outside.ts";
13
- export { PERSON_METRES, frameOf, rasterOutside } from "./outside.paint.ts";
14
- export type { OutsideFrame, OutsideStats } from "./outside.paint.ts";
15
- export { OUTSIDE_ROOM } from "./district.ts";
16
- export { WALK_CELL, WALK_IDS, walkMask, walkable } from "./walk.ts";
17
- export type { WalkData, WalkMask } from "./walk.ts";
18
- export { GATE_FACTS, GATE_VENUES, gateName, venueGates } from "./gates.ts";
19
- export type { Gate, GateBasis, GateFact } from "./gates.ts";
20
- export type { DistrictGate } from "./district.ts";
1
+ import "./full.ts";
2
+ export * from "./district.api.ts";
@@ -1,13 +1,4 @@
1
1
  // A district: several real venues of one city on one plan at their real relative positions and orientations (OpenStreetMap, ODbL 1.0), in 2D and in 3D, tight round neighbours or at the real distances of a city.
2
- export { DISTRICT_IDS, DISTRICT_MARGIN, DISTRICT_MODES, KYOGIJO_DISTRICT_STYLE, describeDistrict, districtId, districtMember, drawDistrict, isDistrictId, metresText, planDistrict, scaleOf, unknownVenues } from "./district.js";
3
- export { buildDistrictTurn, districtPresets, districtTurnMarkup, mountDistrictTurn } from "./district.turn.js";
4
- export { KODOKAN, KODOKAN_DOJO, KODOKAN_FLOOR_HEIGHT, KODOKAN_FLOOR_IDS, KODOKAN_FLOORS, KODOKAN_ROOM_HEIGHT, kodokanLevel, kodokanMember } from "./kodokan.js";
5
- export { VENUE_ATTRIBUTION } from "./venues.js";
6
- export { mountDistrict } from "./district.dom.js";
7
- // The crowd outside the venues, on ground people may stand on (OpenStreetMap, ODbL 1.0), at 0, 25, 50, 75 or 100 percent of the seats.
8
- export { OUTSIDE_DENSITY, OUTSIDE_LEVELS, OUTSIDE_REACH, OUTSIDE_VENUES, hasOutside, isOutsideLevel, outsideCount, outsideCrowd, outsideLevelOf } from "./outside.js";
9
- export { PERSON_METRES, frameOf, rasterOutside } from "./outside.paint.js";
10
- export { OUTSIDE_ROOM } from "./district.js";
11
- export { WALK_CELL, WALK_IDS, walkMask, walkable } from "./walk.js";
12
- // The gates of a venue: where the crowd goes in, on the building's outline, with the way each faces and how it is known.
13
- export { GATE_FACTS, GATE_VENUES, gateName, venueGates } from "./gates.js";
2
+ // This entry has every arena, park and ground, as it always had (the lean district, `district-lean`, has none until `loadVenueDataFor` has read the ones it shows).
3
+ import "./full.js";
4
+ export * from "./district.api.js";
@@ -0,0 +1,7 @@
1
+ export * from "./district.api.ts";
2
+ export * from "./areas-entry.ts";
3
+ export * from "./venue-data-entry.ts";
4
+ export { STADIUMS, STADIUM_IDS, stadiumById } from "./stadiums.ts";
5
+ export type { RealStadium, StadiumConfigId } from "./stadiums.ts";
6
+ export { QUALITIES, QUALITY_TIERS, isQuality } from "./quality.ts";
7
+ export type { Quality, QualityTier } from "./quality.ts";
@@ -0,0 +1,8 @@
1
+ // The lean district: everything the district entry has, for a page that wants to carry only the venues it shows. This entry holds no arena, park or ground until `loadVenueDataFor(venues)` has read the files of those it is about to draw
2
+ // (the same call and the same venues for `planDistrict`, `drawDistrict`, `mountDistrict` and `mountDistrictTurn`); with them read, what it draws is what the district entry draws, to the last character. The areas of context are read the same way
3
+ // (`loadAreasFor`). `venueName` lists the venues by name without reading any. Nothing here changes the district entry, which has every venue's data as it always had.
4
+ export * from "./district.api.js";
5
+ export * from "./areas-entry.js";
6
+ export * from "./venue-data-entry.js";
7
+ export { STADIUMS, STADIUM_IDS, stadiumById } from "./stadiums.js";
8
+ export { QUALITIES, QUALITY_TIERS, isQuality } from "./quality.js";
@@ -0,0 +1,20 @@
1
+ export { DISTRICT_IDS, DISTRICT_MARGIN, DISTRICT_MODES, KYOGIJO_DISTRICT_STYLE, describeDistrict, districtId, districtMember, districtRing, drawDistrict, isDistrictId, metresText, planDistrict, scaleOf, unknownVenues } from "./district.ts";
2
+ export type { DistrictMember, DistrictMode, DistrictOptions, DistrictPart, DistrictPlaced, DistrictPlan, DistrictVenueInput, PlacedPart } from "./district.ts";
3
+ export { buildDistrictTurn, districtPresets, districtTurnMarkup, mountDistrictTurn } from "./district.turn.ts";
4
+ export type { DistrictTurnSettings } from "./district.turn.ts";
5
+ export type { ContextArea } from "./context.ts";
6
+ export { KODOKAN, KODOKAN_DOJO, KODOKAN_FLOOR_HEIGHT, KODOKAN_FLOOR_IDS, KODOKAN_FLOORS, KODOKAN_ROOM_HEIGHT, kodokanLevel, kodokanMember } from "./kodokan.ts";
7
+ export type { KodokanFloor, KodokanRoom } from "./kodokan.ts";
8
+ export { VENUE_ATTRIBUTION } from "./venues.ts";
9
+ export { mountDistrict } from "./district.dom.ts";
10
+ export type { KyogijoDistrict } from "./district.dom.ts";
11
+ export { OUTSIDE_DENSITY, OUTSIDE_LEVELS, OUTSIDE_REACH, OUTSIDE_VENUES, hasOutside, isOutsideLevel, outsideCount, outsideCrowd, outsideLevelOf } from "./outside.ts";
12
+ export type { OutsideCrowd, OutsideLevel, OutsideOptions } from "./outside.ts";
13
+ export { PERSON_METRES, frameOf, rasterOutside } from "./outside.paint.ts";
14
+ export type { OutsideFrame, OutsideStats } from "./outside.paint.ts";
15
+ export { OUTSIDE_ROOM } from "./district.ts";
16
+ export { WALK_CELL, WALK_IDS, walkMask, walkable } from "./walk.ts";
17
+ export type { WalkData, WalkMask } from "./walk.ts";
18
+ export { GATE_FACTS, GATE_VENUES, gateName, venueGates } from "./gates.ts";
19
+ export type { Gate, GateBasis, GateFact } from "./gates.ts";
20
+ export type { DistrictGate } from "./district.ts";
@@ -0,0 +1,13 @@
1
+ // A district: several real venues of one city on one plan at their real relative positions and orientations (OpenStreetMap, ODbL 1.0), in 2D and in 3D, tight round neighbours or at the real distances of a city.
2
+ export { DISTRICT_IDS, DISTRICT_MARGIN, DISTRICT_MODES, KYOGIJO_DISTRICT_STYLE, describeDistrict, districtId, districtMember, districtRing, drawDistrict, isDistrictId, metresText, planDistrict, scaleOf, unknownVenues } from "./district.js";
3
+ export { buildDistrictTurn, districtPresets, districtTurnMarkup, mountDistrictTurn } from "./district.turn.js";
4
+ export { KODOKAN, KODOKAN_DOJO, KODOKAN_FLOOR_HEIGHT, KODOKAN_FLOOR_IDS, KODOKAN_FLOORS, KODOKAN_ROOM_HEIGHT, kodokanLevel, kodokanMember } from "./kodokan.js";
5
+ export { VENUE_ATTRIBUTION } from "./venues.js";
6
+ export { mountDistrict } from "./district.dom.js";
7
+ // The crowd outside the venues, on ground people may stand on (OpenStreetMap, ODbL 1.0), at 0, 25, 50, 75 or 100 percent of the seats.
8
+ export { OUTSIDE_DENSITY, OUTSIDE_LEVELS, OUTSIDE_REACH, OUTSIDE_VENUES, hasOutside, isOutsideLevel, outsideCount, outsideCrowd, outsideLevelOf } from "./outside.js";
9
+ export { PERSON_METRES, frameOf, rasterOutside } from "./outside.paint.js";
10
+ export { OUTSIDE_ROOM } from "./district.js";
11
+ export { WALK_CELL, WALK_IDS, walkMask, walkable } from "./walk.js";
12
+ // The gates of a venue: where the crowd goes in, on the building's outline, with the way each faces and how it is known.
13
+ export { GATE_FACTS, GATE_VENUES, gateName, venueGates } from "./gates.js";
@@ -132,6 +132,11 @@ export declare const isDistrictId: (id: string) => boolean;
132
132
  * ```
133
133
  */
134
134
  export declare function districtMember(input: DistrictVenueInput, language?: Language, floor?: number): DistrictMember;
135
+ /**
136
+ * The outline of a venue's building, as `districtMember(input).ring` has it, read without the venue's records: a crowd outside keeps out of every building the ground has, and the buildings of venues that are not shown need no names.
137
+ * Throws as `districtMember` does for a key no venue has.
138
+ */
139
+ export declare function districtRing(input: DistrictVenueInput): DistrictMember["ring"];
135
140
  /** Turn a point of the map (east, down the page) by `degrees` clockwise on the page. */
136
141
  export declare const turnBy: ([x, y]: Pt, degrees: number) => Pt;
137
142
  /** A venue placed in the district: where its surface's middle is, how far its drawing is turned, and where its building stands, all in feet in the district's frame (x to the right, y down the page). */
package/dist/district.js CHANGED
@@ -3,7 +3,7 @@
3
3
  // `neighbours` fits the plan tight round buildings that stand within a few hundred metres of each other, with no more than a margin between them; `city` keeps the real distances between venues that are kilometres
4
4
  // apart, with a grid, a scale and a name beside each. Nothing is drawn but what the venues are drawn from: no street, no park and no mark of a team, a league or a tournament; the credit
5
5
  // `VENUE_ATTRIBUTION` goes with it. Pure: options in, a plan, and markup, out; `district.turn.ts` raises it in 3D.
6
- import { arenaById, arenaNameIn } from "./arenas.js";
6
+ import { heldArena, arenaNameIn } from "./arenas.core.js";
7
7
  import { dojo } from "./budo/dojo.api.js";
8
8
  import { kodokanMember } from "./kodokan.js";
9
9
  import { contextFloor, contextFrame, placeContext, toneOf } from "./context.js";
@@ -18,7 +18,7 @@ import { venueGates } from "./gates.js";
18
18
  import { walkIdFor } from "./walk.js";
19
19
  export const DISTRICT_MODES = ["neighbours", "city"];
20
20
  const venueMember = (venue, language) => {
21
- const arena = arenaById(venue.id);
21
+ const arena = heldArena(venue.id);
22
22
  if (arena === undefined)
23
23
  throw new Error(`${venue.id} is not an arena`);
24
24
  return {
@@ -87,6 +87,26 @@ export function districtMember(input, language = "en", floor) {
87
87
  }
88
88
  throw new Error(`no venue ${String(id)}: the venues are ${DISTRICT_IDS.join(", ")}`);
89
89
  }
90
+ /**
91
+ * The outline of a venue's building, as `districtMember(input).ring` has it, read without the venue's records: a crowd outside keeps out of every building the ground has, and the buildings of venues that are not shown need no names.
92
+ * Throws as `districtMember` does for a key no venue has.
93
+ */
94
+ export function districtRing(input) {
95
+ const [id, named] = typeof input === "string" ? input.split(":") : [input.id, input.config];
96
+ const venue = venueById(id);
97
+ if (venue !== undefined) {
98
+ if (named !== undefined && named !== "nhl")
99
+ throw new Error(`${id} is an arena with one configuration, not ${named}`);
100
+ return venue.osm.ring;
101
+ }
102
+ const stadium = stadiumById(id);
103
+ if (stadium !== undefined) {
104
+ if (named !== undefined && stadium.configs[named] === undefined)
105
+ throw new Error(`${id} has no configuration ${named}: ${stadiumConfigs(stadium).join(", ")}`);
106
+ return stadium.osm.ring;
107
+ }
108
+ return districtMember(input).ring;
109
+ }
90
110
  // ---- The plan. ----
91
111
  const RAD = Math.PI / 180;
92
112
  /** Turn a point of the map (east, down the page) by `degrees` clockwise on the page. */
@@ -3,7 +3,8 @@
3
3
  // plan drawn with each venue's building only. The model it makes is a `TurnModel`, so the camera, the controls, the pointer, the auto-turn and the steady fit of every other 3D view are this one's; its
4
4
  // buildings are stacked building by building (`Plane.group`), the far one first, so that a roof never shows through a nearer building.
5
5
  import { describeDistrict, districtId, drawDistrict, drawMember, nestedDrawing, planDistrict, surfaceCentre } from "./district.js";
6
- import { blockPlanes, contextUprights, shellBlock, slabPlanes } from "./context.js";
6
+ import { blockPlanes, contextUprights, shellBlock, slabPlanes, thinTrees } from "./context.js";
7
+ import { TIER_PROFILES, tierOf } from "./quality.js";
7
8
  import { dojo } from "./budo/dojo.api.js";
8
9
  import { KODOKAN_FLOORS, KODOKAN_GALLERY_LEVEL } from "./kodokan.js";
9
10
  import { APART, n, plane } from "./turn.kit.js";
@@ -54,6 +55,27 @@ function placeInDistrict(p, placed, centre, prefix, group, lift = 0) {
54
55
  }
55
56
  return moved;
56
57
  }
58
+ /** The box a district at `high` is framed to, kept for the options it was worked out for, so that a lower tier is framed exactly as `high` is: the camera does not move when the tier changes. */
59
+ const HIGH_BOX = new WeakMap();
60
+ /** The small parts of a venue that the lower tiers leave out: its furniture and fittings, never its stands, walls, floor or roof. */
61
+ const SMALL_PARTS = new Set(["bench", "glass", "post", "goal", "stanchion", "pole", "pylon", "mast", "fascia", "rail", "platform", "apron", "flag", "board", "frame", "rim", "net", "antenna", "tape"]);
62
+ /** How high a venue that is drawn as a block stands, in feet, by what it is: a stand-in for its stands and roof, near what its own model reaches. */
63
+ const BLOCK_HEIGHT = { arena: 100, stadium: 115, park: 95, hall: 60 };
64
+ /** A venue drawn as a proxy is a closed block while it is smaller than this share of the plan's longest side, and a ring of walls open at the top (the field and its stands show inside) above it. */
65
+ const SOLID_BELOW = 0.12;
66
+ /** The planes of a venue drawn as a proxy, in the venue's own group, tinted as a venue and not as the buildings round it: its outline standing up to its height, closed by a roof when it is small, a ring of walls seen from both sides when it is not. */
67
+ function venueBlock(key, kind, ring, prefix, group, open) {
68
+ const height = BLOCK_HEIGHT[kind] ?? 90;
69
+ const block = shellBlock(`venue-${key}`, ring, open ? height * 0.6 : height, undefined);
70
+ const planes = blockPlanes(block, `${prefix}proxy-`).filter((p) => !open || /w\d+$/.test(p.id));
71
+ return planes.map((p) => {
72
+ const tinted = { ...p, svg: p.svg.replace(/u-block-roof/g, "u-proxy-roof").replace(/u-block-([abc])/g, "u-proxy-$1").replace(/u-block /g, "u-proxy "), group };
73
+ // Seen from both sides: the inside of the far wall shows over the field.
74
+ if (open)
75
+ delete tinted.cull;
76
+ return tinted;
77
+ });
78
+ }
57
79
  /** A name that faces the eye, standing over a building: its text on a plate. */
58
80
  function sign(id, text, at, bottom, size, group) {
59
81
  const wide = Math.max(size * 2.2, size * 0.62 * text.length + size * 1.2);
@@ -70,6 +92,9 @@ export function buildDistrictTurn(options, settings = {}) {
70
92
  const plan = planDistrict(options);
71
93
  const base = districtId(options);
72
94
  const id = settings.id ?? `${base}-turn`;
95
+ // How much is drawn: the tier asked for (a view that chooses by its frames builds it again at each tier).
96
+ const profile = TIER_PROFILES[tierOf(settings.quality)];
97
+ const longest = Math.max(plan.view.w, plan.view.h);
73
98
  const labels = options.labels ?? plan.mode === "city";
74
99
  const items = [];
75
100
  const defs = [];
@@ -77,12 +102,23 @@ export function buildDistrictTurn(options, settings = {}) {
77
102
  plan.members.forEach((placed, i) => {
78
103
  const member = placed.member;
79
104
  const prefix = `m${i}-`;
105
+ // A small venue, in a tier that draws such as a block: its outline standing up to its height, and nothing of its stands.
106
+ const xs = placed.footprint.map((q) => q[0]);
107
+ const ys = placed.footprint.map((q) => q[1]);
108
+ const plain = member.shell === undefined && member.parts === undefined && member.elevation === undefined && member.plate === undefined && member.slabs === undefined;
109
+ const span = Math.max(Math.max(...xs) - Math.min(...xs), Math.max(...ys) - Math.min(...ys));
110
+ // (A district of one venue never draws it as a block: it is what the view is of.)
111
+ if (plain && plan.members.length > 1 && profile.proxy > 0 && span < profile.proxy * longest) {
112
+ items.push({ id: `${prefix}proxy`, kind: "blocks", at: placed.at, height: BLOCK_HEIGHT[member.kind] ?? 90, planes: venueBlock(member.key, member.kind, placed.footprint, prefix, i, span >= SOLID_BELOW * longest) });
113
+ return;
114
+ }
80
115
  // A venue may have several surfaces (the rooms of a floor): each is built as its own 3D view is, with the crowd drawn without its seats on its floor and the stands raised, and put where the plan puts it, in the venue's one group.
81
116
  placed.parts.forEach((pp, j) => {
82
117
  const part = pp.part;
83
118
  const tag = j === 0 ? "" : `p${j}`;
84
119
  const memberId = `${id}-m${i}${tag}`;
85
- const model = buildTurn({ ...part.options, language, ...(options.theme === undefined ? {} : { theme: options.theme }), id: `${base}-m${i}${tag}` }, { ...settings, id: memberId, venue: { roof: true, ...(typeof settings.venue === "object" ? settings.venue : {}) }, preset: undefined, view: undefined });
120
+ const crowd = part.options.crowd;
121
+ const model = buildTurn({ ...part.options, ...(profile.simple && typeof crowd === "object" && crowd !== null ? { crowd: { ...crowd, detail: "plain", density: Math.min(crowd.density ?? 0.85, 0.6) } } : {}), language, ...(options.theme === undefined ? {} : { theme: options.theme }), id: `${base}-m${i}${tag}` }, { ...settings, id: memberId, venue: { roof: true, ...(typeof settings.venue === "object" ? settings.venue : {}) }, preset: undefined, view: undefined });
86
122
  const centre = surfaceCentre(part.options);
87
123
  const pfx = `m${i}${tag}-`;
88
124
  // A surface on an upper floor (the Kodokan's dojos) stands that high over the ground, on a floor drawn in the air; the ground under it is left bare.
@@ -91,7 +127,7 @@ export function buildDistrictTurn(options, settings = {}) {
91
127
  const lowest = (p) => Math.min(p.o[2], p.o[2] + p.u[2], p.o[2] + p.v[2], p.o[2] + p.u[2] + p.v[2]);
92
128
  const shown = (p) => part.show === undefined || (part.show === "gallery") === (lowest(p) >= KODOKAN_GALLERY_LEVEL - 1e-6);
93
129
  for (const item of model.uprights.items) {
94
- const planes = item.planes.filter((p) => p.kind !== "ground" && shown(p)).map((p) => placeInDistrict(p, pp, centre, pfx, i, lift));
130
+ const planes = item.planes.filter((p) => p.kind !== "ground" && shown(p) && !(profile.simple && SMALL_PARTS.has(p.kind))).map((p) => placeInDistrict(p, pp, centre, pfx, i, lift));
95
131
  if (planes.length > 0) {
96
132
  const [ax, ay] = item.at;
97
133
  const [rx, ry] = rot([ax - centre[0], ay - centre[1]], pp.angle);
@@ -142,6 +178,9 @@ export function buildDistrictTurn(options, settings = {}) {
142
178
  // The great dojo's floor, seen with every floor, has its own slab; and a solid building hides what is in it.
143
179
  if (!chosen && ((member.plate === undefined && slab.floor === 7) || options.building === "solid"))
144
180
  continue;
181
+ // The faint floors are as big as the building (each is a layer of its own, a megapixel and more): the lower tiers keep the chosen floor's and leave the others out.
182
+ if (!chosen && profile.simple)
183
+ continue;
145
184
  const ids = chosen ? { top: `${prefix}plate`, side: `${prefix}plate-s` } : { top: `${prefix}plate-f${slab.floor}-top`, side: `${prefix}plate-f${slab.floor}-s` };
146
185
  const planes = slabPlanes(placed.footprint, slab.level, thick, ids, chosen ? "chosen" : "faint").map((p) => ({ ...p, group: i }));
147
186
  items.push({ id: ids.top, kind: "deck", at: placed.at, height: slab.level, planes });
@@ -156,7 +195,7 @@ export function buildDistrictTurn(options, settings = {}) {
156
195
  });
157
196
  // The buildings round the venues stand apart from them: each block's planes are of no venue's group.
158
197
  if (plan.context !== undefined)
159
- for (const item of contextUprights(plan.context))
198
+ for (const item of contextUprights(plan.context, profile.blocks))
160
199
  items.push({ ...item, planes: item.planes.map((p) => ({ ...p, group: APART })) });
161
200
  if (labels) {
162
201
  const size = Math.max(plan.view.w, plan.view.h) * (plan.mode === "city" ? 0.016 : 0.022);
@@ -172,9 +211,24 @@ export function buildDistrictTurn(options, settings = {}) {
172
211
  const area = { x0: view.x, y0: view.y, x1: view.x + view.w, y1: view.y + view.h };
173
212
  const uprights = { items, lift: 0, thin: Math.hypot(view.w, view.h) * 0.0012, area, whole: true, ...(defs.length === 0 ? {} : { defs: defs.join("") }) };
174
213
  const planes = planesOf(uprights);
175
- const box = sceneBox(planes, area, 0, centre, scale);
214
+ // The camera is fitted to what the district is at `high`, whatever tier it is drawn at: a view that changes tier keeps its camera where it is, and the lower tiers stand in the same frame.
215
+ let box = sceneBox(planes, area, 0, centre, scale);
216
+ if (profile.tier !== "high") {
217
+ const key = JSON.stringify(settings.venue ?? null);
218
+ const known = HIGH_BOX.get(options);
219
+ if (known?.key === key)
220
+ box = known.box;
221
+ else {
222
+ box = buildDistrictTurn(options, { ...settings, quality: "high" }).box;
223
+ HIGH_BOX.set(options, { key, box });
224
+ }
225
+ }
226
+ else
227
+ HIGH_BOX.set(options, { key: JSON.stringify(settings.venue ?? null), box });
176
228
  // (The floor has no names: the 3D view's own signs, which face the eye, carry them.)
177
- const floor = drawDistrict({ ...options, id: base, labels: false }, plan, (member, i, part) => drawMember(member, { ...options, id: base }, i, base, { floor: true }, part));
229
+ // (The trees of the tiers that draw fewer are thinned on the floor only: a tree is a dot there.)
230
+ const floorPlan = profile.trees < 1 && plan.context?.trees !== undefined ? { ...plan, context: { ...plan.context, trees: thinTrees(plan.context.trees, profile.trees) } } : plan;
231
+ const floor = drawDistrict({ ...options, id: base, labels: false }, floorPlan, (member, i, part) => drawMember(member, { ...options, id: base }, i, base, { floor: true }, part));
178
232
  const { title, description } = describeDistrict(options, plan);
179
233
  const presets = districtPresets(plan);
180
234
  const surfaceLike = { sport: "soccer", language, ...(options.theme === undefined ? {} : { theme: options.theme }), ...(options.style === undefined ? {} : { style: options.style }) };
@@ -199,6 +253,7 @@ export function buildDistrictTurn(options, settings = {}) {
199
253
  centre,
200
254
  view: openingView(settings, presets),
201
255
  turnable: true,
256
+ tiered: true,
202
257
  presets,
203
258
  // A scene that turns about its middle with buildings far from it wants a longer lens, so that what swings toward the eye does not swell.
204
259
  lens: 12,
package/dist/draw.js CHANGED
@@ -8,11 +8,11 @@ import { el, esc, num } from "./format.js";
8
8
  import { fieldAttributes } from "./field.data.js";
9
9
  import { ERA_SPORTS, footballIn, rulesFor, seasonLabel } from "./eras.js";
10
10
  import { FOOTBALL } from "./geometry.js";
11
- import { renderLayers } from "./layers.js";
12
- import { arenaById, arenaCourtIn, arenaNameIn, arenaOfficialName, arenaRinkIn } from "./arenas.js";
11
+ import { partOf } from "./draw.parts.js";
12
+ import { heldArena, arenaCourtIn, arenaNameIn, arenaOfficialName, arenaRinkIn } from "./arenas.core.js";
13
13
  import { venueById, venueBowl } from "./venues.js";
14
14
  import { KYOGIJO_STADIUM_STYLE, planPark, stadiumBowl, stadiumById, stadiumConfigOf, stadiumConfigs, stadiumKind, stadiumNames, stadiumSeats } from "./stadiums.js";
15
- import { groundById, groundNameIn, groundOfficialName } from "./grounds.js";
15
+ import { heldGround, groundNameIn, groundOfficialName } from "./grounds.core.js";
16
16
  import { BOARD, courtFor, hasSetsBoard, isNetLeague, isNetSport } from "./court.js";
17
17
  import { cricketBoardMarkup } from "./cricket.board.js";
18
18
  import { athleticsPlan } from "./athletics/plan.js";
@@ -39,7 +39,7 @@ import { fieldsStyle } from "./fields.style.js";
39
39
  import { resolveHomeSide } from "./homeside.js";
40
40
  import { LEAGUES, chooseLeague, courtOf, diamondOf, fieldOf, hasHistory, leagueSeason, leagueSize, netOf, rinkOf, sheetOf } from "./leagues.js";
41
41
  import { MLB_DIAMOND, diamondFence } from "./leagues/baseball.js";
42
- import { fenceFor, parkById, parkNameIn, parkOfficialName, parkWallsIn } from "./parks.js";
42
+ import { fenceFor, heldPark, parkNameIn, parkOfficialName, parkWallsIn } from "./parks.core.js";
43
43
  import { boardMarkup, endText } from "./curling.board.js";
44
44
  import { sheetFor } from "./sheet.js";
45
45
  import { commonOf, isPoolSport, swimPlan, poloPlan, divePlan, artisticPlan } from "./pool.js";
@@ -93,6 +93,8 @@ import { specialText } from "./events.js";
93
93
  import { layoutOf, soccerSpec } from "./surfaces/soccer-spec.js";
94
94
  import { abbreviate, capitals } from "./text.js";
95
95
  import { VERSION } from "./version.js";
96
+ /** What the layers are when a drawing has none: nothing, and nothing to say. */
97
+ const NO_LAYERS = { svg: "", summaries: [] };
96
98
  export { isPortrait };
97
99
  /** The sports that can be drawn, in the order a menu lists them. */
98
100
  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"];
@@ -229,7 +231,7 @@ const GOALS = ["box", "line", "strip", "none"];
229
231
  export function pitchOf(o) {
230
232
  if (o.pitch !== undefined)
231
233
  return o.pitch;
232
- const ground = groundById(o.ground);
234
+ const ground = heldGround(o.ground);
233
235
  return ground === undefined || ground.pitchSize === "default" ? undefined : { ...ground.pitch, unit: "m" };
234
236
  }
235
237
  function buildSoccer(o, common, scored, unit) {
@@ -309,13 +311,13 @@ function buildWhole(o, portrait, id, score, scored, extra) {
309
311
  }
310
312
  case "nhl": {
311
313
  // An arena's rink is the size its sources publish, with the markings of the season asked for; an arena with none published has the NHL's.
312
- const sized = league === undefined ? arenaRinkIn(arenaById(o.arena), o.year) : undefined;
314
+ const sized = league === undefined ? arenaRinkIn(heldArena(o.arena), o.year) : undefined;
313
315
  if (sized !== undefined)
314
316
  return hockey(common, rulesFor("nhl", o.year).rules, { ...NHL_RINK, length: sized.length, width: sized.width });
315
317
  return league?.family === "hockey" ? hockey(common, undefined, rinkOf(league, o.year)) : hockey(common, rulesFor("nhl", o.year).rules);
316
318
  }
317
319
  case "nba": {
318
- const sized = league === undefined ? arenaCourtIn(arenaById(o.arena), o.year) : undefined;
320
+ const sized = league === undefined ? arenaCourtIn(heldArena(o.arena), o.year) : undefined;
319
321
  if (sized !== undefined)
320
322
  return basketball(common, rulesFor("nba", o.year).rules, { ...NBA_COURT, length: sized.length, width: sized.width });
321
323
  return league?.family === "basketball" ? basketball(common, undefined, courtOf(league, o.year)) : basketball(common, rulesFor("nba", o.year).rules);
@@ -323,11 +325,11 @@ function buildWhole(o, portrait, id, score, scored, extra) {
323
325
  case "mlb": {
324
326
  if (league?.family === "baseball") {
325
327
  const diamond = diamondOf(league, o.year);
326
- return baseball(fenceFor(parkById(o.park), feetFence(o.fence, unit), o.year, diamondFence(diamond)), { ...common, ballpark: ballparkFor(o) }, undefined, diamond);
328
+ return baseball(fenceFor(heldPark(o.park), feetFence(o.fence, unit), o.year, diamondFence(diamond)), { ...common, ballpark: ballparkFor(o) }, undefined, diamond);
327
329
  }
328
330
  // A real ballpark whose infield is all dirt (Koshien Stadium's) has no grass inside the bases.
329
331
  const dirt = realStadiumOf(o, "mlb", resolveCrowd(o.crowd)?.real === true)?.stadium.looks?.dirtInfield !== undefined;
330
- return baseball(fenceFor(parkById(o.park), feetFence(o.fence, unit), o.year), { ...common, ballpark: ballparkFor(o), ...(dirt ? { dirtInfield: true } : {}) }, rulesFor("mlb", o.year).rules);
332
+ return baseball(fenceFor(heldPark(o.park), feetFence(o.fence, unit), o.year), { ...common, ballpark: ballparkFor(o), ...(dirt ? { dirtInfield: true } : {}) }, rulesFor("mlb", o.year).rules);
331
333
  }
332
334
  case "soccer":
333
335
  return buildSoccer(o, common, scored, unit);
@@ -418,9 +420,9 @@ function parkFence(o) {
418
420
  const { league } = chooseLeague(o);
419
421
  if (league?.family === "baseball") {
420
422
  const diamond = diamondOf(league, o.year);
421
- return { points: fenceFor(parkById(o.park), feetFence(o.fence, unit), o.year, diamondFence(diamond)), backstop: diamond.backstop };
423
+ return { points: fenceFor(heldPark(o.park), feetFence(o.fence, unit), o.year, diamondFence(diamond)), backstop: diamond.backstop };
422
424
  }
423
- return { points: fenceFor(parkById(o.park), feetFence(o.fence, unit), o.year), backstop: MLB_DIAMOND.backstop };
425
+ return { points: fenceFor(heldPark(o.park), feetFence(o.fence, unit), o.year), backstop: MLB_DIAMOND.backstop };
424
426
  }
425
427
  /**
426
428
  * The real stadium (and the configuration) the options draw, where `crowd: { real: true }` asks for one: a football field (`cfl`, `nfl`) or a soccer pitch in the stadium named by `stadium` or by the `ground`, a baseball field in
@@ -440,7 +442,7 @@ function standsFor(o, surface, crowd) {
440
442
  if (sport === "mlb") {
441
443
  const { points, backstop } = parkFence(o);
442
444
  // The walls that have seats on top of them: the ones the package knows (Fenway Park's Green Monster), or, asked for, every wall of 25 feet or more.
443
- const park = parkById(o.park);
445
+ const park = heldPark(o.park);
444
446
  const walls = park === undefined || crowd.wallSeats === false ? [] : parkWallsIn(park, o.year).filter((w) => (crowd.wallSeats === true ? w.height_ft >= 25 : w.label !== undefined && WALL_SEATS[park.id] === w.label));
445
447
  const input = { fence: fenceOutline(points), backstop, crowd, seatsOnWalls: walls.map((w) => ({ from: w.from, to: w.to, height: w.height_ft })) };
446
448
  // A real ballpark: the building it stands in, the way home plate faces and a roof, with its stands as deep as its seats need (no visitors' block: no source places one).
@@ -503,7 +505,7 @@ function buildCrowded(o, portrait, id, score, scored, extra, crowd) {
503
505
  const surface = buildWhole(o, portrait, id, score, scored, { ...extra, margin });
504
506
  const stands = standsFor(o, surface, crowd);
505
507
  const seats = stands.seats;
506
- const ground = groundById(o.ground)?.capacity;
508
+ const ground = heldGround(o.ground)?.capacity;
507
509
  const fine = crowd.detail === "fine" || (crowd.detail === "auto" && !smallDrawing(o));
508
510
  const first = /^<[^>]*\/>/.exec(surface.base)?.[0] ?? "";
509
511
  const bg = /class="([^"]*)"/.exec(first)?.[1] ?? "ky-apron";
@@ -744,17 +746,17 @@ export function describe(o) {
744
746
  const language = o.language === "ja" ? "ja" : "en";
745
747
  const words = KYOGIJO_STRINGS[language];
746
748
  const { sport, league } = chooseLeague(o);
747
- const park = sport === "mlb" ? parkById(o.park) : undefined;
749
+ const park = sport === "mlb" ? heldPark(o.park) : undefined;
748
750
  const parkName = park === undefined ? undefined : parkNameIn(park, language);
749
751
  const pitch = sport === "soccer" ? soccerSpec(pitchOf(o)) : undefined;
750
752
  // A ground names a full-size pitch; a small-sided pitch or futsal court the caller asked for keeps its own name.
751
- const ground = pitch?.format === "11" ? groundById(o.ground) : undefined;
753
+ const ground = pitch?.format === "11" ? heldGround(o.ground) : undefined;
752
754
  const groundName = ground === undefined ? undefined : groundNameIn(ground, o.year, language);
753
755
  // A league other than the sport's own is named by its rulebook's, and its description is made from its figures.
754
- const trackGround = sport === "athletics" ? groundById(o.ground) : undefined;
756
+ const trackGround = sport === "athletics" ? heldGround(o.ground) : undefined;
755
757
  const trackGroundName = trackGround === undefined ? undefined : groundNameIn(trackGround, o.year, language);
756
758
  // An arena names its rink or its court.
757
- const arena = (sport === "nhl" || sport === "nba") && league === undefined ? arenaById(o.arena) : undefined;
759
+ const arena = (sport === "nhl" || sport === "nba") && league === undefined ? heldArena(o.arena) : undefined;
758
760
  const arenaName = arena === undefined ? undefined : arenaNameIn(arena, o.year, language);
759
761
  const arenaSize = arena === undefined || arenaName === undefined ? undefined : sport === "nhl" ? arenaRinkIn(arena, o.year) : arenaCourtIn(arena, o.year);
760
762
  const surfaceName = arenaName !== undefined ? fill(sport === "nhl" ? words.said.arenaRink : words.said.arenaCourt, { arena: arenaName }) : trackGroundName !== undefined ? fill(words.athletics.ground, { ground: trackGroundName }) : groundName !== undefined ? (language === "ja" ? `${groundName}のピッチ` : `${groundName}, soccer pitch`) : league !== undefined && parkName === undefined ? league.name[language] : parkName === undefined ? (pitch?.format === "futsal" ? words.soccer.futsal : words.surface[sport]) : language === "ja" ? `${parkName}のグラウンド` : `${parkName}, baseball field`;
@@ -1086,13 +1088,13 @@ function drawnKyogijo(o) {
1086
1088
  if (sit !== undefined && lineupped)
1087
1089
  inner += cutSit(sit.over);
1088
1090
  // Data goes over the markings and under the score's panel.
1089
- const layered = renderLayers(o, o.layers, surface.turned, surface.whole === undefined ? undefined : surface.box, surface.upright);
1091
+ const layered = o.layers === undefined || o.layers.length === 0 ? NO_LAYERS : partOf("layers", "the layers option")(o, o.layers, surface.turned, surface.whole === undefined ? undefined : surface.box, surface.upright);
1090
1092
  inner += surface.frame === undefined || layered.svg === "" ? layered.svg : el("g", { transform: surface.frame }, layered.svg);
1091
1093
  // A surface drawn in parts shows the data again in each enlarged part, with its own ids, hidden from a reader of the drawing (the strip says it). A colour bar sized
1092
1094
  // against the whole sheet falls outside the panels' part of it and is cut away there; one given a `region` inside a panel's part is drawn there, large.
1093
1095
  if (surface.panels !== undefined && layered.svg !== "" && o.layers !== undefined) {
1094
1096
  surface.panels.forEach((panel, i) => {
1095
- const copy = renderLayers({ ...o, id: `${id}-f${i}` }, o.layers, surface.turned);
1097
+ const copy = partOf("layers", "the layers option")({ ...o, id: `${id}-f${i}` }, o.layers, surface.turned);
1096
1098
  if (copy.svg !== "")
1097
1099
  inner += el("g", { class: "ky-fold-data", "aria-hidden": "true", transform: panel.transform, "clip-path": `url(#${panel.clip})` }, copy.svg);
1098
1100
  });
@@ -0,0 +1,12 @@
1
+ import type { renderLayers } from "./layers.ts";
2
+ /** The parts there are, by name, each with the function the drawing calls. */
3
+ export interface DrawParts {
4
+ /** The data laid over a surface (`options.layers`): shots, heat maps, tracks, lineups, legends. */
5
+ layers: typeof renderLayers;
6
+ }
7
+ /** Hold a part for the drawing: what `full.ts` does for each part there is. */
8
+ export declare function providePart<K extends keyof DrawParts>(name: K, feature: DrawParts[K]): void;
9
+ /** Whether a part is held. */
10
+ export declare const hasPart: (name: keyof DrawParts) => boolean;
11
+ /** A part, for a drawing whose options ask for it (`asked` names the option); throws, saying how to have it, where it is not held. */
12
+ export declare function partOf<K extends keyof DrawParts>(name: K, asked: string): DrawParts[K];
@@ -0,0 +1,14 @@
1
+ const held = {};
2
+ /** Hold a part for the drawing: what `full.ts` does for each part there is. */
3
+ export function providePart(name, feature) {
4
+ held[name] = feature;
5
+ }
6
+ /** Whether a part is held. */
7
+ export const hasPart = (name) => held[name] !== undefined;
8
+ /** A part, for a drawing whose options ask for it (`asked` names the option); throws, saying how to have it, where it is not held. */
9
+ export function partOf(name, asked) {
10
+ const found = held[name];
11
+ if (found === undefined)
12
+ throw new Error(`${asked} needs the ${name} part of the drawing, which this entry does not carry: use an entry that has every part (the main entry, or any but the lean district's), or import "@johnmorrisdotca/kyogijo-stadiums/full" first`);
13
+ return found;
14
+ }
@@ -1,3 +1,4 @@
1
+ import "./full.ts";
1
2
  export { KYOGIJO_ATTRIBUTES, KYOGIJO_TAG, KyogijoField, defineKyogijoField, optionsFromAttributes, replaySettingsFromAttributes, turnSettingsFromAttributes, turnWanted } from "./element.ts";
2
3
  export { useEmblems } from "./emblems-source.ts";
3
4
  export type { EmblemRenderer } from "./emblems-source.ts";
@@ -1,4 +1,5 @@
1
1
  // The custom element's class and its registration function; importing this entry registers nothing.
2
+ import "./full.js";
2
3
  export { KYOGIJO_ATTRIBUTES, KYOGIJO_TAG, KyogijoField, defineKyogijoField, optionsFromAttributes, replaySettingsFromAttributes, turnSettingsFromAttributes, turnWanted } from "./element.js";
3
4
  export { useEmblems } from "./emblems-source.js";
4
5
  export { useFlags } from "./flags-source.js";
@@ -1,3 +1,4 @@
1
+ import "./full.ts";
1
2
  export { EVENTS, EVENT_IDS, EVENT_SOURCES, conventionPlacement, eventById, eventFit, eventOptions, eventSources, fitOf } from "./events.ts";
2
3
  export type { EventSource, Fit, PlacementBasis, PlacementRule, SpecialEvent, SpecialEventData, Words } from "./events.ts";
3
4
  export { KYOGIJO_SPECIAL_STYLE } from "./special.style.ts";