Prep site for MVP
This commit is contained in:
parent
2211cfde2e
commit
a719c7739c
@ -7,7 +7,7 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
|
||||
<meta property="og:title" content="SBa: Season 7" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="https://sombaseball.ddns.net" />
|
||||
<meta property="og:url" content="https://sba.manticorum.dev" />
|
||||
<meta property="og:image" content="https://sombaseball.ddns.net/static/images/sba-network.png" />
|
||||
<meta property="og:description" content="The home of the Strat-o-matic Baseball Association" />
|
||||
<meta name="theme-color" content="#A6CE39">
|
||||
|
||||
217
package-lock.json
generated
217
package-lock.json
generated
@ -8,6 +8,8 @@
|
||||
"name": "sba2",
|
||||
"version": "0.0.0",
|
||||
"dependencies": {
|
||||
"@popperjs/core": "2.11.8",
|
||||
"bootstrap": "5.3.1",
|
||||
"vue": "^3.2.45",
|
||||
"vue-router": "^4.1.6"
|
||||
},
|
||||
@ -35,9 +37,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/parser": {
|
||||
"version": "7.21.1",
|
||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.1.tgz",
|
||||
"integrity": "sha512-JzhBFpkuhBNYUY7qs+wTzNmyCWUHEaAFpQQD2YfU1rPL38/L43Wvid0fFkiOCnHvsGncRZgEPyGnltABLcVDTg==",
|
||||
"version": "7.22.10",
|
||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.10.tgz",
|
||||
"integrity": "sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ==",
|
||||
"bin": {
|
||||
"parser": "bin/babel-parser.js"
|
||||
},
|
||||
@ -422,10 +424,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@jridgewell/sourcemap-codec": {
|
||||
"version": "1.4.14",
|
||||
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
|
||||
"integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
|
||||
"dev": true
|
||||
"version": "1.4.15",
|
||||
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
|
||||
"integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
|
||||
},
|
||||
"node_modules/@juggle/resize-observer": {
|
||||
"version": "3.4.0",
|
||||
@ -468,6 +469,15 @@
|
||||
"node": ">= 8"
|
||||
}
|
||||
},
|
||||
"node_modules/@popperjs/core": {
|
||||
"version": "2.11.8",
|
||||
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
|
||||
"integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==",
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/popperjs"
|
||||
}
|
||||
},
|
||||
"node_modules/@rollup/pluginutils": {
|
||||
"version": "5.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz",
|
||||
@ -621,49 +631,49 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-core": {
|
||||
"version": "3.2.47",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.47.tgz",
|
||||
"integrity": "sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==",
|
||||
"version": "3.3.4",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz",
|
||||
"integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==",
|
||||
"dependencies": {
|
||||
"@babel/parser": "^7.16.4",
|
||||
"@vue/shared": "3.2.47",
|
||||
"@babel/parser": "^7.21.3",
|
||||
"@vue/shared": "3.3.4",
|
||||
"estree-walker": "^2.0.2",
|
||||
"source-map": "^0.6.1"
|
||||
"source-map-js": "^1.0.2"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-dom": {
|
||||
"version": "3.2.47",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.47.tgz",
|
||||
"integrity": "sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==",
|
||||
"version": "3.3.4",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz",
|
||||
"integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==",
|
||||
"dependencies": {
|
||||
"@vue/compiler-core": "3.2.47",
|
||||
"@vue/shared": "3.2.47"
|
||||
"@vue/compiler-core": "3.3.4",
|
||||
"@vue/shared": "3.3.4"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-sfc": {
|
||||
"version": "3.2.47",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz",
|
||||
"integrity": "sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==",
|
||||
"version": "3.3.4",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz",
|
||||
"integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==",
|
||||
"dependencies": {
|
||||
"@babel/parser": "^7.16.4",
|
||||
"@vue/compiler-core": "3.2.47",
|
||||
"@vue/compiler-dom": "3.2.47",
|
||||
"@vue/compiler-ssr": "3.2.47",
|
||||
"@vue/reactivity-transform": "3.2.47",
|
||||
"@vue/shared": "3.2.47",
|
||||
"@babel/parser": "^7.20.15",
|
||||
"@vue/compiler-core": "3.3.4",
|
||||
"@vue/compiler-dom": "3.3.4",
|
||||
"@vue/compiler-ssr": "3.3.4",
|
||||
"@vue/reactivity-transform": "3.3.4",
|
||||
"@vue/shared": "3.3.4",
|
||||
"estree-walker": "^2.0.2",
|
||||
"magic-string": "^0.25.7",
|
||||
"magic-string": "^0.30.0",
|
||||
"postcss": "^8.1.10",
|
||||
"source-map": "^0.6.1"
|
||||
"source-map-js": "^1.0.2"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-ssr": {
|
||||
"version": "3.2.47",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.47.tgz",
|
||||
"integrity": "sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==",
|
||||
"version": "3.3.4",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz",
|
||||
"integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==",
|
||||
"dependencies": {
|
||||
"@vue/compiler-dom": "3.2.47",
|
||||
"@vue/shared": "3.2.47"
|
||||
"@vue/compiler-dom": "3.3.4",
|
||||
"@vue/shared": "3.3.4"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/devtools-api": {
|
||||
@ -672,60 +682,60 @@
|
||||
"integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q=="
|
||||
},
|
||||
"node_modules/@vue/reactivity": {
|
||||
"version": "3.2.47",
|
||||
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.47.tgz",
|
||||
"integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==",
|
||||
"version": "3.3.4",
|
||||
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz",
|
||||
"integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==",
|
||||
"dependencies": {
|
||||
"@vue/shared": "3.2.47"
|
||||
"@vue/shared": "3.3.4"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/reactivity-transform": {
|
||||
"version": "3.2.47",
|
||||
"resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.47.tgz",
|
||||
"integrity": "sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==",
|
||||
"version": "3.3.4",
|
||||
"resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz",
|
||||
"integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==",
|
||||
"dependencies": {
|
||||
"@babel/parser": "^7.16.4",
|
||||
"@vue/compiler-core": "3.2.47",
|
||||
"@vue/shared": "3.2.47",
|
||||
"@babel/parser": "^7.20.15",
|
||||
"@vue/compiler-core": "3.3.4",
|
||||
"@vue/shared": "3.3.4",
|
||||
"estree-walker": "^2.0.2",
|
||||
"magic-string": "^0.25.7"
|
||||
"magic-string": "^0.30.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/runtime-core": {
|
||||
"version": "3.2.47",
|
||||
"resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.47.tgz",
|
||||
"integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==",
|
||||
"version": "3.3.4",
|
||||
"resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz",
|
||||
"integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==",
|
||||
"dependencies": {
|
||||
"@vue/reactivity": "3.2.47",
|
||||
"@vue/shared": "3.2.47"
|
||||
"@vue/reactivity": "3.3.4",
|
||||
"@vue/shared": "3.3.4"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/runtime-dom": {
|
||||
"version": "3.2.47",
|
||||
"resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz",
|
||||
"integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==",
|
||||
"version": "3.3.4",
|
||||
"resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz",
|
||||
"integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==",
|
||||
"dependencies": {
|
||||
"@vue/runtime-core": "3.2.47",
|
||||
"@vue/shared": "3.2.47",
|
||||
"csstype": "^2.6.8"
|
||||
"@vue/runtime-core": "3.3.4",
|
||||
"@vue/shared": "3.3.4",
|
||||
"csstype": "^3.1.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/server-renderer": {
|
||||
"version": "3.2.47",
|
||||
"resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.47.tgz",
|
||||
"integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==",
|
||||
"version": "3.3.4",
|
||||
"resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz",
|
||||
"integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==",
|
||||
"dependencies": {
|
||||
"@vue/compiler-ssr": "3.2.47",
|
||||
"@vue/shared": "3.2.47"
|
||||
"@vue/compiler-ssr": "3.3.4",
|
||||
"@vue/shared": "3.3.4"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"vue": "3.2.47"
|
||||
"vue": "3.3.4"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/shared": {
|
||||
"version": "3.2.47",
|
||||
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.47.tgz",
|
||||
"integrity": "sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ=="
|
||||
"version": "3.3.4",
|
||||
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz",
|
||||
"integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ=="
|
||||
},
|
||||
"node_modules/@vue/tsconfig": {
|
||||
"version": "0.1.3",
|
||||
@ -811,6 +821,24 @@
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/bootstrap": {
|
||||
"version": "5.3.1",
|
||||
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.1.tgz",
|
||||
"integrity": "sha512-jzwza3Yagduci2x0rr9MeFSORjcHpt0lRZukZPZQJT1Dth5qzV7XcgGqYzi39KGAVYR8QEDVoO0ubFKOxzMG+g==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/twbs"
|
||||
},
|
||||
{
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/bootstrap"
|
||||
}
|
||||
],
|
||||
"peerDependencies": {
|
||||
"@popperjs/core": "^2.11.8"
|
||||
}
|
||||
},
|
||||
"node_modules/brace-expansion": {
|
||||
"version": "1.1.11",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
||||
@ -941,9 +969,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/csstype": {
|
||||
"version": "2.6.21",
|
||||
"resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz",
|
||||
"integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w=="
|
||||
"version": "3.1.2",
|
||||
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz",
|
||||
"integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
|
||||
},
|
||||
"node_modules/date-fns": {
|
||||
"version": "2.29.3",
|
||||
@ -1734,11 +1762,14 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/magic-string": {
|
||||
"version": "0.25.9",
|
||||
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz",
|
||||
"integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
|
||||
"version": "0.30.2",
|
||||
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.2.tgz",
|
||||
"integrity": "sha512-lNZdu7pewtq/ZvWUp9Wpf/x7WzMTsR26TWV03BRZrXFsv+BI6dy8RAiKgm1uM/kyR0rCfUcqvOlXKG66KhIGug==",
|
||||
"dependencies": {
|
||||
"sourcemap-codec": "^1.4.8"
|
||||
"@jridgewell/sourcemap-codec": "^1.4.15"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/memorystream": {
|
||||
@ -2227,14 +2258,6 @@
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/source-map-js": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
|
||||
@ -2243,12 +2266,6 @@
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/sourcemap-codec": {
|
||||
"version": "1.4.8",
|
||||
"resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
|
||||
"integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
|
||||
"deprecated": "Please use @jridgewell/sourcemap-codec instead"
|
||||
},
|
||||
"node_modules/spdx-correct": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
|
||||
@ -2477,18 +2494,6 @@
|
||||
"balanced-match": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/unplugin-vue-components/node_modules/magic-string": {
|
||||
"version": "0.30.0",
|
||||
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz",
|
||||
"integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@jridgewell/sourcemap-codec": "^1.4.13"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/unplugin-vue-components/node_modules/minimatch": {
|
||||
"version": "7.4.2",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.2.tgz",
|
||||
@ -2594,15 +2599,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/vue": {
|
||||
"version": "3.2.47",
|
||||
"resolved": "https://registry.npmjs.org/vue/-/vue-3.2.47.tgz",
|
||||
"integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==",
|
||||
"version": "3.3.4",
|
||||
"resolved": "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz",
|
||||
"integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==",
|
||||
"dependencies": {
|
||||
"@vue/compiler-dom": "3.2.47",
|
||||
"@vue/compiler-sfc": "3.2.47",
|
||||
"@vue/runtime-dom": "3.2.47",
|
||||
"@vue/server-renderer": "3.2.47",
|
||||
"@vue/shared": "3.2.47"
|
||||
"@vue/compiler-dom": "3.3.4",
|
||||
"@vue/compiler-sfc": "3.3.4",
|
||||
"@vue/runtime-dom": "3.3.4",
|
||||
"@vue/server-renderer": "3.3.4",
|
||||
"@vue/shared": "3.3.4"
|
||||
}
|
||||
},
|
||||
"node_modules/vue-router": {
|
||||
|
||||
@ -10,6 +10,8 @@
|
||||
"type-check": "vue-tsc --noEmit"
|
||||
},
|
||||
"dependencies": {
|
||||
"@popperjs/core": "2.11.8",
|
||||
"bootstrap": "5.3.1",
|
||||
"vue": "^3.2.45",
|
||||
"vue-router": "^4.1.6"
|
||||
},
|
||||
|
||||
66
src/App.vue
66
src/App.vue
@ -10,7 +10,7 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta property="og:title" content="SBa: Season 8" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="https://sombaseball.ddns.net" />
|
||||
<meta property="og:url" content="https://sba.manticorum.dev" />
|
||||
<meta property="og:image" content="https://sombaseball.ddns.net/static/images/sba-network.png" />
|
||||
<meta property="og:description" content="The home of the Strat-o-matic Baseball Association" />
|
||||
<meta name="theme-color" content="#A6CE39">
|
||||
@ -36,67 +36,3 @@ export default {
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
header {
|
||||
line-height: 1.5;
|
||||
max-height: 100vh;
|
||||
}
|
||||
|
||||
.logo {
|
||||
display: block;
|
||||
margin: 0 auto 2rem;
|
||||
}
|
||||
|
||||
nav {
|
||||
width: 100%;
|
||||
font-size: 12px;
|
||||
text-align: center;
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
||||
nav a.router-link-exact-active {
|
||||
color: var(--color-text);
|
||||
}
|
||||
|
||||
nav a.router-link-exact-active:hover {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
nav a {
|
||||
display: inline-block;
|
||||
padding: 0 1rem;
|
||||
border-left: 1px solid var(--color-border);
|
||||
}
|
||||
|
||||
nav a:first-of-type {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
@media (min-width: 1024px) {
|
||||
header {
|
||||
display: flex;
|
||||
place-items: center;
|
||||
padding-right: calc(var(--section-gap) / 2);
|
||||
}
|
||||
|
||||
.logo {
|
||||
margin: 0 2rem 0 0;
|
||||
}
|
||||
|
||||
header .wrapper {
|
||||
display: flex;
|
||||
place-items: flex-start;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
nav {
|
||||
text-align: left;
|
||||
margin-left: -1rem;
|
||||
font-size: 1rem;
|
||||
|
||||
padding: 1rem 0;
|
||||
margin-top: 1rem;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -3,7 +3,6 @@
|
||||
#app {
|
||||
max-width: 1280px;
|
||||
margin: 0 auto;
|
||||
padding: 2rem;
|
||||
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
@ -1,178 +1,26 @@
|
||||
<template>
|
||||
<nav class="navbar navbar-expand-sm navbar-dark bg-primary" style="margin-bottom: 1rem" id="navbar">
|
||||
<RouterLink class="nav-link" to="/">SBa Season {{ seasonNumber }}</RouterLink>
|
||||
<RouterLink class="navbar-brand nav-link" to="/">SBa Season {{ seasonNumber }}</RouterLink>
|
||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#top-navbar-collapse"
|
||||
aria-controls="top-navbar-collapse" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="top-navbar-collapse">
|
||||
<ul class="navbar-nav mr-auto">
|
||||
<li class="nav-item">
|
||||
<!-- TODO -->
|
||||
<RouterLink class="nav-link" to="/schedule">Schedule</RouterLink>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<!-- TODO -->
|
||||
<RouterLink class="nav-link" to="/standings">Standings</RouterLink>
|
||||
</li>
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" href="#" id="statsDropdown" role="button" data-toggle="dropdown"
|
||||
aria-haspopup="true" aria-expanded="false">Stats & Leaders</a>
|
||||
<ul class="dropdown-menu" aria-labelledby="statsDropdown">
|
||||
<li><a class="dropdown-item dropdown-toggle" href="#">Season Leaders</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a class="dropdown-item" href="/stats/leaders/season?stat=batting">Batting Leaders</a></li>
|
||||
<li><a class="dropdown-item" href="/stats/leaders/season?stat=pitching">Pitching Leaders</a></li>
|
||||
<li><a class="dropdown-item" href="/stats/leaders/season?stat=fielding">Fielding Leaders</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="dropdown-item dropdown-toggle" href="#">Team Stats</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a class="dropdown-item" href="/stats/team?stat=batting">Team Batting</a></li>
|
||||
<li><a class="dropdown-item" href="/stats/team?stat=pitching">Team Pitching</a></li>
|
||||
<li><a class="dropdown-item" href="/stats/team?stat=fielding">Team Fielding</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="dropdown-item dropdown-toggle" href="#">Single-Game Records</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a class="dropdown-item" href="/stats/leaders/single-game?stat=batting">Single-Game Batting</a></li>
|
||||
<li><a class="dropdown-item" href="/stats/leaders/single-game?stat=pitching">Single-Game Pitching</a></li>
|
||||
<li><a class="dropdown-item" href="/stats/leaders/single-game?stat=fielding">Single-Game Fielding</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="dropdown-item dropdown-toggle" href="#">Single-Season Leaders</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a class="dropdown-item" href="/stats/leaders/single-season?stat=batting">Single-Season Batting</a>
|
||||
</li>
|
||||
<li><a class="dropdown-item" href="/stats/leaders/single-season?stat=pitching">Single-Season Pitching</a>
|
||||
</li>
|
||||
<li><a class="dropdown-item" href="/stats/leaders/single-season?stat=fielding">Single-Season Fielding</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="dropdown-item dropdown-toggle" href="#">Career Leaders</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a class="dropdown-item" href="/stats/leaders/career?stat=batting">Career Batting</a></li>
|
||||
<li><a class="dropdown-item" href="/stats/leaders/career?stat=pitching">Career Pitching</a></li>
|
||||
<li><a class="dropdown-item" href="/stats/leaders/career?stat=fielding">Career Fielding</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" href="#" id="teamsDropdown" role="button" data-toggle="dropdown"
|
||||
aria-haspopup="true" aria-expanded="false">Teams</a>
|
||||
<ul class="dropdown-menu" aria-labelledby="teamsDropdown">
|
||||
<li><a class="dropdown-item dropdown-toggle" href="#">AL East</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a class="dropdown-item" href="/teams?abbrev=NSH">Gators</a></li>
|
||||
<li><a class="dropdown-item" href="/teams?abbrev=HAM">Honeybees</a></li>
|
||||
<li><a class="dropdown-item" href="/teams?abbrev=TK">Kaiju</a></li>
|
||||
<li><a class="dropdown-item" href="/teams?abbrev=PHP">Phantoms</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="dropdown-item dropdown-toggle" href="#">AL West</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a class="dropdown-item" href="/teams?abbrev=CHC">Cyclones</a></li>
|
||||
<li><a class="dropdown-item" href="/teams?abbrev=PEI">Mussels</a></li>
|
||||
<li><a class="dropdown-item" href="/teams?abbrev=WAI">Whale Sharks</a></li>
|
||||
<li><a class="dropdown-item" href="/teams?abbrev=SHA">Wu Xia</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="dropdown-item dropdown-toggle" href="#">NL East</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a class="dropdown-item" href="/teams?abbrev=DAL">Drillers</a></li>
|
||||
<li><a class="dropdown-item" href="/teams?abbrev=CLS">Macho Men</a></li>
|
||||
<li><a class="dropdown-item" href="/teams?abbrev=KSS">Shoebills</a></li>
|
||||
<li><a class="dropdown-item" href="/teams?abbrev=DEN">Zephyr</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="dropdown-item dropdown-toggle" href="#">NL West</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a class="dropdown-item" href="/teams?abbrev=VA">Angels</a></li>
|
||||
<li><a class="dropdown-item" href="/teams?abbrev=WV">Black Bears</a></li>
|
||||
<li><a class="dropdown-item" href="/teams?abbrev=MKE">Bovines</a></li>
|
||||
<li><a class="dropdown-item" href="/teams?abbrev=BSG">Snow Geese</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" id="transDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
|
||||
aria-expanded="false">Transactions</a>
|
||||
<ul class="dropdown-menu" aria-labelledby="transDropdown">
|
||||
<li><a class="dropdown-item" href="/teams?abbrev=FA">Free Agents</a></li>
|
||||
<li><a class="dropdown-item" href="/transactions">Transactions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" id="historyDropdown" role="button" data-toggle="dropdown"
|
||||
aria-haspopup="true" aria-expanded="false">History</a>
|
||||
<ul class="dropdown-menu" aria-labelledby="historyDropdown">
|
||||
<li><a class="dropdown-item" href="/awards">Awards</a></li>
|
||||
<li><a class="dropdown-item dropdown-toggle" href="#">Managers</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a class="dropdown-item dropdown-toggle" href="#">Active</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a class="dropdown-item" href="/managers?name=Basebally">Basebally</a></li>
|
||||
<li><a class="dropdown-item" href="/managers?name=Brian Taylor">BT</a></li>
|
||||
<li><a class="dropdown-item" href="/managers?name=Cal">Cal</a></li>
|
||||
<li><a class="dropdown-item" href="/managers?name=Cash">Cash</a></li>
|
||||
<li><a class="dropdown-item" href="/managers?name=Derek">Derek</a></li>
|
||||
<li><a class="dropdown-item" href="/managers?name=Foxx">Foxx</a></li>
|
||||
<li><a class="dropdown-item" href="/managers?name=Jack">Jack</a></li>
|
||||
<li><a class="dropdown-item" href="/managers?name=Joe">Joe</a></li>
|
||||
<li><a class="dropdown-item" href="/managers?name=Josef">Josef</a></li>
|
||||
<li><a class="dropdown-item" href="/managers?name=JP">JP</a></li>
|
||||
<li><a class="dropdown-item" href="/managers?name=JZ">JZ</a></li>
|
||||
<li><a class="dropdown-item" href="/managers?name=Kiger">Kiger</a></li>
|
||||
<li><a class="dropdown-item" href="/managers?name=Kilo">Kilo</a></li>
|
||||
<li><a class="dropdown-item" href="/managers?name=Kalin">Kalin</a></li>
|
||||
<li><a class="dropdown-item" href="/managers?name=Lyle">Lyle</a></li>
|
||||
<li><a class="dropdown-item" href="/managers?name=Mason">Mason</a></li>
|
||||
<li><a class="dropdown-item" href="/managers?name=Mcast">Mcast</a></li>
|
||||
<li><a class="dropdown-item" href="/managers?name=Paulie">Paulie</a></li>
|
||||
<li><a class="dropdown-item" href="/managers?name=Plack">Plack</a></li>
|
||||
<li><a class="dropdown-item" href="/managers?name=Reed">Reed</a></li>
|
||||
<li><a class="dropdown-item" href="/managers?name=Riles">Riles</a></li>
|
||||
<li><a class="dropdown-item" href="/managers?name=Ryan">Ryan</a></li>
|
||||
<li><a class="dropdown-item" href="/managers?name=Smitty">Smitty</a></li>
|
||||
<li><a class="dropdown-item" href="/managers?name=Will">Will</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="dropdown-item dropdown-toggle" href="#">Retired</a>
|
||||
<ul class="dropdown-menu">
|
||||
|
||||
<li><a class="dropdown-item" href="/managers?name=Berna">Berna</a></li>
|
||||
<li><a class="dropdown-item" href="/managers?name=Boof">Boof</a></li>
|
||||
<li><a class="dropdown-item" href="/managers?name=Caleb">Caleb</a></li>
|
||||
<li><a class="dropdown-item" href="/managers?name=Diego">Diego</a></li>
|
||||
<li><a class="dropdown-item" href="/managers?name=Jingles">Jingles</a></li>
|
||||
<li><a class="dropdown-item" href="/managers?name=Jojo">Jojo</a></li>
|
||||
<li><a class="dropdown-item" href="/managers?name=Petra">Petra</a></li>
|
||||
<li><a class="dropdown-item" href="/managers?name=Triumph">Triumph</a></li>
|
||||
<li><a class="dropdown-item" href="/managers?name=Val">Val</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="dropdown-item dropdown-toggle" href="#">Season Recaps</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a class="dropdown-item" href="/recaps?season=6">Season 6</a></li>
|
||||
<li><a class="dropdown-item" href="/recaps?season=5">Season 5</a></li>
|
||||
<li><a class="dropdown-item" href="/recaps?season=4">Season 4</a></li>
|
||||
<li><a class="dropdown-item" href="/recaps?season=3">Season 3</a></li>
|
||||
<li><a class="dropdown-item" href="/recaps?season=2">Season 2</a></li>
|
||||
<li><a class="dropdown-item" href="/recaps?season=1">Season 1</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<li class="nav-item">
|
||||
<RouterLink class="nav-link"
|
||||
:to="{ name: 'team', params: { seasonNumber: seasonNumber, teamAbbreviation: 'FA' } }">Free Agents
|
||||
</RouterLink>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/rules">Rules Ref</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/news">News</a>
|
||||
<a class="nav-link" target="_blank" href="https://sbanews.manticorum.com/">News</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a id="login" class="nav-link">Login with Discord</a>
|
||||
@ -190,15 +38,15 @@
|
||||
</datalist>
|
||||
</form>
|
||||
|
||||
<ul class="navbar-nav navbar-right">
|
||||
<!-- <ul class="navbar-nav navbar-right">
|
||||
<li class="nav-item">
|
||||
<div class="custom-control custom-switch">
|
||||
<input type="checkbox" class="custom-control-input" id="darkSwitch" />
|
||||
<label class="custom-control-label" for="darkSwitch">Dark Mode</label>
|
||||
</div>
|
||||
<!-- <script src="/static/dark-mode-switch.js"></script> -->
|
||||
<script src="/static/dark-mode-switch.js"></script>
|
||||
</li>
|
||||
</ul>
|
||||
</ul> -->
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
@ -448,4 +296,14 @@ nav {
|
||||
justify-content: flex-start;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
navbar-brand {
|
||||
display: inline-block;
|
||||
padding-top: 0.32421875rem;
|
||||
padding-bottom: 0.32421875rem;
|
||||
margin-right: 1rem;
|
||||
font-size: 1.171875rem;
|
||||
line-height: inherit;
|
||||
white-space: nowrap;
|
||||
}
|
||||
</style>
|
||||
@ -1,8 +1,12 @@
|
||||
|
||||
import { createApp } from 'vue'
|
||||
import App from './App.vue'
|
||||
import router from './router'
|
||||
|
||||
import './assets/main.css'
|
||||
|
||||
import 'bootstrap/dist/css/bootstrap.min.css'
|
||||
import 'bootstrap'
|
||||
// import './assets/main.css'
|
||||
|
||||
const app = createApp(App)
|
||||
|
||||
|
||||
@ -25,7 +25,17 @@ export const routes: RouteRecordRaw[] = [
|
||||
name: 'player',
|
||||
component: () => import('../views/PlayerView.vue'),
|
||||
props: castPlayersRouteParams
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/standings',
|
||||
name: 'standings',
|
||||
component: () => import('../views/StandingsView.vue')
|
||||
},
|
||||
{
|
||||
path: '/rules',
|
||||
name: 'rules',
|
||||
component: () => import('../views/RulesView.vue')
|
||||
},
|
||||
]
|
||||
|
||||
function castTeamsRouteParams(route: any) {
|
||||
|
||||
@ -2,7 +2,7 @@ import type { Team } from './apiResponseTypes'
|
||||
import { SITE_URL } from './utilities'
|
||||
|
||||
export async function fetchTeam(seasonNumber: number, teamAbbreviation: string): Promise<Team> {
|
||||
const response = await fetch(`${SITE_URL}/api/v3/teams/?season=${seasonNumber}&team_abbrev=${teamAbbreviation}`)
|
||||
const response = await fetch(`${SITE_URL}/api/v3/teams?season=${seasonNumber}&team_abbrev=${teamAbbreviation}`)
|
||||
|
||||
const teamResponse: {
|
||||
count: number
|
||||
|
||||
@ -22,8 +22,6 @@ export async function fetchTransactionsByTeamAndWeek(seasonNumber: number, teamA
|
||||
transactions: Transaction[]
|
||||
} = await response.json()
|
||||
|
||||
console.log('fetchTransactionsByTeam', seasonNumber, teamAbbreviation, transactionsResponse)
|
||||
|
||||
return transactionsResponse.transactions
|
||||
}
|
||||
|
||||
|
||||
@ -6,7 +6,9 @@
|
||||
<h1 id="manager-name">{{ managerName }}</h1>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-12">
|
||||
<div>🚧 Coming Soon 🚧</div>
|
||||
|
||||
<!-- <div class="col-sm-12">
|
||||
<h3 id="manager-record">Career Record: 294-218</h3>
|
||||
</div>
|
||||
|
||||
@ -96,12 +98,7 @@
|
||||
<tbody id="manager-awards"></tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-3">
|
||||
<h3 style="text-align: center" id="manager-bio-header"></h3>
|
||||
<p id="manager-bio"></p>
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
29
src/views/RulesView.vue
Normal file
29
src/views/RulesView.vue
Normal file
@ -0,0 +1,29 @@
|
||||
<template>
|
||||
<div class="rules-view centerDiv">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<h1>Season 7 Rules and Guidelines</h1>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<h2>Season 7 Rules Reference</h2>
|
||||
<a href="https://docs.google.com/document/d/1yGZcHy9zN2MUi4hnce12dAzlFpIApbn7zR24vCkPl1o">View in Google Docs</a>
|
||||
<iframe height="800px" width="100%" style="border: 2px solid darkgray"
|
||||
src="https://docs.google.com/document/d/e/2PACX-1vTJeAZPYPxjon4dqRgwWwsCoUw_xdPZtSBWVzrIQXlZ5N5IJv448QqbmcXCOYUpbbl9JkClOY56lPCj/pub?embedded=true"></iframe>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<h2>Season 7 League Guidelines</h2>
|
||||
<a href="https://docs.google.com/document/d/1gRN2K2rj3kbhY0GQCnEZ0B_IohOl94pCdmmuWLgrcZg">View in Google Docs</a>
|
||||
<iframe height="800px" width="100%" style="border: 2px solid darkgray"
|
||||
src="https://docs.google.com/document/d/e/2PACX-1vT3eUdHtPyOfVSAR3ZeaGX3D-94n1ylwp3TaHyFqoGDeOxDr4sN17OVZDTQ6w1OGlM6EUJLBWqyu57D/pub?embedded=true"></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
export default {
|
||||
name: "RulesView",
|
||||
}
|
||||
</script>
|
||||
102
src/views/StandingsView.vue
Normal file
102
src/views/StandingsView.vue
Normal file
@ -0,0 +1,102 @@
|
||||
<template>
|
||||
<main class="standings-view">
|
||||
<div class="centerDiv">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<h1>Season {{ seasonNumber }} Standings</h1>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<h2 id="week-num">{{ weekNumber ? `Week ${weekNumber}` : '' }}</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Division Standings -->
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<h3>International wOBA Grand Prix</h3>
|
||||
<StandingsTable :teams="iwgpTeams" :is-divisional=true />
|
||||
<h3>Crabbers</h3>
|
||||
<StandingsTable :teams="balTeams" :is-divisional=true />
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<h3>Fun Diff</h3>
|
||||
<StandingsTable :teams="fdTeams" :is-divisional=true />
|
||||
<h3>NL West</h3>
|
||||
<StandingsTable :teams="nlwTeams" :is-divisional=true />
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<h3>Wildcard</h3>
|
||||
<StandingsTable :teams="wildcardTeams" :is-divisional=false />
|
||||
</div>
|
||||
|
||||
<!-- Extended Standings -->
|
||||
<div class="row">
|
||||
Extended Standings
|
||||
</div>
|
||||
<div class="row">
|
||||
🚧 Coming soon 🚧
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import StandingsTable from '@/components/StandingsTable.vue'
|
||||
import { fetchStandings, type TeamStanding } from '@/services/standingsService'
|
||||
import { fetchCurrentLeagueInfo, type LeagueInfo } from '@/services/currentService'
|
||||
import { CURRENT_SEASON } from '@/services/utilities'
|
||||
|
||||
export default {
|
||||
name: "StandingsView",
|
||||
data() {
|
||||
return {
|
||||
seasonNumber: CURRENT_SEASON as number,
|
||||
weekNumber: undefined as number | undefined,
|
||||
teamStandings: [] as TeamStanding[],
|
||||
iwgpTeams: [] as TeamStanding[],
|
||||
nlwTeams: [] as TeamStanding[],
|
||||
wildcardTeams: [] as TeamStanding[],
|
||||
balTeams: [] as TeamStanding[],
|
||||
fdTeams: [] as TeamStanding[]
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.fetchData()
|
||||
},
|
||||
methods: {
|
||||
async fetchData(): Promise<void> {
|
||||
const leagueInfo: LeagueInfo = await fetchCurrentLeagueInfo()
|
||||
this.weekNumber = leagueInfo.week
|
||||
|
||||
this.teamStandings = await fetchStandings(CURRENT_SEASON)
|
||||
// TODO this could be made more robust to division/league structure changes by identifying the unique
|
||||
// league/div abbreviations, then grouping on each into an array of arrays, then in the template above
|
||||
// v-for over the structure to generate a dynamic standings page
|
||||
this.iwgpTeams = this.teamStandings.filter(ts => ts.divisionAbbreviation === 'IWGP')
|
||||
this.nlwTeams = this.teamStandings.filter(ts => ts.divisionAbbreviation === 'NLW')
|
||||
this.balTeams = this.teamStandings.filter(ts => ts.divisionAbbreviation === 'BAL')
|
||||
this.fdTeams = this.teamStandings.filter(ts => ts.divisionAbbreviation === 'FD')
|
||||
this.wildcardTeams = this.teamStandings.filter(ts => ts.isWildcardTeam)
|
||||
},
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.row {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.column {
|
||||
flex-basis: 50%;
|
||||
/* Sets the initial width of each column to 50% */
|
||||
padding: 10px;
|
||||
box-sizing: border-box;
|
||||
/* Includes padding within the width of each column */
|
||||
}
|
||||
</style>
|
||||
@ -71,7 +71,7 @@
|
||||
</div>
|
||||
|
||||
<!-- Right Column -->
|
||||
<div class="col-sm-6">
|
||||
<div v-if="!isFreeAgentTeam" class="col-sm-6">
|
||||
|
||||
<h3 id="minors-header">{{ minorsTeamName }} ({{ swarTotal(playersMinors).toFixed(2) }})</h3>
|
||||
<div class="table-responsive-xl">
|
||||
@ -182,6 +182,9 @@ export default {
|
||||
teamAbbreviation: { type: String, required: true },
|
||||
},
|
||||
computed: {
|
||||
isFreeAgentTeam(): boolean {
|
||||
return this.teamAbbreviation === 'FA'
|
||||
},
|
||||
manager1Name(): string | undefined {
|
||||
return this.team?.manager1?.name
|
||||
},
|
||||
@ -234,15 +237,19 @@ export default {
|
||||
methods: {
|
||||
async fetchData(): Promise<void> {
|
||||
this.team = await fetchTeam(this.seasonNumber, this.teamAbbreviation)
|
||||
if (!this.isFreeAgentTeam) {
|
||||
this.teamMinors = await fetchTeam(this.seasonNumber, `${this.teamAbbreviation}MiL`)
|
||||
this.teamInjuredList = await fetchTeam(this.seasonNumber, `${this.teamAbbreviation}IL`)
|
||||
}
|
||||
|
||||
this.teamStanding = (await fetchStandings(this.seasonNumber)).find(ts => ts.teamName === this.team?.sname)
|
||||
this.weekNumber = (await fetchCurrentLeagueInfo()).week
|
||||
|
||||
this.players = await fetchPlayersByTeam(this.seasonNumber, this.team?.id)
|
||||
this.playersMinors = await fetchPlayersByTeam(this.seasonNumber, this.teamMinors?.id)
|
||||
this.playersInjuredList = await fetchPlayersByTeam(this.seasonNumber, this.teamInjuredList?.id)
|
||||
if (!this.isFreeAgentTeam) {
|
||||
this.playersMinors = await fetchPlayersByTeam(this.seasonNumber, this.teamMinors!.id)
|
||||
this.playersInjuredList = await fetchPlayersByTeam(this.seasonNumber, this.teamInjuredList!.id)
|
||||
}
|
||||
|
||||
this.transactions = (await fetchTransactionsByTeamAndWeek(this.seasonNumber, this.teamAbbreviation, this.transactionsWeekNumber!))
|
||||
},
|
||||
|
||||
Loading…
Reference in New Issue
Block a user