diff --git a/client/package-lock.json b/client/package-lock.json
index c67cd12..7291d72 100644
--- a/client/package-lock.json
+++ b/client/package-lock.json
@@ -8,8 +8,11 @@
"name": "merit-opgave-client",
"version": "0.0.0",
"dependencies": {
+ "@popperjs/core": "^2.11.7",
"bootstrap": "^5.2.3",
+ "dayjs": "^1.11.7",
"pinia": "^2.0.34",
+ "v-calendar": "^3.0.3",
"vue": "^3.2.47",
"vue-router": "^4.1.6"
},
@@ -390,18 +393,27 @@
"version": "2.11.7",
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.7.tgz",
"integrity": "sha512-Cr4OjIkipTtcXKjAsm8agyleBuDHvxzeBoa1v543lbv1YaIwQjESsVcmjiWiPEbC1FIeHOG/Op9kdCmAmiS3Kw==",
- "peer": true,
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/popperjs"
}
},
+ "node_modules/@types/lodash": {
+ "version": "4.14.194",
+ "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.194.tgz",
+ "integrity": "sha512-r22s9tAS7imvBt2lyHC9B8AGwWnXaYb1tY09oyLkXDs4vArpYJzw09nj8MLx5VfciBPGIb+ZwG0ssYnEPJxn/g=="
+ },
"node_modules/@types/node": {
"version": "18.15.11",
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz",
"integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==",
"dev": true
},
+ "node_modules/@types/resize-observer-browser": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/@types/resize-observer-browser/-/resize-observer-browser-0.1.7.tgz",
+ "integrity": "sha512-G9eN0Sn0ii9PWQ3Vl72jDPgeJwRWhv2Qk/nQkJuWmRmOB4HX3/BhD5SE1dZs/hzPZL/WKnvF0RHdTSG54QJFyg=="
+ },
"node_modules/@vitejs/plugin-vue": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.1.0.tgz",
@@ -754,6 +766,31 @@
"resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz",
"integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w=="
},
+ "node_modules/date-fns": {
+ "version": "2.29.3",
+ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz",
+ "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==",
+ "engines": {
+ "node": ">=0.11"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/date-fns"
+ }
+ },
+ "node_modules/date-fns-tz": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/date-fns-tz/-/date-fns-tz-1.3.8.tgz",
+ "integrity": "sha512-qwNXUFtMHTTU6CFSFjoJ80W8Fzzp24LntbjFFBgL/faqds4e5mo9mftoRLgr3Vi1trISsg4awSpYVsOQCRnapQ==",
+ "peerDependencies": {
+ "date-fns": ">=2.0.0"
+ }
+ },
+ "node_modules/dayjs": {
+ "version": "1.11.7",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz",
+ "integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ=="
+ },
"node_modules/de-indent": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz",
@@ -1374,6 +1411,11 @@
"node": ">=4"
}
},
+ "node_modules/lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+ },
"node_modules/magic-string": {
"version": "0.25.9",
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz",
@@ -1970,6 +2012,23 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/v-calendar": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/v-calendar/-/v-calendar-3.0.3.tgz",
+ "integrity": "sha512-Skpp/nMoFqFadm94aWj0oOfazoux5T5Ug3/pbRbdolkoDrnVcL7Ronw1/SGFRUPGOwnLdYwhKPhrhSE1segW6w==",
+ "dependencies": {
+ "@types/lodash": "^4.14.165",
+ "@types/resize-observer-browser": "^0.1.7",
+ "date-fns": "^2.16.1",
+ "date-fns-tz": "^1.0.12",
+ "lodash": "^4.17.20",
+ "vue-screen-utils": "^1.0.0-beta.13"
+ },
+ "peerDependencies": {
+ "@popperjs/core": "^2.0.0",
+ "vue": "^3.2.0"
+ }
+ },
"node_modules/validate-npm-package-license": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
@@ -2055,6 +2114,14 @@
"vue": "^3.2.0"
}
},
+ "node_modules/vue-screen-utils": {
+ "version": "1.0.0-beta.13",
+ "resolved": "https://registry.npmjs.org/vue-screen-utils/-/vue-screen-utils-1.0.0-beta.13.tgz",
+ "integrity": "sha512-EJ/8TANKhFj+LefDuOvZykwMr3rrLFPLNb++lNBqPOpVigT2ActRg6icH9RFQVm4nHwlHIHSGm5OY/Clar9yIg==",
+ "peerDependencies": {
+ "vue": "^3.2.0"
+ }
+ },
"node_modules/vue-template-compiler": {
"version": "2.7.14",
"resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz",
diff --git a/client/package.json b/client/package.json
index 41cb51d..fbaef0d 100644
--- a/client/package.json
+++ b/client/package.json
@@ -10,8 +10,11 @@
"type-check": "vue-tsc --noEmit"
},
"dependencies": {
+ "@popperjs/core": "^2.11.7",
"bootstrap": "^5.2.3",
+ "dayjs": "^1.11.7",
"pinia": "^2.0.34",
+ "v-calendar": "^3.0.3",
"vue": "^3.2.47",
"vue-router": "^4.1.6"
},
diff --git a/client/src/components/CenterSelector.vue b/client/src/components/CenterSelector.vue
new file mode 100644
index 0000000..899cfcb
--- /dev/null
+++ b/client/src/components/CenterSelector.vue
@@ -0,0 +1,83 @@
+
+