feat: calendar & router configs

This commit is contained in:
opbnq-q
2025-03-11 04:52:09 -07:00
parent e16fce9221
commit a130fb9063
10 changed files with 231 additions and 19 deletions

View File

@@ -14,7 +14,9 @@
"primeicons": "^7.0.0",
"primelocale": "^2.0.3",
"primevue": "^4.2.5",
"vue": "^3.5.13"
"qalendar": "^3.9.0",
"vue": "^3.5.13",
"vue-router": "^4.5.0"
},
"devDependencies": {
"@vitejs/plugin-vue": "^5.2.1",
@@ -512,6 +514,61 @@
"node": ">=18"
}
},
"node_modules/@fortawesome/fontawesome-common-types": {
"version": "6.7.2",
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.7.2.tgz",
"integrity": "sha512-Zs+YeHUC5fkt7Mg1l6XTniei3k4bwG/yo3iFUtZWd/pMx9g3fdvkSK9E0FOC+++phXOka78uJcYb8JaFkW52Xg==",
"license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/@fortawesome/fontawesome-svg-core": {
"version": "6.7.2",
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.7.2.tgz",
"integrity": "sha512-yxtOBWDrdi5DD5o1pmVdq3WMCvnobT0LU6R8RyyVXPvFRd2o79/0NCuQoCjNTeZz9EzA9xS3JxNWfv54RIHFEA==",
"license": "MIT",
"dependencies": {
"@fortawesome/fontawesome-common-types": "6.7.2"
},
"engines": {
"node": ">=6"
}
},
"node_modules/@fortawesome/free-regular-svg-icons": {
"version": "6.7.2",
"resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.7.2.tgz",
"integrity": "sha512-7Z/ur0gvCMW8G93dXIQOkQqHo2M5HLhYrRVC0//fakJXxcF1VmMPsxnG6Ee8qEylA8b8Q3peQXWMNZ62lYF28g==",
"license": "(CC-BY-4.0 AND MIT)",
"dependencies": {
"@fortawesome/fontawesome-common-types": "6.7.2"
},
"engines": {
"node": ">=6"
}
},
"node_modules/@fortawesome/free-solid-svg-icons": {
"version": "6.7.2",
"resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.7.2.tgz",
"integrity": "sha512-GsBrnOzU8uj0LECDfD5zomZJIjrPhIlWU82AHwa2s40FKH+kcxQaBvBo3Z4TxyZHIyX8XTDxsyA33/Vx9eFuQA==",
"license": "(CC-BY-4.0 AND MIT)",
"dependencies": {
"@fortawesome/fontawesome-common-types": "6.7.2"
},
"engines": {
"node": ">=6"
}
},
"node_modules/@fortawesome/vue-fontawesome": {
"version": "3.0.8",
"resolved": "https://registry.npmjs.org/@fortawesome/vue-fontawesome/-/vue-fontawesome-3.0.8.tgz",
"integrity": "sha512-yyHHAj4G8pQIDfaIsMvQpwKMboIZtcHTUvPqXjOHyldh1O1vZfH4W03VDPv5RvI9P6DLTzJQlmVgj9wCf7c2Fw==",
"license": "MIT",
"peerDependencies": {
"@fortawesome/fontawesome-svg-core": "~1 || ~6",
"vue": ">= 3.0.0 < 4"
}
},
"node_modules/@isaacs/cliui": {
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
@@ -2114,6 +2171,12 @@
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/perfect-scrollbar": {
"version": "1.5.6",
"resolved": "https://registry.npmjs.org/perfect-scrollbar/-/perfect-scrollbar-1.5.6.tgz",
"integrity": "sha512-rixgxw3SxyJbCaSpo1n35A/fwI1r2rdwMKOTCg/AcG+xOEyZcE8UHVjpZMFCVImzsFoCZeJTT+M/rdEIQYO2nw==",
"license": "MIT"
},
"node_modules/picocolors": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
@@ -2356,6 +2419,22 @@
"node": ">=12.11.0"
}
},
"node_modules/qalendar": {
"version": "3.9.0",
"resolved": "https://registry.npmjs.org/qalendar/-/qalendar-3.9.0.tgz",
"integrity": "sha512-RYjE+a5q+hv3kPh/0GRurFK2J70S6mbR8Bz2+UcmYWW1btboP913k4RbqQy5KnxmLmWYwdBm5ct8cpHjVDfj4g==",
"license": "MIT",
"dependencies": {
"@fortawesome/fontawesome-svg-core": "^6.3.0",
"@fortawesome/free-regular-svg-icons": "^6.3.0",
"@fortawesome/free-solid-svg-icons": "^6.3.0",
"@fortawesome/vue-fontawesome": "^3.0.3",
"perfect-scrollbar": "^1.5.5"
},
"engines": {
"node": ">=16.0.0"
}
},
"node_modules/queue-microtask": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
@@ -2939,6 +3018,21 @@
}
}
},
"node_modules/vue-router": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.5.0.tgz",
"integrity": "sha512-HDuk+PuH5monfNuY+ct49mNmkCRK4xJAV9Ts4z9UFc4rzdDnxQLyCMGGc8pKhZhHTVzfanpNwB/lwqevcBwI4w==",
"license": "MIT",
"dependencies": {
"@vue/devtools-api": "^6.6.4"
},
"funding": {
"url": "https://github.com/sponsors/posva"
},
"peerDependencies": {
"vue": "^3.2.0"
}
},
"node_modules/vue-tsc": {
"version": "2.2.8",
"resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.2.8.tgz",

View File

@@ -15,7 +15,9 @@
"primeicons": "^7.0.0",
"primelocale": "^2.0.3",
"primevue": "^4.2.5",
"vue": "^3.5.13"
"qalendar": "^3.9.0",
"vue": "^3.5.13",
"vue-router": "^4.5.0"
},
"devDependencies": {
"@vitejs/plugin-vue": "^5.2.1",
@@ -27,5 +29,11 @@
"typescript": "~5.6.2",
"vite": "^6.0.5",
"vue-tsc": "^2.2.0"
},
"pnpm": {
"onlyBuiltDependencies": [
"esbuild",
"vue-demi"
]
}
}

View File

@@ -26,9 +26,15 @@ importers:
primevue:
specifier: ^4.2.5
version: 4.3.1(vue@3.5.13(typescript@5.6.3))
qalendar:
specifier: ^3.9.0
version: 3.9.0(vue@3.5.13(typescript@5.6.3))
vue:
specifier: ^3.5.13
version: 3.5.13(typescript@5.6.3)
vue-router:
specifier: ^4.5.0
version: 4.5.0(vue@3.5.13(typescript@5.6.3))
devDependencies:
'@vitejs/plugin-vue':
specifier: ^5.2.1
@@ -231,6 +237,28 @@ packages:
cpu: [x64]
os: [win32]
'@fortawesome/fontawesome-common-types@6.7.2':
resolution: {integrity: sha512-Zs+YeHUC5fkt7Mg1l6XTniei3k4bwG/yo3iFUtZWd/pMx9g3fdvkSK9E0FOC+++phXOka78uJcYb8JaFkW52Xg==}
engines: {node: '>=6'}
'@fortawesome/fontawesome-svg-core@6.7.2':
resolution: {integrity: sha512-yxtOBWDrdi5DD5o1pmVdq3WMCvnobT0LU6R8RyyVXPvFRd2o79/0NCuQoCjNTeZz9EzA9xS3JxNWfv54RIHFEA==}
engines: {node: '>=6'}
'@fortawesome/free-regular-svg-icons@6.7.2':
resolution: {integrity: sha512-7Z/ur0gvCMW8G93dXIQOkQqHo2M5HLhYrRVC0//fakJXxcF1VmMPsxnG6Ee8qEylA8b8Q3peQXWMNZ62lYF28g==}
engines: {node: '>=6'}
'@fortawesome/free-solid-svg-icons@6.7.2':
resolution: {integrity: sha512-GsBrnOzU8uj0LECDfD5zomZJIjrPhIlWU82AHwa2s40FKH+kcxQaBvBo3Z4TxyZHIyX8XTDxsyA33/Vx9eFuQA==}
engines: {node: '>=6'}
'@fortawesome/vue-fontawesome@3.0.8':
resolution: {integrity: sha512-yyHHAj4G8pQIDfaIsMvQpwKMboIZtcHTUvPqXjOHyldh1O1vZfH4W03VDPv5RvI9P6DLTzJQlmVgj9wCf7c2Fw==}
peerDependencies:
'@fortawesome/fontawesome-svg-core': ~1 || ~6
vue: '>= 3.0.0 < 4'
'@isaacs/cliui@8.0.2':
resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
engines: {node: '>=12'}
@@ -466,12 +494,9 @@ packages:
vue:
optional: true
<<<<<<< HEAD
'@wailsio/runtime@3.0.0-alpha.66':
resolution: {integrity: sha512-ENLu8rn1griL1gFHJqkq1i+BVxrrA0JPJHYneUJYuf/s54kjuQViW0RKDEe/WTDo56ABpfykrd/T8OYpPUyXUw==}
=======
>>>>>>> 4ec5fd2 (fix: creating, updating)
alien-signals@1.0.4:
resolution: {integrity: sha512-DJqqQD3XcsaQcQ1s+iE2jDUZmmQpXwHiR6fCAim/w87luaW+vmLY8fMlrdkmRwzaFXhkxf3rqPCR59tKVv1MDw==}
@@ -758,6 +783,9 @@ packages:
resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
engines: {node: '>=16 || 14 >=14.18'}
perfect-scrollbar@1.5.6:
resolution: {integrity: sha512-rixgxw3SxyJbCaSpo1n35A/fwI1r2rdwMKOTCg/AcG+xOEyZcE8UHVjpZMFCVImzsFoCZeJTT+M/rdEIQYO2nw==}
picocolors@1.1.1:
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
@@ -826,17 +854,18 @@ packages:
primeicons@7.0.0:
resolution: {integrity: sha512-jK3Et9UzwzTsd6tzl2RmwrVY/b8raJ3QZLzoDACj+oTJ0oX7L9Hy+XnVwgo4QVKlKpnP/Ur13SXV/pVh4LzaDw==}
<<<<<<< HEAD
primelocale@2.0.3:
resolution: {integrity: sha512-/sMoTdLxDFJs2Bdns+F4lm33ph6m4j18Rho8y9dsz5DqgWliqXsfYu1We4tkHtviRWq8AzEj31TDLDA3NEYC0Q==}
engines: {node: '>=18.0.0', npm: '>=8.6.0'}
=======
>>>>>>> 4ec5fd2 (fix: creating, updating)
primevue@4.3.1:
resolution: {integrity: sha512-NSUpcWf2WpXgqOvjgXu5zQM3E5UEXoA2iXLi6xV+h1SBZ1TmgNfrjme96KRzfUY2RBsI0rTSUuPv0I+fXvtcmA==}
engines: {node: '>=12.11.0'}
qalendar@3.9.0:
resolution: {integrity: sha512-RYjE+a5q+hv3kPh/0GRurFK2J70S6mbR8Bz2+UcmYWW1btboP913k4RbqQy5KnxmLmWYwdBm5ct8cpHjVDfj4g==}
engines: {node: '>=16.0.0'}
queue-microtask@1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
@@ -992,6 +1021,11 @@ packages:
'@vue/composition-api':
optional: true
vue-router@4.5.0:
resolution: {integrity: sha512-HDuk+PuH5monfNuY+ct49mNmkCRK4xJAV9Ts4z9UFc4rzdDnxQLyCMGGc8pKhZhHTVzfanpNwB/lwqevcBwI4w==}
peerDependencies:
vue: ^3.2.0
vue-tsc@2.2.8:
resolution: {integrity: sha512-jBYKBNFADTN+L+MdesNX/TB3XuDSyaWynKMDgR+yCSln0GQ9Tfb7JS2lr46s2LiFUT1WsmfWsSvIElyxzOPqcQ==}
hasBin: true
@@ -1116,6 +1150,25 @@ snapshots:
'@esbuild/win32-x64@0.25.0':
optional: true
'@fortawesome/fontawesome-common-types@6.7.2': {}
'@fortawesome/fontawesome-svg-core@6.7.2':
dependencies:
'@fortawesome/fontawesome-common-types': 6.7.2
'@fortawesome/free-regular-svg-icons@6.7.2':
dependencies:
'@fortawesome/fontawesome-common-types': 6.7.2
'@fortawesome/free-solid-svg-icons@6.7.2':
dependencies:
'@fortawesome/fontawesome-common-types': 6.7.2
'@fortawesome/vue-fontawesome@3.0.8(@fortawesome/fontawesome-svg-core@6.7.2)(vue@3.5.13(typescript@5.6.3))':
dependencies:
'@fortawesome/fontawesome-svg-core': 6.7.2
vue: 3.5.13(typescript@5.6.3)
'@isaacs/cliui@8.0.2':
dependencies:
string-width: 5.1.2
@@ -1344,11 +1397,8 @@ snapshots:
typescript: 5.6.3
vue: 3.5.13(typescript@5.6.3)
<<<<<<< HEAD
'@wailsio/runtime@3.0.0-alpha.66': {}
=======
>>>>>>> 4ec5fd2 (fix: creating, updating)
alien-signals@1.0.4: {}
ansi-regex@5.0.1: {}
@@ -1618,6 +1668,8 @@ snapshots:
lru-cache: 10.4.3
minipass: 7.1.2
perfect-scrollbar@1.5.6: {}
picocolors@1.1.1: {}
picomatch@2.3.1: {}
@@ -1675,11 +1727,8 @@ snapshots:
primeicons@7.0.0: {}
<<<<<<< HEAD
primelocale@2.0.3: {}
=======
>>>>>>> 4ec5fd2 (fix: creating, updating)
primevue@4.3.1(vue@3.5.13(typescript@5.6.3)):
dependencies:
'@primeuix/styled': 0.5.0
@@ -1690,6 +1739,16 @@ snapshots:
transitivePeerDependencies:
- vue
qalendar@3.9.0(vue@3.5.13(typescript@5.6.3)):
dependencies:
'@fortawesome/fontawesome-svg-core': 6.7.2
'@fortawesome/free-regular-svg-icons': 6.7.2
'@fortawesome/free-solid-svg-icons': 6.7.2
'@fortawesome/vue-fontawesome': 3.0.8(@fortawesome/fontawesome-svg-core@6.7.2)(vue@3.5.13(typescript@5.6.3))
perfect-scrollbar: 1.5.6
transitivePeerDependencies:
- vue
queue-microtask@1.2.3: {}
read-cache@1.0.0:
@@ -1846,6 +1905,11 @@ snapshots:
dependencies:
vue: 3.5.13(typescript@5.6.3)
vue-router@4.5.0(vue@3.5.13(typescript@5.6.3)):
dependencies:
'@vue/devtools-api': 6.6.4
vue: 3.5.13(typescript@5.6.3)
vue-tsc@2.2.8(typescript@5.6.3):
dependencies:
'@volar/typescript': 2.4.12

View File

@@ -1,11 +1,11 @@
<script setup lang="ts">
import { Dialog } from "primevue";
import { useErrorStore } from "./stores/error.store";
import CommentScheme from "./comment/CommentScheme.vue";
import PosttypeScheme from "./posttype/PosttypeScheme.vue";
import PostScheme from "./post/PostScheme.vue";
import { RouterView, useRoute } from "vue-router";
const errorStore = useErrorStore();
const route = useRoute();
</script>
<template>
@@ -18,6 +18,6 @@ const errorStore = useErrorStore();
<h1 class="text-red-500 text-2xl">{{ errorStore.message }}</h1>
</Dialog>
<main class="w-screen h-screen">
<PostScheme></PostScheme>
<RouterView />
</main>
</template>

View File

@@ -0,0 +1,20 @@
<script setup lang="ts">
import { Qalendar } from "qalendar";
const config = {
month: {
showTrailingAndLeadingDates: false,
},
locale: 'ru-RU',
defaultMode: 'month',
isSilent: true,
};
</script>
<template>
<Qalendar :config></Qalendar>
</template>
<style>
@import "qalendar/dist/style.css";
</style>

View File

@@ -0,0 +1,4 @@
declare module 'qalendar' {
import { DefineComponent } from 'vue';
export const Qalendar: DefineComponent<{}, {}, any>;
}

View File

@@ -6,8 +6,9 @@ import Aura from '@primevue/themes/aura'
import 'primeicons/primeicons.css'
import { ru } from 'primelocale/js/ru.js'
import { createPinia } from 'pinia'
import { router } from './router/router'
createApp(App).use(createPinia()).use(Config, {
createApp(App).use(router).use(createPinia()).use(Config, {
theme: {
preset: Aura,
},

View File

@@ -0,0 +1,8 @@
<script setup lang="ts">
import Calendar from '../components/calendar/Calendar.vue';
</script>
<template>
<Calendar />
</template>

View File

@@ -0,0 +1,13 @@
import { createRouter, createWebHistory, type RouteRecordRaw } from "vue-router";
import Index from "../pages/Index.vue";
export const routes: RouteRecordRaw[] = [{
path: "/",
component: Index,
name: 'Главная',
}]
export const router = createRouter({
history: createWebHistory(),
routes,
});

Binary file not shown.