Compare commits
10 Commits
main
...
fix_layout
| Author | SHA1 | Date |
|---|---|---|
|
|
f268da20b1 | |
|
|
1f67089636 | |
|
|
753ba1bfd0 | |
|
|
22774d0b1e | |
|
|
3bc6313e8f | |
|
|
ff4b512cbf | |
|
|
2fdbf860a9 | |
|
|
93bd8267cc | |
|
|
c25b95a80e | |
|
|
b9b6d58396 |
16
TODOS
16
TODOS
|
|
@ -1,16 +0,0 @@
|
||||||
for stase management:
|
|
||||||
1. Klick auf Übung macht neuen Eintrag in der UserState mit dem Excercise Namen + benötigten Feldern in currentEdit.
|
|
||||||
2. Wenn CurrentEdit gesetzt zeig die Set Optionen an.
|
|
||||||
3. Speichere die Sets in User.Chest
|
|
||||||
4. Cleare den CurrentEdit
|
|
||||||
5. Display oben was Eingetragen wurde in User.Chest
|
|
||||||
|
|
||||||
In this rewritten example, we still use reactive to create the reactive inputValues object and ref to create the currentButton reference.
|
|
||||||
|
|
||||||
The setCurrentButton function sets the value of currentButton to the ID of the button that was clicked.
|
|
||||||
|
|
||||||
The saveInputValue function saves the input value for the current button in inputValues[currentButton.value].value.
|
|
||||||
|
|
||||||
The rest of the code remains largely the same, with the buttons array being rendered using v-for, and the input field and value display being updated based on the currently selected button.
|
|
||||||
|
|
||||||
With the Composition API, the reactive state and functions are defined within the setup function, providing a cleaner and more organized way to handle component logic.
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
Your selected colors:
|
|
||||||
|
|
||||||
Primary: #daeafb (RGB: 218, 234, 251)
|
|
||||||
Secondary: #000000 (RGB: 0, 0, 0)
|
|
||||||
Primary Button: #5b9a66 (RGB: 91, 154, 102)
|
|
||||||
Secondary Button: #120320 (RGB: 18, 3, 32)
|
|
||||||
Accent: #b574f1 (RGB: 181, 116, 241)
|
|
||||||
|
|
||||||
Realtime Colors link for selected colors: https://realtimecolors.com/?colors=daeafb-000000-5b9a66-120320-b574f1
|
|
||||||
|
|
||||||
Thanks for using RealtimeColors.com!
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.8 KiB |
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
|
Before Width: | Height: | Size: 273 KiB |
|
|
@ -1 +1 @@
|
||||||
<!doctype html><html lang="en"><head><meta charset="UTF-8"><link rel="icon" href="./logo.ico"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Gym Tracker</title><script type="module" crossorigin src="./assets/index-4ea6f92e.js"></script></head><body><div id="app"></div></body></html>
|
<!doctype html><html lang="en"><head><meta charset="UTF-8"><link rel="icon" href="./favicon.ico"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Hello_World_Vue 01</title><script type="module" crossorigin src="./assets/index-6b91de8d.js"></script></head><body><div id="app"></div></body></html>
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 162 KiB |
|
|
@ -2,9 +2,9 @@
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<link rel="icon" href="/logo.ico">
|
<link rel="icon" href="/favicon.ico">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title>Gym Tracker</title>
|
<title>Hello_World_Vue 01</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="app"></div>
|
<div id="app"></div>
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,6 @@
|
||||||
"name": "gym_tracker",
|
"name": "gym_tracker",
|
||||||
"version": "0.0.0",
|
"version": "0.0.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vueuse/core": "^10.1.2",
|
|
||||||
"pinia": "^2.0.32",
|
"pinia": "^2.0.32",
|
||||||
"uuid": "^9.0.0",
|
"uuid": "^9.0.0",
|
||||||
"vite-plugin-css-injected-by-js": "^3.1.0",
|
"vite-plugin-css-injected-by-js": "^3.1.0",
|
||||||
|
|
@ -17,35 +16,19 @@
|
||||||
"vue-router": "^4.1.6"
|
"vue-router": "^4.1.6"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@rollup/plugin-json": "^6.0.0",
|
|
||||||
"@rushstack/eslint-patch": "^1.2.0",
|
"@rushstack/eslint-patch": "^1.2.0",
|
||||||
"@vitejs/plugin-vue": "^4.0.0",
|
"@vitejs/plugin-vue": "^4.0.0",
|
||||||
"@vue/eslint-config-prettier": "^7.1.0",
|
"@vue/eslint-config-prettier": "^7.1.0",
|
||||||
"@vue/test-utils": "^2.3.0",
|
"@vue/test-utils": "^2.3.0",
|
||||||
"autoprefixer": "^10.4.14",
|
|
||||||
"eslint": "^8.34.0",
|
"eslint": "^8.34.0",
|
||||||
"eslint-plugin-vue": "^9.9.0",
|
"eslint-plugin-vue": "^9.9.0",
|
||||||
"jsdom": "^21.1.0",
|
"jsdom": "^21.1.0",
|
||||||
"postcss": "^8.4.23",
|
|
||||||
"prettier": "^2.8.4",
|
"prettier": "^2.8.4",
|
||||||
"sass": "^1.62.1",
|
"sass": "^1.62.1",
|
||||||
"tailwindcss": "^3.3.2",
|
|
||||||
"vite": "^4.1.4",
|
"vite": "^4.1.4",
|
||||||
"vitest": "^0.29.1"
|
"vitest": "^0.29.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@alloc/quick-lru": {
|
|
||||||
"version": "5.2.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
|
|
||||||
"integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
|
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/sindresorhus"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@babel/parser": {
|
"node_modules/@babel/parser": {
|
||||||
"version": "7.21.4",
|
"version": "7.21.4",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz",
|
||||||
|
|
@ -565,48 +548,6 @@
|
||||||
"node": ">= 8"
|
"node": ">= 8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@rollup/plugin-json": {
|
|
||||||
"version": "6.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.0.0.tgz",
|
|
||||||
"integrity": "sha512-i/4C5Jrdr1XUarRhVu27EEwjt4GObltD7c+MkCIpO2QIbojw8MUs+CCTqOphQi3Qtg1FLmYt+l+6YeoIf51J7w==",
|
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
|
||||||
"@rollup/pluginutils": "^5.0.1"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=14.0.0"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"rollup": "^1.20.0||^2.0.0||^3.0.0"
|
|
||||||
},
|
|
||||||
"peerDependenciesMeta": {
|
|
||||||
"rollup": {
|
|
||||||
"optional": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@rollup/plugin-json/node_modules/@rollup/pluginutils": {
|
|
||||||
"version": "5.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz",
|
|
||||||
"integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==",
|
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
|
||||||
"@types/estree": "^1.0.0",
|
|
||||||
"estree-walker": "^2.0.2",
|
|
||||||
"picomatch": "^2.3.1"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=14.0.0"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"rollup": "^1.20.0||^2.0.0||^3.0.0"
|
|
||||||
},
|
|
||||||
"peerDependenciesMeta": {
|
|
||||||
"rollup": {
|
|
||||||
"optional": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@rollup/pluginutils": {
|
"node_modules/@rollup/pluginutils": {
|
||||||
"version": "4.2.1",
|
"version": "4.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz",
|
||||||
|
|
@ -649,23 +590,12 @@
|
||||||
"@types/chai": "*"
|
"@types/chai": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@types/estree": {
|
|
||||||
"version": "1.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz",
|
|
||||||
"integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"node_modules/@types/node": {
|
"node_modules/@types/node": {
|
||||||
"version": "18.15.11",
|
"version": "18.15.11",
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz",
|
||||||
"integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==",
|
"integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==",
|
||||||
"devOptional": true
|
"devOptional": true
|
||||||
},
|
},
|
||||||
"node_modules/@types/web-bluetooth": {
|
|
||||||
"version": "0.0.17",
|
|
||||||
"resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.17.tgz",
|
|
||||||
"integrity": "sha512-4p9vcSmxAayx72yn70joFoL44c9MO/0+iVEBIQXe3v2h2SiAsEIo/G5v6ObFWvNKRFjbrVadNf9LqEEZeQPzdA=="
|
|
||||||
},
|
|
||||||
"node_modules/@vitejs/plugin-vue": {
|
"node_modules/@vitejs/plugin-vue": {
|
||||||
"version": "4.1.0",
|
"version": "4.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.1.0.tgz",
|
||||||
|
|
@ -888,89 +818,6 @@
|
||||||
"vue": "^3.0.1"
|
"vue": "^3.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vueuse/core": {
|
|
||||||
"version": "10.1.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.1.2.tgz",
|
|
||||||
"integrity": "sha512-roNn8WuerI56A5uiTyF/TEYX0Y+VKlhZAF94unUfdhbDUI+NfwQMn4FUnUscIRUhv3344qvAghopU4bzLPNFlA==",
|
|
||||||
"dependencies": {
|
|
||||||
"@types/web-bluetooth": "^0.0.17",
|
|
||||||
"@vueuse/metadata": "10.1.2",
|
|
||||||
"@vueuse/shared": "10.1.2",
|
|
||||||
"vue-demi": ">=0.14.0"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/antfu"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@vueuse/core/node_modules/vue-demi": {
|
|
||||||
"version": "0.14.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.0.tgz",
|
|
||||||
"integrity": "sha512-gt58r2ogsNQeVoQ3EhoUAvUsH9xviydl0dWJj7dabBC/2L4uBId7ujtCwDRD0JhkGsV1i0CtfLAeyYKBht9oWg==",
|
|
||||||
"hasInstallScript": true,
|
|
||||||
"bin": {
|
|
||||||
"vue-demi-fix": "bin/vue-demi-fix.js",
|
|
||||||
"vue-demi-switch": "bin/vue-demi-switch.js"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=12"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/antfu"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"@vue/composition-api": "^1.0.0-rc.1",
|
|
||||||
"vue": "^3.0.0-0 || ^2.6.0"
|
|
||||||
},
|
|
||||||
"peerDependenciesMeta": {
|
|
||||||
"@vue/composition-api": {
|
|
||||||
"optional": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@vueuse/metadata": {
|
|
||||||
"version": "10.1.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.1.2.tgz",
|
|
||||||
"integrity": "sha512-3mc5BqN9aU2SqBeBuWE7ne4OtXHoHKggNgxZR2K+zIW4YLsy6xoZ4/9vErQs6tvoKDX6QAqm3lvsrv0mczAwIQ==",
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/antfu"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@vueuse/shared": {
|
|
||||||
"version": "10.1.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.1.2.tgz",
|
|
||||||
"integrity": "sha512-1uoUTPBlgyscK9v6ScGeVYDDzlPSFXBlxuK7SfrDGyUTBiznb3mNceqhwvZHjtDRELZEN79V5uWPTF1VDV8svA==",
|
|
||||||
"dependencies": {
|
|
||||||
"vue-demi": ">=0.14.0"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/antfu"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@vueuse/shared/node_modules/vue-demi": {
|
|
||||||
"version": "0.14.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.0.tgz",
|
|
||||||
"integrity": "sha512-gt58r2ogsNQeVoQ3EhoUAvUsH9xviydl0dWJj7dabBC/2L4uBId7ujtCwDRD0JhkGsV1i0CtfLAeyYKBht9oWg==",
|
|
||||||
"hasInstallScript": true,
|
|
||||||
"bin": {
|
|
||||||
"vue-demi-fix": "bin/vue-demi-fix.js",
|
|
||||||
"vue-demi-switch": "bin/vue-demi-switch.js"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=12"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/antfu"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"@vue/composition-api": "^1.0.0-rc.1",
|
|
||||||
"vue": "^3.0.0-0 || ^2.6.0"
|
|
||||||
},
|
|
||||||
"peerDependenciesMeta": {
|
|
||||||
"@vue/composition-api": {
|
|
||||||
"optional": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/abab": {
|
"node_modules/abab": {
|
||||||
"version": "2.0.6",
|
"version": "2.0.6",
|
||||||
"resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
|
"resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
|
||||||
|
|
@ -1073,12 +920,6 @@
|
||||||
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
|
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/any-promise": {
|
|
||||||
"version": "1.3.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
|
|
||||||
"integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"node_modules/anymatch": {
|
"node_modules/anymatch": {
|
||||||
"version": "3.1.3",
|
"version": "3.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
|
||||||
|
|
@ -1092,12 +933,6 @@
|
||||||
"node": ">= 8"
|
"node": ">= 8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/arg": {
|
|
||||||
"version": "5.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
|
|
||||||
"integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"node_modules/argparse": {
|
"node_modules/argparse": {
|
||||||
"version": "2.0.1",
|
"version": "2.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
|
||||||
|
|
@ -1124,39 +959,6 @@
|
||||||
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
|
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/autoprefixer": {
|
|
||||||
"version": "10.4.14",
|
|
||||||
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz",
|
|
||||||
"integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==",
|
|
||||||
"dev": true,
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"type": "opencollective",
|
|
||||||
"url": "https://opencollective.com/postcss/"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "tidelift",
|
|
||||||
"url": "https://tidelift.com/funding/github/npm/autoprefixer"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dependencies": {
|
|
||||||
"browserslist": "^4.21.5",
|
|
||||||
"caniuse-lite": "^1.0.30001464",
|
|
||||||
"fraction.js": "^4.2.0",
|
|
||||||
"normalize-range": "^0.1.2",
|
|
||||||
"picocolors": "^1.0.0",
|
|
||||||
"postcss-value-parser": "^4.2.0"
|
|
||||||
},
|
|
||||||
"bin": {
|
|
||||||
"autoprefixer": "bin/autoprefixer"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": "^10 || ^12 || >=14"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"postcss": "^8.1.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/balanced-match": {
|
"node_modules/balanced-match": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
||||||
|
|
@ -1196,34 +998,6 @@
|
||||||
"node": ">=8"
|
"node": ">=8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/browserslist": {
|
|
||||||
"version": "4.21.5",
|
|
||||||
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz",
|
|
||||||
"integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==",
|
|
||||||
"dev": true,
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"type": "opencollective",
|
|
||||||
"url": "https://opencollective.com/browserslist"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "tidelift",
|
|
||||||
"url": "https://tidelift.com/funding/github/npm/browserslist"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dependencies": {
|
|
||||||
"caniuse-lite": "^1.0.30001449",
|
|
||||||
"electron-to-chromium": "^1.4.284",
|
|
||||||
"node-releases": "^2.0.8",
|
|
||||||
"update-browserslist-db": "^1.0.10"
|
|
||||||
},
|
|
||||||
"bin": {
|
|
||||||
"browserslist": "cli.js"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/buffer-from": {
|
"node_modules/buffer-from": {
|
||||||
"version": "1.1.2",
|
"version": "1.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
|
||||||
|
|
@ -1256,35 +1030,6 @@
|
||||||
"tslib": "^2.0.3"
|
"tslib": "^2.0.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/camelcase-css": {
|
|
||||||
"version": "2.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
|
|
||||||
"integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
|
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 6"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/caniuse-lite": {
|
|
||||||
"version": "1.0.30001482",
|
|
||||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001482.tgz",
|
|
||||||
"integrity": "sha512-F1ZInsg53cegyjroxLNW9DmrEQ1SuGRTO1QlpA0o2/6OpQ0gFeDRoq1yFmnr8Sakn9qwwt9DmbxHB6w167OSuQ==",
|
|
||||||
"dev": true,
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"type": "opencollective",
|
|
||||||
"url": "https://opencollective.com/browserslist"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "tidelift",
|
|
||||||
"url": "https://tidelift.com/funding/github/npm/caniuse-lite"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "github",
|
|
||||||
"url": "https://github.com/sponsors/ai"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"node_modules/chai": {
|
"node_modules/chai": {
|
||||||
"version": "4.3.7",
|
"version": "4.3.7",
|
||||||
"resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz",
|
"resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz",
|
||||||
|
|
@ -1592,12 +1337,6 @@
|
||||||
"node": ">=0.4.0"
|
"node": ">=0.4.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/didyoumean": {
|
|
||||||
"version": "1.2.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
|
|
||||||
"integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"node_modules/diff": {
|
"node_modules/diff": {
|
||||||
"version": "5.1.0",
|
"version": "5.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz",
|
||||||
|
|
@ -1607,12 +1346,6 @@
|
||||||
"node": ">=0.3.1"
|
"node": ">=0.3.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/dlv": {
|
|
||||||
"version": "1.1.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
|
|
||||||
"integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"node_modules/doctrine": {
|
"node_modules/doctrine": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
|
||||||
|
|
@ -1765,12 +1498,6 @@
|
||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/electron-to-chromium": {
|
|
||||||
"version": "1.4.385",
|
|
||||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.385.tgz",
|
|
||||||
"integrity": "sha512-L9zlje9bIw0h+CwPQumiuVlfMcV4boxRjFIWDcLfFqTZNbkwOExBzfmswytHawObQX4OUhtNv8gIiB21kOurIg==",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"node_modules/emoji-regex": {
|
"node_modules/emoji-regex": {
|
||||||
"version": "9.2.2",
|
"version": "9.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
|
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
|
||||||
|
|
@ -1825,15 +1552,6 @@
|
||||||
"@esbuild/win32-x64": "0.17.17"
|
"@esbuild/win32-x64": "0.17.17"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/escalade": {
|
|
||||||
"version": "3.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
|
|
||||||
"integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
|
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">=6"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/escape-string-regexp": {
|
"node_modules/escape-string-regexp": {
|
||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
|
||||||
|
|
@ -2292,19 +2010,6 @@
|
||||||
"node": ">= 6"
|
"node": ">= 6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/fraction.js": {
|
|
||||||
"version": "4.2.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz",
|
|
||||||
"integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==",
|
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
|
||||||
"node": "*"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"type": "patreon",
|
|
||||||
"url": "https://www.patreon.com/infusion"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/fs-extra": {
|
"node_modules/fs-extra": {
|
||||||
"version": "10.1.0",
|
"version": "10.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
|
||||||
|
|
@ -2705,15 +2410,6 @@
|
||||||
"node": ">=10"
|
"node": ">=10"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/jiti": {
|
|
||||||
"version": "1.18.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/jiti/-/jiti-1.18.2.tgz",
|
|
||||||
"integrity": "sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==",
|
|
||||||
"dev": true,
|
|
||||||
"bin": {
|
|
||||||
"jiti": "bin/jiti.js"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/js-beautify": {
|
"node_modules/js-beautify": {
|
||||||
"version": "1.14.6",
|
"version": "1.14.6",
|
||||||
"resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.14.6.tgz",
|
"resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.14.6.tgz",
|
||||||
|
|
@ -2851,21 +2547,6 @@
|
||||||
"node": ">= 0.8.0"
|
"node": ">= 0.8.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/lilconfig": {
|
|
||||||
"version": "2.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
|
|
||||||
"integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
|
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/lines-and-columns": {
|
|
||||||
"version": "1.2.4",
|
|
||||||
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
|
|
||||||
"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"node_modules/local-pkg": {
|
"node_modules/local-pkg": {
|
||||||
"version": "0.4.3",
|
"version": "0.4.3",
|
||||||
"resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz",
|
"resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz",
|
||||||
|
|
@ -3010,17 +2691,6 @@
|
||||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/mz": {
|
|
||||||
"version": "2.7.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
|
|
||||||
"integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
|
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
|
||||||
"any-promise": "^1.0.0",
|
|
||||||
"object-assign": "^4.0.1",
|
|
||||||
"thenify-all": "^1.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/nanoid": {
|
"node_modules/nanoid": {
|
||||||
"version": "3.3.6",
|
"version": "3.3.6",
|
||||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
|
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
|
||||||
|
|
@ -3062,12 +2732,6 @@
|
||||||
"he": "1.2.0"
|
"he": "1.2.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/node-releases": {
|
|
||||||
"version": "2.0.10",
|
|
||||||
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz",
|
|
||||||
"integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"node_modules/nopt": {
|
"node_modules/nopt": {
|
||||||
"version": "6.0.0",
|
"version": "6.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz",
|
||||||
|
|
@ -3092,15 +2756,6 @@
|
||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/normalize-range": {
|
|
||||||
"version": "0.1.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
|
|
||||||
"integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
|
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">=0.10.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/nth-check": {
|
"node_modules/nth-check": {
|
||||||
"version": "2.1.1",
|
"version": "2.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
|
||||||
|
|
@ -3118,24 +2773,6 @@
|
||||||
"integrity": "sha512-NHj4rzRo0tQdijE9ZqAx6kYDcoRwYwSYzCA8MY3JzfxlrvEU0jhnhJT9BhqhJs7I/dKcrDm6TyulaRqZPIhN5g==",
|
"integrity": "sha512-NHj4rzRo0tQdijE9ZqAx6kYDcoRwYwSYzCA8MY3JzfxlrvEU0jhnhJT9BhqhJs7I/dKcrDm6TyulaRqZPIhN5g==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/object-assign": {
|
|
||||||
"version": "4.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
|
|
||||||
"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
|
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">=0.10.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/object-hash": {
|
|
||||||
"version": "3.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
|
|
||||||
"integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
|
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 6"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/once": {
|
"node_modules/once": {
|
||||||
"version": "1.4.0",
|
"version": "1.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
||||||
|
|
@ -3297,15 +2934,6 @@
|
||||||
"url": "https://github.com/sponsors/jonschlinkert"
|
"url": "https://github.com/sponsors/jonschlinkert"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/pify": {
|
|
||||||
"version": "2.3.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
|
|
||||||
"integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
|
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">=0.10.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/pinia": {
|
"node_modules/pinia": {
|
||||||
"version": "2.0.34",
|
"version": "2.0.34",
|
||||||
"resolved": "https://registry.npmjs.org/pinia/-/pinia-2.0.34.tgz",
|
"resolved": "https://registry.npmjs.org/pinia/-/pinia-2.0.34.tgz",
|
||||||
|
|
@ -3356,15 +2984,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/pirates": {
|
|
||||||
"version": "4.0.5",
|
|
||||||
"resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz",
|
|
||||||
"integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==",
|
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 6"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/pkg-types": {
|
"node_modules/pkg-types": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.2.tgz",
|
||||||
|
|
@ -3377,9 +2996,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/postcss": {
|
"node_modules/postcss": {
|
||||||
"version": "8.4.23",
|
"version": "8.4.22",
|
||||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz",
|
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.22.tgz",
|
||||||
"integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==",
|
"integrity": "sha512-XseknLAfRHzVWjCEtdviapiBtfLdgyzExD50Rg2ePaucEesyh8Wv4VPdW0nbyDa1ydbrAxV19jvMT4+LFmcNUA==",
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "opencollective",
|
"type": "opencollective",
|
||||||
|
|
@ -3403,90 +3022,6 @@
|
||||||
"node": "^10 || ^12 || >=14"
|
"node": "^10 || ^12 || >=14"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/postcss-import": {
|
|
||||||
"version": "15.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
|
|
||||||
"integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
|
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
|
||||||
"postcss-value-parser": "^4.0.0",
|
|
||||||
"read-cache": "^1.0.0",
|
|
||||||
"resolve": "^1.1.7"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=14.0.0"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"postcss": "^8.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/postcss-js": {
|
|
||||||
"version": "4.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz",
|
|
||||||
"integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==",
|
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
|
||||||
"camelcase-css": "^2.0.1"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": "^12 || ^14 || >= 16"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"type": "opencollective",
|
|
||||||
"url": "https://opencollective.com/postcss/"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"postcss": "^8.4.21"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/postcss-load-config": {
|
|
||||||
"version": "4.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz",
|
|
||||||
"integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==",
|
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
|
||||||
"lilconfig": "^2.0.5",
|
|
||||||
"yaml": "^2.1.1"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 14"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"type": "opencollective",
|
|
||||||
"url": "https://opencollective.com/postcss/"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"postcss": ">=8.0.9",
|
|
||||||
"ts-node": ">=9.0.0"
|
|
||||||
},
|
|
||||||
"peerDependenciesMeta": {
|
|
||||||
"postcss": {
|
|
||||||
"optional": true
|
|
||||||
},
|
|
||||||
"ts-node": {
|
|
||||||
"optional": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/postcss-nested": {
|
|
||||||
"version": "6.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz",
|
|
||||||
"integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==",
|
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
|
||||||
"postcss-selector-parser": "^6.0.11"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=12.0"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"type": "opencollective",
|
|
||||||
"url": "https://opencollective.com/postcss/"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"postcss": "^8.2.14"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/postcss-selector-parser": {
|
"node_modules/postcss-selector-parser": {
|
||||||
"version": "6.0.11",
|
"version": "6.0.11",
|
||||||
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz",
|
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz",
|
||||||
|
|
@ -3500,12 +3035,6 @@
|
||||||
"node": ">=4"
|
"node": ">=4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/postcss-value-parser": {
|
|
||||||
"version": "4.2.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
|
|
||||||
"integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"node_modules/prelude-ls": {
|
"node_modules/prelude-ls": {
|
||||||
"version": "1.2.1",
|
"version": "1.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
|
||||||
|
|
@ -3626,15 +3155,6 @@
|
||||||
"integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==",
|
"integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/read-cache": {
|
|
||||||
"version": "1.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
|
|
||||||
"integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
|
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
|
||||||
"pify": "^2.3.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/readdirp": {
|
"node_modules/readdirp": {
|
||||||
"version": "3.6.0",
|
"version": "3.6.0",
|
||||||
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
|
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
|
||||||
|
|
@ -4025,57 +3545,6 @@
|
||||||
"url": "https://github.com/sponsors/antfu"
|
"url": "https://github.com/sponsors/antfu"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/sucrase": {
|
|
||||||
"version": "3.32.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.32.0.tgz",
|
|
||||||
"integrity": "sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==",
|
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
|
||||||
"@jridgewell/gen-mapping": "^0.3.2",
|
|
||||||
"commander": "^4.0.0",
|
|
||||||
"glob": "7.1.6",
|
|
||||||
"lines-and-columns": "^1.1.6",
|
|
||||||
"mz": "^2.7.0",
|
|
||||||
"pirates": "^4.0.1",
|
|
||||||
"ts-interface-checker": "^0.1.9"
|
|
||||||
},
|
|
||||||
"bin": {
|
|
||||||
"sucrase": "bin/sucrase",
|
|
||||||
"sucrase-node": "bin/sucrase-node"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=8"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/sucrase/node_modules/commander": {
|
|
||||||
"version": "4.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
|
|
||||||
"integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
|
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 6"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/sucrase/node_modules/glob": {
|
|
||||||
"version": "7.1.6",
|
|
||||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
|
|
||||||
"integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
|
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
|
||||||
"fs.realpath": "^1.0.0",
|
|
||||||
"inflight": "^1.0.4",
|
|
||||||
"inherits": "2",
|
|
||||||
"minimatch": "^3.0.4",
|
|
||||||
"once": "^1.3.0",
|
|
||||||
"path-is-absolute": "^1.0.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": "*"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/isaacs"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/supports-color": {
|
"node_modules/supports-color": {
|
||||||
"version": "7.2.0",
|
"version": "7.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
|
||||||
|
|
@ -4104,44 +3573,6 @@
|
||||||
"integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
|
"integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/tailwindcss": {
|
|
||||||
"version": "3.3.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.2.tgz",
|
|
||||||
"integrity": "sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w==",
|
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
|
||||||
"@alloc/quick-lru": "^5.2.0",
|
|
||||||
"arg": "^5.0.2",
|
|
||||||
"chokidar": "^3.5.3",
|
|
||||||
"didyoumean": "^1.2.2",
|
|
||||||
"dlv": "^1.1.3",
|
|
||||||
"fast-glob": "^3.2.12",
|
|
||||||
"glob-parent": "^6.0.2",
|
|
||||||
"is-glob": "^4.0.3",
|
|
||||||
"jiti": "^1.18.2",
|
|
||||||
"lilconfig": "^2.1.0",
|
|
||||||
"micromatch": "^4.0.5",
|
|
||||||
"normalize-path": "^3.0.0",
|
|
||||||
"object-hash": "^3.0.0",
|
|
||||||
"picocolors": "^1.0.0",
|
|
||||||
"postcss": "^8.4.23",
|
|
||||||
"postcss-import": "^15.1.0",
|
|
||||||
"postcss-js": "^4.0.1",
|
|
||||||
"postcss-load-config": "^4.0.1",
|
|
||||||
"postcss-nested": "^6.0.1",
|
|
||||||
"postcss-selector-parser": "^6.0.11",
|
|
||||||
"postcss-value-parser": "^4.2.0",
|
|
||||||
"resolve": "^1.22.2",
|
|
||||||
"sucrase": "^3.32.0"
|
|
||||||
},
|
|
||||||
"bin": {
|
|
||||||
"tailwind": "lib/cli.js",
|
|
||||||
"tailwindcss": "lib/cli.js"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=14.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/terser": {
|
"node_modules/terser": {
|
||||||
"version": "5.17.1",
|
"version": "5.17.1",
|
||||||
"resolved": "https://registry.npmjs.org/terser/-/terser-5.17.1.tgz",
|
"resolved": "https://registry.npmjs.org/terser/-/terser-5.17.1.tgz",
|
||||||
|
|
@ -4165,27 +3596,6 @@
|
||||||
"integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
|
"integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/thenify": {
|
|
||||||
"version": "3.3.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
|
|
||||||
"integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
|
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
|
||||||
"any-promise": "^1.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/thenify-all": {
|
|
||||||
"version": "1.6.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
|
|
||||||
"integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
|
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
|
||||||
"thenify": ">= 3.1.0 < 4"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=0.8"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/tinybench": {
|
"node_modules/tinybench": {
|
||||||
"version": "2.4.0",
|
"version": "2.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.4.0.tgz",
|
||||||
|
|
@ -4248,12 +3658,6 @@
|
||||||
"node": ">=14"
|
"node": ">=14"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/ts-interface-checker": {
|
|
||||||
"version": "0.1.13",
|
|
||||||
"resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
|
|
||||||
"integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"node_modules/tslib": {
|
"node_modules/tslib": {
|
||||||
"version": "2.5.0",
|
"version": "2.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
|
||||||
|
|
@ -4307,36 +3711,6 @@
|
||||||
"node": ">= 4.0.0"
|
"node": ">= 4.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/update-browserslist-db": {
|
|
||||||
"version": "1.0.11",
|
|
||||||
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz",
|
|
||||||
"integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==",
|
|
||||||
"dev": true,
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"type": "opencollective",
|
|
||||||
"url": "https://opencollective.com/browserslist"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "tidelift",
|
|
||||||
"url": "https://tidelift.com/funding/github/npm/browserslist"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "github",
|
|
||||||
"url": "https://github.com/sponsors/ai"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dependencies": {
|
|
||||||
"escalade": "^3.1.1",
|
|
||||||
"picocolors": "^1.0.0"
|
|
||||||
},
|
|
||||||
"bin": {
|
|
||||||
"update-browserslist-db": "cli.js"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"browserslist": ">= 4.21.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/uri-js": {
|
"node_modules/uri-js": {
|
||||||
"version": "4.4.1",
|
"version": "4.4.1",
|
||||||
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
|
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
|
||||||
|
|
@ -4746,15 +4120,6 @@
|
||||||
"integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==",
|
"integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/yaml": {
|
|
||||||
"version": "2.2.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.2.tgz",
|
|
||||||
"integrity": "sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==",
|
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 14"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/yocto-queue": {
|
"node_modules/yocto-queue": {
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,6 @@
|
||||||
"format": "prettier --write src/"
|
"format": "prettier --write src/"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vueuse/core": "^10.1.2",
|
|
||||||
"pinia": "^2.0.32",
|
"pinia": "^2.0.32",
|
||||||
"uuid": "^9.0.0",
|
"uuid": "^9.0.0",
|
||||||
"vite-plugin-css-injected-by-js": "^3.1.0",
|
"vite-plugin-css-injected-by-js": "^3.1.0",
|
||||||
|
|
@ -22,19 +21,15 @@
|
||||||
"vue-router": "^4.1.6"
|
"vue-router": "^4.1.6"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@rollup/plugin-json": "^6.0.0",
|
|
||||||
"@rushstack/eslint-patch": "^1.2.0",
|
"@rushstack/eslint-patch": "^1.2.0",
|
||||||
"@vitejs/plugin-vue": "^4.0.0",
|
"@vitejs/plugin-vue": "^4.0.0",
|
||||||
"@vue/eslint-config-prettier": "^7.1.0",
|
"@vue/eslint-config-prettier": "^7.1.0",
|
||||||
"@vue/test-utils": "^2.3.0",
|
"@vue/test-utils": "^2.3.0",
|
||||||
"autoprefixer": "^10.4.14",
|
|
||||||
"eslint": "^8.34.0",
|
"eslint": "^8.34.0",
|
||||||
"eslint-plugin-vue": "^9.9.0",
|
"eslint-plugin-vue": "^9.9.0",
|
||||||
"jsdom": "^21.1.0",
|
"jsdom": "^21.1.0",
|
||||||
"postcss": "^8.4.23",
|
|
||||||
"prettier": "^2.8.4",
|
"prettier": "^2.8.4",
|
||||||
"sass": "^1.62.1",
|
"sass": "^1.62.1",
|
||||||
"tailwindcss": "^3.3.2",
|
|
||||||
"vite": "^4.1.4",
|
"vite": "^4.1.4",
|
||||||
"vitest": "^0.29.1"
|
"vitest": "^0.29.1"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
export default {
|
|
||||||
plugins: {
|
|
||||||
tailwindcss: {},
|
|
||||||
autoprefixer: {},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
BIN
public/logo.ico
BIN
public/logo.ico
Binary file not shown.
|
Before Width: | Height: | Size: 162 KiB |
20
src/App.vue
20
src/App.vue
|
|
@ -4,20 +4,26 @@ import { NavigationModel } from "./components/Index.js";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div class="app-container bg-background">
|
<div class="app-container">
|
||||||
<NavigationModel />
|
<NavigationModel />
|
||||||
<div class="container px-3 mx-auto">
|
<!-- <Nav /> -->
|
||||||
<router-view class="mt-4" />
|
<div class="container">
|
||||||
|
<router-view />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
@import '/css/head.scss';
|
.app-container
|
||||||
.app-container
|
{
|
||||||
{
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
|
||||||
|
|
||||||
|
}
|
||||||
|
.container{
|
||||||
|
max-width: 1024px;
|
||||||
|
margin: 1rem auto;
|
||||||
|
padding: 0.5rem 1rem;
|
||||||
|
background: grey;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
export {default as gymTrackerLogo} from './gymTrackerLogo.png';
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 273 KiB |
|
|
@ -0,0 +1 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 261.76 226.69"><path d="M161.096.001l-30.225 52.351L100.647.001H-.005l130.877 226.688L261.749.001z" fill="#41b883"/><path d="M161.096.001l-30.225 52.351L100.647.001H52.346l78.526 136.01L209.398.001z" fill="#34495e"/></svg>
|
||||||
|
After Width: | Height: | Size: 276 B |
|
|
@ -1,763 +0,0 @@
|
||||||
{ "muscle": [
|
|
||||||
{
|
|
||||||
"name": "Legs",
|
|
||||||
"exercises":
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"name": "Barbell Back Squat"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Barbell Front Squat"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Barbell Split squat"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dumbbell Split Squat"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Barbell Lunge"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Barbell Bulgarien split Squat"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Barbell Reverse Lunge"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dumbbell Bulgarien split squat"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dumbbell Lunges"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dumbbell Walking Lunges"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dumbbell Reverse Lunge"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dumbbell Goblet Squat"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dumbbell Step Ups"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Hack Squat"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Leg Press"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Leg Extension"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Leg Curl"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Barbell Romanin Deadlift"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Barbell Stiff leg Deadlift"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dumbell Romanin Deadlift"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dumbell Stiff leg Deadlift"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Decline Dumbbell leg curl"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Leg Ham Raises"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Seated Leg Curl"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Seated Single Leg Curl"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Laying Leg Curl"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Laying single leg leg Curl"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Cable Laying Leg Curl"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Cable Single Leg Romanian Deadlift"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Back Extension (Ham Focused)"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Barbell Hip Thrusts"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dumbbell Hip Thusts"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dumbbell leaning Forward Step up"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dumbbell Single leg Hip thusts"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Cable Standing Cuff Kickback"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Cable Pullthroughs"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Cable Standing Side raises"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Hip Abduction"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Kettkebelt Swings"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Glue hamm Raise"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Back Extension (Glute Focused)"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Single leg Hip Thusts"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Plate Hip Thrusts"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Single leg Plate Hip thusts"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Hip Adduction"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Hip Dumbbell Gobleg Adductor Lunges"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Calf Raise"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Single Leg Standing Dumbbell Calf Raises"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Standing Dumbbell Calf Raises"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Seated Dunbbell calrf Extensions"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Seated Calf Raises"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Staning Calf Raises"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Donkey Calf Raises"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Leg Press Calf Raises"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Smith Maschine Donkey Calf Raises"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Back",
|
|
||||||
"exercises":[
|
|
||||||
{
|
|
||||||
"name":"Bentover Barbell Row"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Standing T Bar Row"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Chest Supported Barbell Row"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Landmine 1 Arm Row"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dumbbell Tripod Row"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dumbbell Pullover (Lats)"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Chest Supported Dumbbell row"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Lat Focused Dumbbell Row"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Rocking Pulldown"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Close Grip Undergand Pulldown"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Lap Pulldown"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"One Arm High Calbe Row"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Seated One Arm High Cable row"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Incline Cable Single Arm Stretch"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Cable Straight Arm Pushdown Bar"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Cable Straight Arm Pusdown Rope"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Single Arm Straight Arm Pushdown"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Seated Lat Focused Row"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Seated Lat Focused One Arm Row"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Kneeling one Arm Lat Focused Row"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Kneeling Lat Pullin"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Seated Chest supported lat row"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Pull ups"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Asissted Pull ups"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Lat Pulldown"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Chin ups"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Asissted Pull ups"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Austrailan Pull ups"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Bentover Barbell row"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Chest Supported Barbell Row"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Medow Row"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Chest Supported Dumbbell Row"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dumbbell One Arm Row"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Bentover Dumbbell Row"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dumbbell Helms Row"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Seated Row (Wide Grip)"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Seated Row"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Seated chest supported Row"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Deadlift"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Sumo Deadlift"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dead Row"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Barbell Good Morning"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dumbell Good Morning"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dumbell Superman"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Back Extensions"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Superman"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Good Morning"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Rack Pull"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Barbell Shrugs"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Trap bar Shrugs"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Trap Bar Carry"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dumbbell Shrugs"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dumbbell Carry"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dumbell Seated Shrug"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Cable Shrugs"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Plate Shurugs"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Plate Carry"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Cable Wrap Around Row"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Cable Rope Pull"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Prone Reverse Fly"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Cable FacePull Press"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Prone Y Rise"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Prone Press"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Plate Raise"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Chest",
|
|
||||||
"exercises":[
|
|
||||||
{
|
|
||||||
"name":"Incline Barbell Bench Press"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Kneeling Landmine Press"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Flat Underhand Barbell Bench Press"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Landmine Rainbow"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Paused Incline Barbell Bench Press"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Incline Dumbbell Bench Press"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dumbbell Pullover (Chest)"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"DB UCV Raise"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Incline Dumbbell Squeeze Press"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Flat Underhand Dumbbell Bench Press"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Paused Incline Dumbbell Bench Press"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Sranding Low to High Cable Fly"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Seated Low to High Cable Fly"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Incline Cable Press"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Standing Low to High Crossover"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Seated Low to High Crossover"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dual Cable UCV Raise"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Decline Pushup"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Slight Decline Bench Pess"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Barbell Bench Press"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Close Grip Barbell Bench Press"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Slight Delcline Dumbbell Press"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dumbbell Bench Press"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Paused Dumbbell Bench Press"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dumbbel Floor Fly"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Seated Cable Fly"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Seated Cable Press"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Seated Cable Crossover"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Standing Calbe Press"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Standing Cable Crossover"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Staning Cable Fly"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Standing Calbe Press"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Standing Cable Crossover"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Pushup"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Push away Pushup"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Plate loaded Chest press"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Assisted Chest press"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Pec Dec (Chest)"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Assisted Dip"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dip"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Decline Barbell Bench Press"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Barbell Dips"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Decline Dumbbell Bench Press"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Decline Dumbbell Flys Supernated"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Decline Dumbbell Pullover"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"High to low Cable flys"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"High to low Cable Press"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"High to low Crossover"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Standing Cable LC Press"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Kneeling X Press"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Decline Cable Dip"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Jack Hammer Pushdown"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Shoulders",
|
|
||||||
"exercises":[
|
|
||||||
{
|
|
||||||
"name":"Barbell Overhead Press"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Seated Barbell Overhead Press"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Barbell Front raises"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Kneeling Landmine Press"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Smithmashine Shoulder Press"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dumbell Overhead Press"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Seated Dumbell Overhead Press"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dumbell Arnold Press"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Seated Arnold Press"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dumbbell Front Raises (pronated Grip)"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dumbbell Front Raises (Hammer Grip)"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dumbbell Front Raises (Supernated Grip BEST)"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Seated Dumbell Press (Supernated Grip"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Staning Dumbell Press (Supernated Grip)"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dumbbel Scoop Press"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Cable Front Riase (Pronated Grip)"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Cable Front Riase (Supernated Grip BEST)"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Cable Strch Front Raises"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Plate Bus Drivers"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Handstand Pushup"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Pike Pushup"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Seated Dumbbell Lateral Raise"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Standing Dumbbell Lateral Raise"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dumbbell Cheat Lateral Raise"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Lying Incline Lateral Raise"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Incline Dumbbell Parsel Side Lateral Raise"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Cable Behind Body Lateral Raise "
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Cable Lateral Raise"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Cable Lean-Away Lateral Raise"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Egyptian Lateral Raise"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Standing Cable Y Raise"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Maschine Side Lateral Raises"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Standing Barbell Rear Delt Row"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Chest Supported Barbell Rear Delt Row"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Behinde the Back Barbell Raise"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dumbbell Rear Delt Row"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dumbbell Chest Supported Rear Delt Swing"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dumbbell Chest Supported Rear Delt Row"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dumbbell Reverse Flys"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dumbbll Hip Hugger"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Abdduction Row"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Incline Behind the Back Dumbbell Raise"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Incline Dumbbell Rear Delt Fly"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Seated Cable Rear Delt Row"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Rear Delt Cable Pull"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Double Arm Reverse Cabel Fly"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Singke Arm Reverse Cable Fly"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Standing Face Pull"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Kneeling Face Pull"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Laying Face Pull"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Reverse Pec Deck"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Maschine Side Lateral Rear Delt Fly"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Biceps",
|
|
||||||
"exercises":[
|
|
||||||
{
|
|
||||||
"name":"Dumbbell Concentration Curl (Pronated Grip)"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Crossbody Cable Curl"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dumbbell Concentration Curl (Hammer Grip)"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Barbell Reverse Grip Curl"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Ez Bar Reverse Grip Curl"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dumbbell Reverse Grip"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Barbell Curl"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Ez bar Curl"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Standing Dumbbell Curl"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Seated Cable Curl"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"High Cable Curl"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Triceps",
|
|
||||||
"exercises":[
|
|
||||||
{
|
|
||||||
"name":"Rope Cable Pushdown (infront Body)"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Straight Bart Cable Pushdown (underhand Grip)"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dumbbell Overhead Extension"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Dip"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Rope Cable Pushdown (behind body)"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Cable Straight Bar Pushdown"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Barbell Dip"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Close Grip Pushup"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Close Grip Barbell Bench Press"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
||||||
<template>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup>
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
|
|
||||||
.btn {
|
|
||||||
background-color: white;
|
|
||||||
border: none;
|
|
||||||
border-radius: 1rem;
|
|
||||||
color: #000;
|
|
||||||
cursor: pointer;
|
|
||||||
font-size: 18px;
|
|
||||||
padding: 5px 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn--primary {
|
|
||||||
background-color: #007bff;
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
|
|
@ -1,115 +0,0 @@
|
||||||
<template>
|
|
||||||
<input class="search
|
|
||||||
text-black py-2 px-2 rounded mt-5"
|
|
||||||
v-model="input"
|
|
||||||
type="text"
|
|
||||||
placeholder="Search..." />
|
|
||||||
<div class="flex">
|
|
||||||
<div class="exerciseList">
|
|
||||||
<ul class="exerciseItem" v-for="exercise in filterExercises()" :key="exercise.name">
|
|
||||||
<button @click="exerciseClick(exercise); initSetInput()" class="btn bg-secondary-button hover:bg-accent text-white font-bold py-2 px-2 rounded" >{{ exercise.name }}</button>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div v-if="selectedExercise">
|
|
||||||
<WeightsInput :selectedExercise="selectedExercise"></WeightsInput>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup>
|
|
||||||
|
|
||||||
import { useExerciseStore } from '@/stores/storeExercise.js';
|
|
||||||
import { onMounted, ref } from 'vue';
|
|
||||||
import WeightsInput from "@/views/weight/WeightsInput.vue";
|
|
||||||
import { useWeightInputStore } from '@/stores/storeInput';
|
|
||||||
|
|
||||||
const muscle = defineProps({
|
|
||||||
muscle: String,
|
|
||||||
})
|
|
||||||
|
|
||||||
const json = useExerciseStore()
|
|
||||||
const weightInput = useWeightInputStore()
|
|
||||||
const exercises = ref([])
|
|
||||||
const selectedExercise = ref(null)
|
|
||||||
|
|
||||||
onMounted(async () => {
|
|
||||||
await json.fetchMuscleExercise()
|
|
||||||
switch (muscle.muscle) {
|
|
||||||
case "Legs":
|
|
||||||
exercises.value = json.exerciseList.muscle[0].exercises
|
|
||||||
break;
|
|
||||||
case "Back":
|
|
||||||
exercises.value = json.exerciseList.muscle[1].exercises
|
|
||||||
break;
|
|
||||||
case "Chest":
|
|
||||||
exercises.value = json.exerciseList.muscle[2].exercises
|
|
||||||
break;
|
|
||||||
case "Shoulder":
|
|
||||||
exercises.value = json.exerciseList.muscle[3].exercises
|
|
||||||
break;
|
|
||||||
case "Biceps":
|
|
||||||
exercises.value = json.exerciseList.muscle[4].exercises
|
|
||||||
break;
|
|
||||||
case "Triceps":
|
|
||||||
exercises.value = json.exerciseList.muscle[5].exercises
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
// filter exercises with help from https://blog.logrocket.com/create-search-bar-vue/ last accessed 05.05.2023
|
|
||||||
let input = ref('');
|
|
||||||
function filterExercises(){
|
|
||||||
return exercises.value.filter((exercise) => {
|
|
||||||
return exercise.name.toLowerCase().includes(input.value.toLowerCase());
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
const exerciseClick = (exercise) => {
|
|
||||||
selectedExercise.value = exercise;
|
|
||||||
};
|
|
||||||
|
|
||||||
const initSetInput = () => {
|
|
||||||
weightInput.initSetsInputs(selectedExercise.value);
|
|
||||||
};
|
|
||||||
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
|
|
||||||
.exerciseList{
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
align-items: flex-start;
|
|
||||||
gap: 0.25rem;
|
|
||||||
margin-top: 0.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.search{
|
|
||||||
width: auto;
|
|
||||||
height: 2rem;
|
|
||||||
border-radius: 1rem;
|
|
||||||
border: 1px solid #ccc;
|
|
||||||
padding: 1rem;
|
|
||||||
font-size: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.weights{
|
|
||||||
display: flex;
|
|
||||||
flex-direction: row;
|
|
||||||
gap: 0.25rem;
|
|
||||||
margin-top: 0.5rem;
|
|
||||||
margin-left: 5rem;
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.set{
|
|
||||||
display: flex;
|
|
||||||
flex-direction: row;
|
|
||||||
align-items: flex-start;
|
|
||||||
gap: 0.25rem;
|
|
||||||
margin-top: 0.5rem;
|
|
||||||
color: white;
|
|
||||||
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
@ -1,3 +1,2 @@
|
||||||
export { default as NavigationModel } from './NavigationModel.vue';
|
export { default as NavigationModel } from './NavigationModel.vue';
|
||||||
export { default as ExerciseList } from './ExerciseList.vue';
|
export { default as Nav } from './Nav.vue';
|
||||||
export { default as Button } from './Button.vue';
|
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
<script setup>
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<nav v-show="true" class="navbar navbar-expand navbar-dark bg-dark">
|
||||||
|
<div class="navbar-nav">
|
||||||
|
<router-link to="/" class="nav-item nav-link">Home</router-link>
|
||||||
|
<router-link to="/users" class="nav-item nav-link">Users</router-link>
|
||||||
|
<button @click="authStore.logout()" class="btn btn-link nav-item nav-link">Logout</button>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</template>
|
||||||
|
|
@ -1,16 +1,16 @@
|
||||||
<template>
|
<template>
|
||||||
<nav v-show="true" class="navbar navbar-expand navbar-dark bg-dark">
|
<nav v-show="true" class="navbar navbar-expand navbar-dark bg-dark">
|
||||||
<div class="logo">
|
<div class="logo">
|
||||||
<img src="../assets/logo.png" alt="logo"/>
|
LOGO IS HERE
|
||||||
</div>
|
</div>
|
||||||
<div class="navbar-nav">
|
<div class="navbar-nav">
|
||||||
<router-link to="/" class="nav-item nav-link">Home</router-link>
|
<router-link to="/" class="nav-item nav-link">HomeView</router-link>
|
||||||
<router-link to="/Muscles/Legs" class="nav-item nav-link">Legs</router-link>
|
<router-link to="/muscles/legs" class="nav-item nav-link">Legs</router-link>
|
||||||
<router-link to="/Muscles/Back" class="nav-item nav-link">Back</router-link>
|
<router-link to="/muscles/back" class="nav-item nav-link">Back</router-link>
|
||||||
<router-link to="/Muscles/Chest" class="nav-item nav-link">Chest</router-link>
|
<router-link to="/muscles/chest" class="nav-item nav-link">Chest</router-link>
|
||||||
<router-link to="/Muscles/Shoulder" class="nav-item nav-link">Shoulder</router-link>
|
<router-link to="/muscles/shoulder" class="nav-item nav-link">Shoulder</router-link>
|
||||||
<router-link to="/Muscles/Triceps" class="nav-item nav-link">Triceps</router-link>
|
<router-link to="/muscles/triceps" class="nav-item nav-link">Triceps</router-link>
|
||||||
<router-link to="/Muscles/Biceps" class="nav-item nav-link">Biceps</router-link>
|
<router-link to="/muscles/biceps" class="nav-item nav-link">Biceps</router-link>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -19,13 +19,12 @@
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
// styling for the navbar (with reference to https://css-tricks.com/snippets/css/a-guide-to-flexbox/#aa-flexbox-properties last accessed 05.05.2023)
|
|
||||||
.navbar{
|
.navbar{
|
||||||
display: flex;
|
display: flex;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 4rem;
|
height: 4rem;
|
||||||
justify-content: start;
|
justify-content: start;
|
||||||
background: #0a0e06;
|
background: grey;
|
||||||
}
|
}
|
||||||
.navbar-nav{
|
.navbar-nav{
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
@ -36,22 +35,13 @@
|
||||||
.nav-item{
|
.nav-item{
|
||||||
margin-left: 1rem;
|
margin-left: 1rem;
|
||||||
margin-right: 1rem;
|
margin-right: 1rem;
|
||||||
color: #e7f1df;
|
color: white;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
font-size: 1.2rem;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-item:hover{
|
.nav-item:hover{
|
||||||
// color: rgb(91, 154, 102);
|
color: blue;
|
||||||
color: #699f65
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.logo{
|
.logo{
|
||||||
display: flex;
|
width: 20%;
|
||||||
}
|
|
||||||
.logo img {
|
|
||||||
width: 15%;
|
|
||||||
height: 100%;
|
|
||||||
margin-left: 0.5rem;
|
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
import { describe, it, expect } from 'vitest'
|
||||||
|
|
||||||
|
import { mount } from '@vue/test-utils'
|
||||||
|
import HelloWorld from '../HelloWorld.vue'
|
||||||
|
|
||||||
|
describe('HelloWorld', () => {
|
||||||
|
it('renders properly', () => {
|
||||||
|
const wrapper = mount(HelloWorld, { props: { msg: 'Hello Vitest' } })
|
||||||
|
expect(wrapper.text()).toContain('Hello Vitest')
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
@ -1,4 +1 @@
|
||||||
@import 'base.scss';
|
@import 'base.scss';
|
||||||
@tailwind base;
|
|
||||||
@tailwind components;
|
|
||||||
@tailwind utilities;
|
|
||||||
|
|
@ -11,11 +11,54 @@ const router = createRouter({
|
||||||
component: HomeView
|
component: HomeView
|
||||||
},
|
},
|
||||||
{... MusclesRouter},
|
{... MusclesRouter},
|
||||||
{
|
// {
|
||||||
path: '/weightsinput',
|
// path: '/chest',
|
||||||
name: 'weightsinput',
|
// name: 'chest',
|
||||||
component: () => import('../views/weight/WeightsInput.vue')
|
// // route level code-splitting
|
||||||
}
|
// // this generates a separate chunk (About.[hash].js) for this route
|
||||||
|
// // which is lazy-loaded when the route is visited.
|
||||||
|
// component: () => import('../views/Muscles/ChestView.vue')
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// path: '/shoulder',
|
||||||
|
// name: 'shoulder',
|
||||||
|
// // route level code-splitting
|
||||||
|
// // this generates a separate chunk (About.[hash].js) for this route
|
||||||
|
// // which is lazy-loaded when the route is visited.
|
||||||
|
// component: () => import('../views/Muscles/ShoulderView.vue')
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// path: '/legs',
|
||||||
|
// name: 'legs',
|
||||||
|
// // route level code-splitting
|
||||||
|
// // this generates a separate chunk (About.[hash].js) for this route
|
||||||
|
// // which is lazy-loaded when the route is visited.
|
||||||
|
// component: () => import('../views/Muscles/LegsView.vue')
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// path: '/back',
|
||||||
|
// name: 'back',
|
||||||
|
// // route level code-splitting
|
||||||
|
// // this generates a separate chunk (About.[hash].js) for this route
|
||||||
|
// // which is lazy-loaded when the route is visited.
|
||||||
|
// component: () => import('../views/Muscles/BackView.vue')
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// path: '/biceps',
|
||||||
|
// name: 'biceps',
|
||||||
|
// // route level code-splitting
|
||||||
|
// // this generates a separate chunk (About.[hash].js) for this route
|
||||||
|
// // which is lazy-loaded when the route is visited.
|
||||||
|
// component: () => import('../views/Muscles/BicepsView.vue')
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// path: '/triceps',
|
||||||
|
// name: 'triceps',
|
||||||
|
// // route level code-splitting
|
||||||
|
// // this generates a separate chunk (About.[hash].js) for this route
|
||||||
|
// // which is lazy-loaded when the route is visited.
|
||||||
|
// component: () => import('../views/Muscles/TricepsView.vue')
|
||||||
|
// },
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
import { ref, computed } from 'vue'
|
||||||
|
import { defineStore } from 'pinia'
|
||||||
|
|
||||||
|
export const useCounterStore = defineStore('counter', () => {
|
||||||
|
const count = ref(0)
|
||||||
|
const doubleCount = computed(() => count.value * 2)
|
||||||
|
function increment() {
|
||||||
|
count.value++
|
||||||
|
}
|
||||||
|
|
||||||
|
return { count, doubleCount, increment }
|
||||||
|
})
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
import {defineStore} from 'pinia'
|
|
||||||
import muscleExercise from '../assets/muscleExercise';
|
|
||||||
import { ref } from 'vue'
|
|
||||||
|
|
||||||
export const useExerciseStore = defineStore('json', () => {
|
|
||||||
const exerciseList = ref([])
|
|
||||||
|
|
||||||
async function fetchMuscleExercise() {
|
|
||||||
exerciseList.value = muscleExercise
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
|
||||||
exerciseList,
|
|
||||||
fetchMuscleExercise
|
|
||||||
}
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
@ -1,94 +0,0 @@
|
||||||
import { defineStore } from 'pinia'
|
|
||||||
// import { reactive } from 'vue'
|
|
||||||
import { useLocalStorage } from '@vueuse/core'
|
|
||||||
|
|
||||||
export const useWeightInputStore = defineStore('weightInput', () => {
|
|
||||||
// localStorage https://vueuse.org/core/useLocalStorage/
|
|
||||||
const exercises = useLocalStorage('exercises', {});
|
|
||||||
|
|
||||||
function addWorkingSet(selectedExercise) {
|
|
||||||
if (!exercises.value[selectedExercise]) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
exercises.value[selectedExercise].workingSet.push({
|
|
||||||
workingSetReps: [],
|
|
||||||
workingSetWeight: [],
|
|
||||||
});
|
|
||||||
|
|
||||||
console.log('Added working set:', exercises.value[selectedExercise]);
|
|
||||||
}
|
|
||||||
|
|
||||||
function addWarmUpSet(selectedExercise) {
|
|
||||||
if (!exercises.value[selectedExercise]) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
exercises.value[selectedExercise].warmUpSet.push({
|
|
||||||
warmSetReps: [],
|
|
||||||
warmSetWeight: [],
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function removeWorkingSet(selectedExercise) {
|
|
||||||
if(!exercises.value[selectedExercise]) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
exercises.value[selectedExercise].workingSet.pop({
|
|
||||||
workingSetReps: [],
|
|
||||||
workingSetsWeight: [],
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function removeWarmUpSet(selectedExercise) {
|
|
||||||
if(!exercises.value[selectedExercise]) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
exercises.value[selectedExercise].warmUpSet.pop({
|
|
||||||
warmUpSetReps: [],
|
|
||||||
warmUpSetsWeight: [],
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function getWorkingSetCount(selectedExercise) {
|
|
||||||
if (exercises.value[selectedExercise]) {
|
|
||||||
return exercises.value[selectedExercise].workingSet.length;
|
|
||||||
}
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
function getWarmUpSetCount(selectedExercise) {
|
|
||||||
if (exercises.value[selectedExercise]) {
|
|
||||||
return exercises.value[selectedExercise].warmUpSet.length;
|
|
||||||
}
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
function initSetsInputs(selectedExercise) {
|
|
||||||
if(!exercises.value[selectedExercise]) {
|
|
||||||
exercises.value[selectedExercise] = {
|
|
||||||
workingSet: [],
|
|
||||||
warmUpSet: [],
|
|
||||||
};
|
|
||||||
exercises.value[selectedExercise].workingSet.push({
|
|
||||||
workingSetReps: [],
|
|
||||||
workingSetWeight: [],
|
|
||||||
});
|
|
||||||
exercises.value[selectedExercise].warmUpSet.push({
|
|
||||||
warmSetReps: [],
|
|
||||||
warmSetWeight: [],
|
|
||||||
});
|
|
||||||
}
|
|
||||||
console.log('Init sets inputs:', exercises.value[selectedExercise], selectedExercise);
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
|
||||||
exercises,
|
|
||||||
addWorkingSet,
|
|
||||||
removeWorkingSet,
|
|
||||||
addWarmUpSet,
|
|
||||||
removeWarmUpSet,
|
|
||||||
getWorkingSetCount,
|
|
||||||
getWarmUpSetCount,
|
|
||||||
initSetsInputs }
|
|
||||||
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
<template>
|
||||||
|
|
||||||
|
<div class="wrapper">
|
||||||
|
<nav>
|
||||||
|
<RouterLink to="/home">Home</RouterLink>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
@media (min-width: 1024px) {
|
||||||
|
.about {
|
||||||
|
min-height: 100vh;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
export {default as Tilebar} from './Tilebar.vue';
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
<template>
|
||||||
|
<div class="p-4">
|
||||||
|
<div class="container">
|
||||||
|
<router-view />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
|
@ -1,15 +1,19 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="text-white">
|
<div class="back">
|
||||||
<h1>Back</h1>
|
<h1>Back</h1>
|
||||||
<ExerciseList muscle="Back"/>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import {ExerciseList} from "@/components/Index.js";
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
@media (min-width: 1024px) {
|
||||||
</style>
|
.about {
|
||||||
|
min-height: 100vh;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,19 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="biceps text-text">
|
<div class="biceps">
|
||||||
<h1>Biceps</h1>
|
<h1>Biceps</h1>
|
||||||
<ExerciseList muscle="Biceps"/>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import {ExerciseList} from "@/components/Index.js";
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
@media (min-width: 1024px) {
|
||||||
</style>
|
.about {
|
||||||
|
min-height: 100vh;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,19 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="text-white">
|
<div class="chest">
|
||||||
<div class="w-1/2">
|
|
||||||
<h1>Chest</h1>
|
<h1>Chest</h1>
|
||||||
<ExerciseList muscle="Chest"/>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import {ExerciseList} from "@/components/Index.js";
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
@media (min-width: 1024px) {
|
||||||
|
.about {
|
||||||
|
min-height: 100vh;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
@ -1,15 +1,19 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="legs text-white">
|
<div class="legs">
|
||||||
<h1>Legs</h1>
|
<h1>Legs</h1>
|
||||||
<ExerciseList muscle="Legs"/>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import {ExerciseList} from "@/components/Index.js";
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
@media (min-width: 1024px) {
|
||||||
</style>
|
.about {
|
||||||
|
min-height: 100vh;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,19 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="shoulder text-white">
|
<div class="shoulder">
|
||||||
<h1>Shoulder</h1>
|
<h1>Shoulder</h1>
|
||||||
<ExerciseList muscle="Shoulder"/>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import {ExerciseList} from "@/components/Index.js";
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
@media (min-width: 1024px) {
|
||||||
|
.about {
|
||||||
|
min-height: 100vh;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|
@ -1,15 +1,19 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="triceps text-white ">
|
<div class="triceps">
|
||||||
<h1>Triceps</h1>
|
<h1><button>Triceps</button></h1>
|
||||||
<ExerciseList muscle="Triceps"/>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import {ExerciseList} from "@/components/Index.js";
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
@media (min-width: 1024px) {
|
||||||
</style>
|
.about {
|
||||||
|
min-height: 100vh;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
export {default as weightsInput} from './WeightsInput.vue';
|
|
||||||
|
|
@ -1,89 +0,0 @@
|
||||||
<template>
|
|
||||||
|
|
||||||
<div class="w-2/3 mx-auto">
|
|
||||||
<div class="mt-2">
|
|
||||||
<label>Warm-Up Sets</label>
|
|
||||||
<button @click="weightInput.addWarmUpSet(selectedExercise)"
|
|
||||||
class="bg-accent hover:bg-primary-button text-white font-bold py-2 px-2 rounded ml-5">
|
|
||||||
Add
|
|
||||||
</button>
|
|
||||||
<!-- https://www.designcise.com/web/tutorial/how-to-conditionally-disable-a-button-in-vue-js -->
|
|
||||||
<button :disabled="weightInput.getWarmUpSetCount(selectedExercise) <= 1"
|
|
||||||
@click="weightInput.removeWarmUpSet(selectedExercise)"
|
|
||||||
class="bg-accent hover:bg-primary-button text-white font-bold py-2 px-2 rounded ml-5 disabled:opacity-25">
|
|
||||||
Remove
|
|
||||||
</button>
|
|
||||||
|
|
||||||
<div v-for="(warmUpSet, warmUpSetCount) in weightInput.exercises[selectedExercise].warmUpSet" :key="warmUpSetCount"
|
|
||||||
class="flex ml-2">
|
|
||||||
<label>Set {{ warmUpSetCount + 1 }}</label>
|
|
||||||
<div class="ml-3">
|
|
||||||
<input
|
|
||||||
v-model="warmUpSet.warmUpWeight"
|
|
||||||
type="number"
|
|
||||||
class="mt-1 px-3 py-2 bg-black border shadow-sm border-slate-300 placeholder-slate-400 focus:outline-none block rounded-md sm:text-sm "
|
|
||||||
placeholder="Weight (kg)"
|
|
||||||
onkeypress='return event.charCode >= 48 && event.charCode <= 57'/>
|
|
||||||
</div>
|
|
||||||
<div class="ml-3">
|
|
||||||
<input
|
|
||||||
v-model="warmUpSet.warmUpReps"
|
|
||||||
type="number"
|
|
||||||
class="mt-1 px-3 py-2 bg-black border shadow-sm border-slate-300 placeholder-slate-400 focus:outline-none block rounded-md sm:text-sm "
|
|
||||||
placeholder="Reps"
|
|
||||||
onkeypress='return event.charCode >= 48 && event.charCode <= 57'/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="working-set mt-5">
|
|
||||||
<label>Working Sets</label>
|
|
||||||
<button @click="weightInput.addWorkingSet(selectedExercise.selectedExercise)"
|
|
||||||
class="bg-accent hover:bg-primary-button text-white font-bold py-2 px-2 rounded ml-7">
|
|
||||||
Add
|
|
||||||
</button>
|
|
||||||
<button :disabled="weightInput.getWorkingSetCount(selectedExercise) <= 1"
|
|
||||||
@click="weightInput.removeWorkingSet(selectedExercise)"
|
|
||||||
class="bg-accent hover:bg-primary-button text-white font-bold py-2 px-2 rounded ml-5 disabled:opacity-25">
|
|
||||||
Remove
|
|
||||||
</button>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<div v-for="(workingset, workingSetCount) in weightInput.exercises[selectedExercise].workingSet" :key="workingSetCount" class="item flex justify-smart mt-1">
|
|
||||||
<label class=""> {{ workingSetCount + 1 }}. Set</label>
|
|
||||||
<div class="ml-3">
|
|
||||||
<input
|
|
||||||
v-model="workingset.workingSetWeight"
|
|
||||||
type="number"
|
|
||||||
class="mt-1 px-3 py-2 bg-black border shadow-sm border-slate-300 placeholder-slate-400 focus:outline-none block rounded-md sm:text-sm "
|
|
||||||
placeholder="Weight (Kg)"
|
|
||||||
onkeypress='return event.charCode >= 48 && event.charCode <= 57'/>
|
|
||||||
</div>
|
|
||||||
<div class="ml-3">
|
|
||||||
<input
|
|
||||||
v-model="workingset.workingSetReps"
|
|
||||||
type="number"
|
|
||||||
class="mt-1 px-3 py-2 bg-black border shadow-sm border-slate-300 placeholder-slate-400 focus:outline-none block rounded-md sm:text-sm "
|
|
||||||
placeholder="Reps"
|
|
||||||
onkeypress='return event.charCode >= 48 && event.charCode <= 57'> <!-- https://stackoverflow.com/questions/66172698/textbox-which-accepts-only-numbers-in-vue-js -->
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup>
|
|
||||||
import { useWeightInputStore } from '@/stores/storeInput';
|
|
||||||
import { ref } from 'vue';
|
|
||||||
|
|
||||||
const selectedExercise = defineProps({
|
|
||||||
selectedExercise: String
|
|
||||||
});
|
|
||||||
|
|
||||||
const weightInput = useWeightInputStore();
|
|
||||||
weightInput.selectedExercise = ref(selectedExercise.selectedExercise);
|
|
||||||
|
|
||||||
</script>
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
/** @type {import('tailwindcss').Config} */
|
|
||||||
export default {
|
|
||||||
content: [
|
|
||||||
"./index.html",
|
|
||||||
"./src/**/*.{vue,js,ts,jsx,tsx}",
|
|
||||||
],
|
|
||||||
theme: {
|
|
||||||
extend: {
|
|
||||||
colors: {
|
|
||||||
'primary-button':'#5b9a66',
|
|
||||||
// 'secondary-button':'#0d1406',
|
|
||||||
'secondary-button':'#699f65',
|
|
||||||
'background':'#131d0c',
|
|
||||||
'text': '#e7f1df',
|
|
||||||
'accent': '#361f47',
|
|
||||||
'accent2': '#63992e',
|
|
||||||
}
|
|
||||||
},
|
|
||||||
},
|
|
||||||
plugins: [],
|
|
||||||
}
|
|
||||||
|
|
||||||
Loading…
Reference in New Issue