
--- client/resources/css/style.css
+++ client/resources/css/style.css
... | ... | @@ -39,6 +39,7 @@ |
39 | 39 |
} |
40 | 40 |
|
41 | 41 |
button{margin: 0 3px;} |
42 |
+input{border: 0;} |
|
42 | 43 |
|
43 | 44 |
/*-------------------------------------------------------------- |
44 | 45 |
# Main |
... | ... | @@ -368,7 +369,6 @@ |
368 | 369 |
|
369 | 370 |
.logo img { |
370 | 371 |
max-height: 26px; |
371 |
- margin-right: 6px; |
|
372 | 372 |
} |
373 | 373 |
|
374 | 374 |
.logo span { |
--- client/views/index.html
+++ client/views/index.html
... | ... | @@ -1,29 +1,41 @@ |
1 | 1 |
<!DOCTYPE html> |
2 | 2 |
<html> |
3 |
- <head> |
|
4 |
- <meta charset="UTF-8"> |
|
5 |
- <meta http-equiv="X-UA-Compatible" content="IE=edge"> |
|
6 |
- <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> |
|
7 |
- <meta name="description" content="Node Vue Web"> |
|
8 |
- <link rel="icon" href="" /> |
|
9 |
- <!-- Vendor CSS Files --> |
|
10 |
- <link href="/client/resources/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet"> |
|
11 |
- <link href="/client/resources/vendor/bootstrap-icons/bootstrap-icons.css" rel="stylesheet"> |
|
12 |
- <link href="/client/resources/vendor/boxicons/css/boxicons.min.css" rel="stylesheet"> |
|
13 |
- <link href="/client/resources/vendor/quill/quill.snow.css" rel="stylesheet"> |
|
14 |
- <link href="/client/resources/vendor/quill/quill.bubble.css" rel="stylesheet"> |
|
15 |
- <link href="/client/resources/vendor/remixicon/remixicon.css" rel="stylesheet"> |
|
16 |
- <link href="/client/resources/vendor/simple-datatables/style.css" rel="stylesheet"> |
|
17 | 3 |
|
18 |
- <!-- Template Main CSS File --> |
|
19 |
- <link href="/client/resources/css/style.css" rel="stylesheet"> |
|
4 |
+<head> |
|
5 |
+ <meta charset="UTF-8"> |
|
6 |
+ <meta http-equiv="X-UA-Compatible" content="IE=edge"> |
|
7 |
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> |
|
8 |
+ <meta name="description" content="Node Vue Web"> |
|
9 |
+ <link rel="icon" href="" /> |
|
10 |
+ <!-- Vendor CSS Files --> |
|
11 |
+ <link href="/client/resources/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet"> |
|
12 |
+ <link href="/client/resources/vendor/bootstrap-icons/bootstrap-icons.css" rel="stylesheet"> |
|
13 |
+ <link href="/client/resources/vendor/boxicons/css/boxicons.min.css" rel="stylesheet"> |
|
14 |
+ <link href="/client/resources/vendor/quill/quill.snow.css" rel="stylesheet"> |
|
15 |
+ <link href="/client/resources/vendor/quill/quill.bubble.css" rel="stylesheet"> |
|
16 |
+ <link href="/client/resources/vendor/remixicon/remixicon.css" rel="stylesheet"> |
|
17 |
+ <link href="/client/resources/vendor/simple-datatables/style.css" rel="stylesheet"> |
|
20 | 18 |
|
21 |
- <script src="/client/resources/vendor/bootstrap/js/bootstrap.bundle.min.js"></script> |
|
22 |
- <title>Node Vue Web</title> |
|
23 |
- </head> |
|
19 |
+ <!-- Template Main CSS File --> |
|
20 |
+ <link href="/client/resources/css/style.css" rel="stylesheet"> |
|
24 | 21 |
|
25 |
- <body> |
|
26 |
- <div id="root"></div> |
|
27 |
- <script src="/client/build/bundle.js"></script> |
|
28 |
- </body> |
|
29 |
-</html> |
|
22 |
+ <script src="/client/resources/vendor/bootstrap/js/bootstrap.bundle.min.js"></script> |
|
23 |
+ |
|
24 |
+ <script src="/client/resources/vendor/tinymce/tinymce.min.js"></script> |
|
25 |
+ <script src="/client/resources/vendor/quill/quill.js"></script> |
|
26 |
+ <script src="/client/resources/vendor/php-email-form/validate.js"></script> |
|
27 |
+ |
|
28 |
+ <script src="/client/resources/js/main.js"></script> |
|
29 |
+ <title>테이큰소프트</title> |
|
30 |
+</head> |
|
31 |
+ |
|
32 |
+<body> |
|
33 |
+ <div id="root"></div> |
|
34 |
+ <script src="/client/build/bundle.js"></script> |
|
35 |
+ <script src="/client/resources/vendor/simple-datatables/simple-datatables.js"></script> |
|
36 |
+ <script> |
|
37 |
+ window.simpleDatatables = simpleDatatables; // 전역으로 접근 가능하게 설정 |
|
38 |
+ </script> |
|
39 |
+</body> |
|
40 |
+ |
|
41 |
+</html>(파일 끝에 줄바꿈 문자 없음) |
--- client/views/index.js
+++ client/views/index.js
... | ... | @@ -6,7 +6,9 @@ |
6 | 6 |
import { createApp } from 'vue'; |
7 | 7 |
import AppRouter from './pages/AppRouter.js'; |
8 | 8 |
import App from './pages/App.vue'; |
9 |
+import { createPinia } from 'pinia'; |
|
9 | 10 |
|
10 |
-const vue = createApp(App).use(AppRouter).mount('#root'); |
|
11 |
- |
|
12 |
- |
|
11 |
+createApp(App) |
|
12 |
+ .use(createPinia()) |
|
13 |
+ .use(AppRouter) |
|
14 |
+ .mount('#root');(파일 끝에 줄바꿈 문자 없음) |
--- client/views/layout/Header.vue
+++ client/views/layout/Header.vue
... | ... | @@ -10,12 +10,6 @@ |
10 | 10 |
<i class="bi bi-list toggle-sidebar-btn" @click="toggleSidebar"></i> |
11 | 11 |
</div><!-- End Logo --> |
12 | 12 |
|
13 |
-<div class="search-bar"> |
|
14 |
- <form class="search-form d-flex align-items-center" method="POST" action="#"> |
|
15 |
- <input type="text" name="query" placeholder="Search" title="Enter search keyword"> |
|
16 |
- <button type="submit" title="Search"><i class="bi bi-search"></i></button> |
|
17 |
- </form> |
|
18 |
-</div><!-- End Search Bar --> |
|
19 | 13 |
|
20 | 14 |
<nav class="header-nav ms-auto"> |
21 | 15 |
<ul class="d-flex align-items-center"> |
... | ... | @@ -170,14 +164,11 @@ |
170 | 164 |
<li class="nav-item dropdown pe-3"> |
171 | 165 |
|
172 | 166 |
<a class="nav-link nav-profile d-flex align-items-center pe-0" href="#" data-bs-toggle="dropdown"> |
173 |
- <span class="d-none d-md-block dropdown-toggle ps-2">K. Anderson</span> |
|
167 |
+ <span class="d-none d-md-block dropdown-toggle ps-2">{{ userName }}</span> |
|
174 | 168 |
</a><!-- End Profile Iamge Icon --> |
175 | 169 |
|
176 | 170 |
<ul class="dropdown-menu dropdown-menu-end dropdown-menu-arrow profile"> |
177 |
- <li class="dropdown-header"> |
|
178 |
- <h6>Kevin Anderson</h6> |
|
179 |
- <span>Web Designer</span> |
|
180 |
- </li> |
|
171 |
+ |
|
181 | 172 |
<li> |
182 | 173 |
<hr class="dropdown-divider"> |
183 | 174 |
</li> |
... | ... | @@ -233,9 +224,7 @@ |
233 | 224 |
name: "ProfileImage", |
234 | 225 |
data() { |
235 | 226 |
return { |
236 |
- messages1: "/client/resources/img/messages-1.png", // 경로를 Vue 프로젝트 구조에 맞게 설정 |
|
237 |
- messages2: "/client/resources/img/messages-2.png", // 경로를 Vue 프로젝트 구조에 맞게 설정 |
|
238 |
- messages3: "/client/resources/img/messages-3.png", // 경로를 Vue 프로젝트 구조에 맞게 설정 |
|
227 |
+ userName: '', |
|
239 | 228 |
logo: "/client/resources/img/logo_t.png", // 경로를 Vue 프로젝트 구조에 맞게 설정 |
240 | 229 |
}; |
241 | 230 |
}, |
--- client/views/layout/Menu.vue
... | ... | @@ -1,29 +0,0 @@ |
1 | -<template> | |
2 | - <div> | |
3 | - 메뉴 : | |
4 | - <router-link to="/"><span>Main</span></router-link> | |
5 | - , | |
6 | - <router-link to="/main2"><span>Main2</span></router-link> | |
7 | - </div> | |
8 | -</template> | |
9 | - | |
10 | -<script> | |
11 | -export default { | |
12 | - data () { | |
13 | - return { | |
14 | - } | |
15 | - }, | |
16 | - methods: { | |
17 | - | |
18 | - }, | |
19 | - watch: { | |
20 | - | |
21 | - }, | |
22 | - computed: { | |
23 | - | |
24 | - }, | |
25 | - mounted() { | |
26 | - console.log('Menu mounted'); | |
27 | - } | |
28 | -} | |
29 | -</script>(파일 끝에 줄바꿈 문자 없음) |
--- client/views/layout/SideBar.vue
+++ client/views/layout/SideBar.vue
... | ... | @@ -32,14 +32,23 @@ |
32 | 32 |
|
33 | 33 |
</ul> |
34 | 34 |
</li> |
35 |
- <li class="nav-item"> |
|
36 |
- |
|
37 |
- </li><!-- End F.A.Q Page Nav --> |
|
38 |
- |
|
39 |
- <li class="nav-item"> |
|
40 |
- <router-link to="/ProjectList" class="nav-link " active-class="active"><i class="bi bi-journal-text"></i> |
|
41 |
- <span>프로젝트관리</span></router-link> |
|
42 |
- </li><!-- End Contact Page Nav --> |
|
35 |
+ <li class="nav-item"> |
|
36 |
+ <a class="nav-link collapsed" data-bs-target="#components-nav" data-bs-toggle="collapse" href="#"> |
|
37 |
+ <i class="bi bi-journal-text"></i> |
|
38 |
+ <span>프로젝트관리</span><i class="bi bi-chevron-down ms-auto"></i> |
|
39 |
+ </a> |
|
40 |
+ <ul id="components-nav" class="nav-content collapse " data-bs-parent="#sidebar-nav"> |
|
41 |
+ <li> |
|
42 |
+ <router-link to="/ProjectInsert" class="nav-link " active-class="active"><i class="bi bi-circle"></i><span>프로젝트 등록</span></router-link> |
|
43 |
+ </li> |
|
44 |
+ |
|
45 |
+ <li> |
|
46 |
+ <router-link to="/ProjectList" class="nav-link " active-class="active"><i class="bi bi-journal-text"></i> |
|
47 |
+ <span>프로젝트 내역</span></router-link> |
|
48 |
+ </li> |
|
49 |
+ |
|
50 |
+ </ul> |
|
51 |
+ </li> |
|
43 | 52 |
|
44 | 53 |
<li class="nav-item"> |
45 | 54 |
<router-link to="/NoticeList" class="nav-link " active-class="active"><i class="bi bi-journal-text"></i> |
--- client/views/pages/AppRouter.js
+++ client/views/pages/AppRouter.js
... | ... | @@ -1,6 +1,9 @@ |
1 | 1 |
import { createWebHistory, createRouter } from "vue-router"; |
2 | 2 |
|
3 | 3 |
import Main from '../pages/main/Main.vue'; |
4 |
+import Login from '../pages/User/Login.vue'; |
|
5 |
+import Join from '../pages/User/Join.vue'; |
|
6 |
+ |
|
4 | 7 |
import Main2 from '../pages/main/Main2.vue'; |
5 | 8 |
|
6 | 9 |
import HomeView from "../pages/HomeView.vue"; |
... | ... | @@ -11,6 +14,7 @@ |
11 | 14 |
import HyugaList from '../pages/Employee/HyugaList.vue'; |
12 | 15 |
import HyugaInsert from '../pages/Employee/HyugaInsert.vue'; |
13 | 16 |
import ProjectList from '../pages/Employee/ProjectList.vue'; |
17 |
+import ProjectInsert from '../pages/Employee/ProjectInsert.vue'; |
|
14 | 18 |
// 관리자 |
15 | 19 |
import DeptList from '../pages/Manager/DeptList.vue'; |
16 | 20 |
import EmployeeList from '../pages/Manager/EmployeeList.vue'; |
... | ... | @@ -20,10 +24,13 @@ |
20 | 24 |
const routes = [ |
21 | 25 |
/* 메인화면 */ |
22 | 26 |
{ path: '/', name: '/', component: Main}, |
23 |
- { path: '/main2.page', name: '/main2', component: Main2}, |
|
27 |
+ { path: '/Login', name: 'Login', component: Login}, |
|
28 |
+ { path: '/Join', name: 'Join', component: Join}, |
|
29 |
+ |
|
24 | 30 |
{ path: '/ChuljangList', name: 'ChuljangList', component: ChuljangList }, |
25 | 31 |
{ path: '/HyugaList', name: 'HyugaList', component: HyugaList }, |
26 | 32 |
{ path: '/HyugaInsert', name: 'HyugaInsert', component: HyugaInsert }, |
33 |
+ { path: '/ProjectInsert', name: 'ProjectInsert', component: ProjectInsert }, |
|
27 | 34 |
{ path: '/ProjectList', name: 'ProjectList', component: ProjectList }, |
28 | 35 |
{ path: '/DeptList', name: 'DeptList', component: DeptList }, |
29 | 36 |
{ path: '/EmployeeList', name: 'EmployeeList', component: EmployeeList }, |
--- client/views/pages/Employee/ChuljangList.vue
+++ client/views/pages/Employee/ChuljangList.vue
... | ... | @@ -1,54 +1,158 @@ |
1 | 1 |
<template> |
2 |
- <div class="pagetitle"> |
|
3 |
- <h1>출장관리</h1> |
|
4 |
- |
|
5 |
- </div><!-- End Page Title --> |
|
6 |
- <section class="section"> |
|
7 |
- <div class="row"> |
|
8 |
- <div class="col-lg-12"> |
|
2 |
+ <div class="pagetitle"> |
|
3 |
+ <h1>출장내역</h1> |
|
4 |
+ </div> |
|
5 |
+ <!-- End Page Title --> |
|
6 |
+ <section class="section"> |
|
7 |
+ <div class="row"> |
|
9 | 8 |
|
10 |
- <div class="card"> |
|
11 |
- <div class="card-body"> |
|
12 |
- <h5 class="card-title">출장관리</h5> |
|
13 |
- <p></p> |
|
14 | 9 |
|
15 |
- <!-- Table with stripped rows --> |
|
16 |
- <Table :rows="tableData" /> |
|
17 |
- <!-- End Table with stripped rows --> |
|
10 |
+ <div class="col-lg-12"> |
|
11 |
+ <div class="card"> |
|
12 |
+ <div class="card-body"> |
|
13 |
+ <h5 class="card-title">출장내역</h5> |
|
14 |
+ <div class="d-flex pb-3 justify-content-between "> |
|
15 |
+ |
|
16 |
+ <div class="datatable-search d-flex gap-1 "> |
|
17 |
+ <div class="col-xxl-5 col-md-3"> |
|
18 |
+ <select class="form-select " v-model="selectedYear"> |
|
19 |
+ <option value="">연도</option> |
|
20 |
+ <option v-for="year in years" :key="year" :value="year">{{ year }}</option> |
|
21 |
+ </select> |
|
22 |
+ </div> |
|
23 |
+ <div class="col-xxl-5 col-md-3"> |
|
24 |
+ <select class="form-select" v-model="selectedMonth"> |
|
25 |
+ <option value="">월</option> |
|
26 |
+ <option v-for="month in months" :key="month" :value="month">{{ month }}</option> |
|
27 |
+ </select> |
|
28 |
+ </div> |
|
29 |
+ <button type="button" class="btn btn-outline-secondary col-xxl-5 col-xl-3" |
|
30 |
+ @click="filterData">조회</button> |
|
31 |
+ |
|
32 |
+ </div> |
|
33 |
+ <div class="d-flex justify-content-end "> |
|
34 |
+ <button type="button" class="btn btn-outline-secondary" @click="registerLeave"> |
|
35 |
+ 등록 |
|
36 |
+ </button> |
|
37 |
+ <button type="button" class="btn btn-outline-success" @click="saveChanges"> |
|
38 |
+ 저장 |
|
39 |
+ </button> |
|
40 |
+ <button type="button" class="btn btn-outline-danger" @click="deletePending"> |
|
41 |
+ 삭제 |
|
42 |
+ </button> |
|
43 |
+ </div> |
|
18 | 44 |
|
19 | 45 |
</div> |
20 |
- |
|
21 |
- </div> |
|
46 |
+ <!-- Table --> |
|
47 |
+ <table id="myTable" class="table datatable table-hover"> |
|
48 |
+ <!-- 동적으로 <th> 생성 --> |
|
49 |
+ <thead> |
|
50 |
+ <tr> |
|
51 |
+ <th>No </th> |
|
52 |
+ <th data-type="date" data-format="YYYY/DD/MM">시작일자</th> |
|
53 |
+ <th data-type="date" data-format="YYYY/DD/MM">종료일자</th> |
|
54 |
+ <th>출장지</th> |
|
55 |
+ </tr> |
|
56 |
+ </thead> |
|
57 |
+ <!-- 동적으로 <td> 생성 --> |
|
58 |
+ <tbody> |
|
59 |
+ <tr v-for="(item, index) in ChuljangData" :key="item.startDate + index"> |
|
60 |
+ <td> |
|
61 |
+ <div class="form-check"> |
|
62 |
+ <label class="form-check-label" for="acceptTerms">{{ index + 1 }}</label> |
|
63 |
+ <input v-model="item.acceptTerms" class="form-check-input" type="checkbox" /> |
|
64 |
+ </div> |
|
65 |
+ </td> |
|
66 |
+ <td><input type="date" v-model="item.startDate" /></td> |
|
67 |
+ <td><input type="date" v-model="item.endDate" /></td> |
|
68 |
+ <td><input type="text" v-model="item.where" /></td> |
|
69 |
+</tr> |
|
70 |
+ </tbody> |
|
71 |
+ </table> |
|
22 | 72 |
|
73 |
+ <!-- End Table --> |
|
74 |
+ </div> |
|
23 | 75 |
</div> |
24 | 76 |
</div> |
25 |
- </section> |
|
26 |
- </template> |
|
27 |
- |
|
28 |
- <script> |
|
29 |
- import Table from "../../component/Table.vue"; |
|
30 |
- export default { |
|
77 |
+ </div> |
|
78 |
+ </section> |
|
79 |
+</template> |
|
80 |
+ |
|
81 |
+<script> |
|
82 |
+import { DataTable } from 'simple-datatables' |
|
83 |
+export default { |
|
31 | 84 |
data() { |
32 | 85 |
return { |
33 |
- tableData: [ |
|
34 |
- { name: 'Unity Pugh', extension: '9958', city: 'Curicó', startDate: '2005/02/11', completion: 37 }, |
|
35 |
- { name: 'Zelenia Roman', extension: '7516', city: 'Redwater', startDate: '2012/03/03', completion: 31 }, |
|
36 |
- { name: 'Zelenia Roman', extension: '7516', city: 'Redwater', startDate: '2012/03/03', completion: 31 }, |
|
37 |
- { name: 'Zelenia Roman', extension: '7516', city: 'Redwater', startDate: '2012/03/03', completion: 31 }, |
|
38 |
- { name: 'Zelenia Roman', extension: '7516', city: 'Redwater', startDate: '2012/03/03', completion: 31 }, |
|
39 |
- { name: 'Zelenia Roman', extension: '7516', city: 'Redwater', startDate: '2012/03/03', completion: 31 }, |
|
40 |
- ] |
|
86 |
+ // 데이터 초기화 |
|
87 |
+ years: [2023, 2024, 2025], // 연도 목록 |
|
88 |
+ months: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], // 월 목록 |
|
89 |
+ selectedYear: '', |
|
90 |
+ selectedMonth: '', |
|
91 |
+ ChuljangData: [ |
|
92 |
+ { startDate: '', endDate: '', where: '대구', acceptTerms: false }, |
|
93 |
+ { startDate: '', endDate: '', where: '경산', acceptTerms: false }, |
|
94 |
+ // 더 많은 데이터 추가... |
|
95 |
+ ], |
|
96 |
+ filteredData: [], |
|
41 | 97 |
}; |
42 | 98 |
}, |
43 |
- methods: { |
|
99 |
+ computed: { |
|
100 |
+ |
|
44 | 101 |
}, |
45 |
- components: { |
|
46 |
- Table, |
|
102 |
+ methods: { |
|
103 |
+ |
|
104 |
+ registerLeave() { |
|
105 |
+ console.log("등록 버튼 클릭됨"); |
|
106 |
+ |
|
107 |
+ // Vue의 반응성 문제를 피하기 위해, 새로운 객체를 추가합니다. |
|
108 |
+ this.ChuljangData = [ |
|
109 |
+ ...this.ChuljangData, |
|
110 |
+ { startDate: '', endDate: '', where: '', acceptTerms: false } |
|
111 |
+ ]; |
|
112 |
+ |
|
113 |
+ console.log(this.ChuljangData); // 배열 상태 출력 |
|
114 |
+ }, |
|
115 |
+ saveChanges() { |
|
116 |
+ console.log("저장된 데이터:", this.ChuljangData); |
|
117 |
+ alert("저장되었습니다."); |
|
118 |
+ }, |
|
119 |
+ deletePending() { |
|
120 |
+ // 선택된 항목만 필터링하여 삭제 |
|
121 |
+ const selectedItems = this.ChuljangData.filter(item => item.acceptTerms); |
|
122 |
+ |
|
123 |
+ // 승인된 항목이 없으면 삭제 진행 |
|
124 |
+ if (selectedItems.length > 0) { |
|
125 |
+ this.ChuljangData = this.ChuljangData.filter(item => !item.acceptTerms); |
|
126 |
+ alert(`${selectedItems.length}개의 항목이 삭제되었습니다.`); |
|
127 |
+ } else { |
|
128 |
+ alert("선택된 항목이 없습니다."); |
|
129 |
+ } |
|
130 |
+ }, |
|
131 |
+ // 날짜 필터 적용 |
|
132 |
+ filterData() { |
|
133 |
+ this.filteredData = this.ChuljangData.filter(item => { |
|
134 |
+ const itemYear = new Date(item.startDate).getFullYear(); |
|
135 |
+ const itemMonth = new Date(item.startDate).getMonth() + 1; // 월은 0부터 시작하므로 1을 더해줍니다. |
|
136 |
+ |
|
137 |
+ return ( |
|
138 |
+ (!this.selectedYear || itemYear === parseInt(this.selectedYear)) && |
|
139 |
+ (!this.selectedMonth || itemMonth === parseInt(this.selectedMonth)) |
|
140 |
+ ); |
|
141 |
+ }); |
|
142 |
+ }, |
|
143 |
+ |
|
144 |
+ // 페이지 변경 |
|
145 |
+ changePage(page) { |
|
146 |
+ this.currentPage = page; |
|
147 |
+ }, |
|
148 |
+ }, |
|
149 |
+ mounted() { |
|
150 |
+ |
|
151 |
+ // 처음에는 모든 데이터를 표시 |
|
152 |
+ this.filteredData = this.ChuljangData; |
|
153 |
+ |
|
47 | 154 |
}, |
48 | 155 |
}; |
49 |
- </script> |
|
50 |
- |
|
51 |
- <style scoped> |
|
156 |
+</script> |
|
52 | 157 |
|
53 |
- </style> |
|
54 |
-(파일 끝에 줄바꿈 문자 없음) |
|
158 |
+<style scoped></style> |
--- client/views/pages/Employee/HyugaInsert.vue
+++ client/views/pages/Employee/HyugaInsert.vue
... | ... | @@ -84,6 +84,7 @@ |
84 | 84 |
</template> |
85 | 85 |
|
86 | 86 |
<script> |
87 |
+import { useAuthStore } from '../../stores/authStore'; |
|
87 | 88 |
export default { |
88 | 89 |
data() { |
89 | 90 |
const today = new Date().toISOString().split('T')[0]; |
... | ... | @@ -97,6 +98,13 @@ |
97 | 98 |
reason: "", // 사유 |
98 | 99 |
}; |
99 | 100 |
}, |
101 |
+ computed: { |
|
102 |
+ // Pinia Store의 상태를 가져옵니다. |
|
103 |
+ loginUser() { |
|
104 |
+ const authStore = useAuthStore(); |
|
105 |
+ return authStore.getLoginUser; |
|
106 |
+ }, |
|
107 |
+ }, |
|
100 | 108 |
methods: { |
101 | 109 |
// 폼 검증 메서드 |
102 | 110 |
validateForm() { |
--- client/views/pages/Employee/HyugaList.vue
+++ client/views/pages/Employee/HyugaList.vue
... | ... | @@ -1,25 +1,32 @@ |
1 | 1 |
<template> |
2 | 2 |
<div class="pagetitle"> |
3 |
- <h1>휴가관리</h1> |
|
3 |
+ <h1>휴가내역</h1> |
|
4 | 4 |
</div> |
5 | 5 |
<!-- End Page Title --> |
6 | 6 |
<section class="section"> |
7 | 7 |
<div class="row"> |
8 |
+ <!-- 해당년도 연차 수 --> |
|
8 | 9 |
<!-- 전체 --> |
9 | 10 |
<div class="col-xxl-2 col-md-3"> |
10 |
- <h5 class="card-title"><span>전체</span>12개</h5> |
|
11 |
+ <button type="button" class="btn btn-light mb-2"> |
|
12 |
+ 전체 <span class="badge bg-secondary text-light">12개</span> |
|
13 |
+ </button> |
|
11 | 14 |
</div> |
12 | 15 |
<!-- End 전체 --> |
13 | 16 |
|
14 | 17 |
<!-- 사용 --> |
15 | 18 |
<div class="col-xxl-2 col-md-3"> |
16 |
- <h5 class="card-title"><span>사용</span>1개</h5> |
|
19 |
+ <button type="button" class="btn btn-light mb-2"> |
|
20 |
+ 사용 <span class="badge bg-secondary text-light">1개</span> |
|
21 |
+ </button> |
|
17 | 22 |
</div> |
18 | 23 |
<!-- End 사용 --> |
19 | 24 |
|
20 | 25 |
<!-- 미사용 --> |
21 | 26 |
<div class="col-xxl-2 col-xl-3"> |
22 |
- <h5 class="card-title"><span>미사용</span>1개</h5> |
|
27 |
+ <button type="button" class="btn btn-light mb-2"> |
|
28 |
+ 미사용 <span class="badge bg-secondary text-light">1개</span> |
|
29 |
+ </button> |
|
23 | 30 |
</div> |
24 | 31 |
<!-- End 미사용 --> |
25 | 32 |
|
... | ... | @@ -27,91 +34,64 @@ |
27 | 34 |
<div class="card"> |
28 | 35 |
<div class="card-body"> |
29 | 36 |
<h5 class="card-title">휴가내역</h5> |
30 |
- |
|
37 |
+ <div class="d-flex pb-3 justify-content-between "> |
|
38 |
+ |
|
39 |
+ <div class="datatable-search d-flex gap-1 "> |
|
40 |
+ <div class="col-xxl-5 col-md-3"> |
|
41 |
+ <select class="form-select " v-model="selectedYear"> |
|
42 |
+ <option value="">전체</option> |
|
43 |
+ <option v-for="year in years" :key="year" :value="year">{{ year }}</option> |
|
44 |
+ </select> |
|
45 |
+ </div> |
|
46 |
+ <div class="col-xxl-5 col-md-3"> |
|
47 |
+ <select class="form-select" v-model="selectedMonth"> |
|
48 |
+ <option value="">월</option> |
|
49 |
+ <option v-for="month in months" :key="month" :value="month">{{ month }}</option> |
|
50 |
+ </select> |
|
51 |
+ </div> |
|
52 |
+ <button type="button" class="btn btn-outline-secondary col-xxl-5 col-xl-3" |
|
53 |
+ @click="filterData">조회</button> |
|
54 |
+ |
|
55 |
+ </div> |
|
56 |
+ <div class="d-flex justify-content-end "> |
|
57 |
+ <button type="button" class="btn btn-outline-danger" @click="deletePending"> |
|
58 |
+ 삭제 |
|
59 |
+ </button> |
|
60 |
+ </div> |
|
61 |
+ |
|
62 |
+ </div> |
|
31 | 63 |
<!-- Table --> |
32 |
- <div class="datatable-wrapper datatable-loading no-footer sortable searchable fixed-columns"> |
|
33 |
- |
|
34 |
- |
|
35 |
-<div class="datatable-container"> |
|
36 |
- <div class="d-flex justify-content-end "> |
|
37 |
- <button |
|
38 |
- type="button" |
|
39 |
- class="btn btn-outline-primary" |
|
40 |
- @click="requestApproval" |
|
41 |
- > |
|
42 |
- 승인요청 |
|
43 |
- </button> |
|
44 |
- <button |
|
45 |
- type="button" |
|
46 |
- class="btn btn-outline-secondary" |
|
47 |
- @click="registerLeave" |
|
48 |
- > |
|
49 |
- 등록 |
|
50 |
- </button> |
|
51 |
- <button |
|
52 |
- type="button" |
|
53 |
- class="btn btn-outline-success" |
|
54 |
- @click="saveChanges" |
|
55 |
- > |
|
56 |
- 저장 |
|
57 |
- </button> |
|
58 |
- <button |
|
59 |
- type="button" |
|
60 |
- class="btn btn-outline-danger" |
|
61 |
- @click="deletePending" |
|
62 |
- > |
|
63 |
- 삭제 |
|
64 |
- </button> |
|
65 |
- </div> |
|
66 |
- <table class="table datatable datatable-table"> |
|
67 |
- <!-- 동적으로 <th> 생성 --> |
|
68 |
- <thead> |
|
69 |
- <tr> |
|
70 |
- <th>No</th> |
|
71 |
- <th></th> |
|
72 |
- <th>구분</th> |
|
73 |
- <th>시작일자</th> |
|
74 |
- <th>종료일자</th> |
|
75 |
- <th>사용일</th> |
|
76 |
- <th>사유</th> |
|
77 |
- <th>승인여부</th> |
|
78 |
- </tr> |
|
79 |
- </thead> |
|
80 |
- <!-- 동적으로 <td> 생성 --> |
|
81 |
- <tbody> |
|
82 |
- <tr> |
|
83 |
- <td>{{ index }}</td> |
|
84 |
- <td><input type="checkbox"></td> |
|
85 |
- <td></td> |
|
86 |
- <td></td> |
|
87 |
- <td></td> |
|
88 |
- <td></td> |
|
89 |
- <td></td> |
|
90 |
- <td></td> |
|
91 |
- </tr> |
|
92 |
- </tbody> |
|
93 |
- </table> |
|
94 |
-</div> |
|
95 |
- |
|
96 |
-<div class="datatable-bottom justify-content-center pagination"> |
|
97 |
- |
|
98 |
- <nav class="datatable-pagination"> |
|
99 |
- <ul class="datatable-pagination-list"> |
|
100 |
- <li :class="{ 'datatable-disabled': currentPage === 1 }" @click="changePage(currentPage - 1)"> |
|
101 |
- <button class="datatable-pagination-list-item-link">‹</button> |
|
102 |
- </li> |
|
103 |
- <li v-for="page in totalPages" :key="page" :class="{ 'datatable-active': currentPage === page }"> |
|
104 |
- <button class="datatable-pagination-list-item-link" @click="changePage(page)"> |
|
105 |
- {{ page }} |
|
106 |
- </button> |
|
107 |
- </li> |
|
108 |
- <li :class="{ 'datatable-disabled': currentPage === totalPages }" @click="changePage(currentPage + 1)"> |
|
109 |
- <button class="datatable-pagination-list-item-link">›</button> |
|
110 |
- </li> |
|
111 |
- </ul> |
|
112 |
- </nav> |
|
113 |
-</div> |
|
114 |
-</div> |
|
64 |
+ <table id="myTable" class="table datatable table-hover"> |
|
65 |
+ <!-- 동적으로 <th> 생성 --> |
|
66 |
+ <thead> |
|
67 |
+ <tr> |
|
68 |
+ <th>No</th> |
|
69 |
+ <th>구분</th> |
|
70 |
+ <th data-type="date" data-format="YYYY/DD/MM">시작일자</th> |
|
71 |
+ <th data-type="date" data-format="YYYY/DD/MM">종료일자</th> |
|
72 |
+ <th>사용일</th> |
|
73 |
+ <th>사유</th> |
|
74 |
+ <th>승인여부</th> |
|
75 |
+ </tr> |
|
76 |
+ </thead> |
|
77 |
+ <!-- 동적으로 <td> 생성 --> |
|
78 |
+ <tbody> |
|
79 |
+ <tr v-for="(item, index) in filteredData" :key="index"> |
|
80 |
+ <td> |
|
81 |
+ <div class="form-check"> |
|
82 |
+ <label class="form-check-label" for="acceptTerms">{{ index + 1 }}</label> |
|
83 |
+ <input v-model="item.acceptTerms" class="form-check-input" type="checkbox" /> |
|
84 |
+ </div> |
|
85 |
+ </td> |
|
86 |
+ <td>{{ item.category }}</td> |
|
87 |
+ <td>{{ item.startDate }}</td> |
|
88 |
+ <td>{{ item.endDate }}</td> |
|
89 |
+ <td>{{ item.usedDays }}</td> |
|
90 |
+ <td>{{ item.reason }}</td> |
|
91 |
+ <td>{{ item.approvalStatus ? '승인' : '대기' }}</td> |
|
92 |
+ </tr> |
|
93 |
+ </tbody> |
|
94 |
+ </table> |
|
115 | 95 |
<!-- End Table --> |
116 | 96 |
</div> |
117 | 97 |
</div> |
... | ... | @@ -121,19 +101,75 @@ |
121 | 101 |
</template> |
122 | 102 |
|
123 | 103 |
<script> |
124 |
-import Table from "../../component/Table.vue"; |
|
125 |
- |
|
104 |
+import { DataTable } from 'simple-datatables' |
|
126 | 105 |
export default { |
127 | 106 |
data() { |
128 | 107 |
return { |
108 |
+ // 데이터 초기화 |
|
109 |
+ years: [2023, 2024, 2025], // 연도 목록 |
|
110 |
+ months: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], // 월 목록 |
|
111 |
+ selectedYear: '', |
|
112 |
+ selectedMonth: '', |
|
113 |
+ vacationData: [ |
|
114 |
+ { category: '연차', startDate: '2023-01-01', endDate: '2023-01-03', usedDays: 2, reason: '휴식', approvalStatus: true, acceptTerms: false }, |
|
115 |
+ { category: '병가', startDate: '2024-02-10', endDate: '2024-02-12', usedDays: 2, reason: '병원', approvalStatus: false, acceptTerms: false }, |
|
116 |
+ { category: '병가', startDate: '2025-01-10', endDate: '2024-02-12', usedDays: 2, reason: '병원', approvalStatus: false, acceptTerms: false }, |
|
117 |
+ ], |
|
118 |
+ filteredData: [], |
|
129 | 119 |
}; |
130 | 120 |
}, |
121 |
+ computed: { |
|
122 |
+ }, |
|
131 | 123 |
methods: { |
132 |
- |
|
124 |
+ deletePending() { |
|
125 |
+ // 선택된 항목만 필터링하여 삭제 |
|
126 |
+ const selectedItems = this.vacationData.filter(item => item.acceptTerms); |
|
127 |
+ |
|
128 |
+ // 승인된 항목인지 확인하여 삭제할 수 없으면 경고 |
|
129 |
+ const nonDeletableItems = selectedItems.filter(item => item.approvalStatus === true); |
|
130 |
+ |
|
131 |
+ // 삭제할 수 없는 항목이 있으면 경고 |
|
132 |
+ if (nonDeletableItems.length > 0) { |
|
133 |
+ alert("승인된 건은 삭제할 수 없습니다."); |
|
134 |
+ return; // 승인된 항목이 있으면 삭제를 진행하지 않음 |
|
135 |
+ } |
|
136 |
+ |
|
137 |
+ // 승인된 항목이 없으면 삭제 진행 |
|
138 |
+ if (selectedItems.length > 0) { |
|
139 |
+ this.vacationData = this.vacationData.filter(item => !item.acceptTerms); |
|
140 |
+ alert(`${selectedItems.length}개의 항목이 삭제되었습니다.`); |
|
141 |
+ } else { |
|
142 |
+ alert("선택된 항목이 없습니다."); |
|
143 |
+ } |
|
133 | 144 |
}, |
134 |
- components: { |
|
135 |
- Table, |
|
145 |
+ // 날짜 필터 적용 |
|
146 |
+ filterData() { |
|
147 |
+ // 전체 선택 시 필터링 없이 모든 데이터를 표시 |
|
148 |
+ if (!this.selectedYear && !this.selectedMonth) { |
|
149 |
+ this.filteredData = this.vacationData; |
|
150 |
+ } else { |
|
151 |
+ // 선택된 연도와 월에 맞게 필터링 |
|
152 |
+ this.filteredData = this.vacationData.filter(item => { |
|
153 |
+ const itemYear = new Date(item.startDate).getFullYear(); |
|
154 |
+ const itemMonth = new Date(item.startDate).getMonth() + 1; // 월은 0부터 시작하므로 1을 더해줍니다. |
|
155 |
+ |
|
156 |
+ return ( |
|
157 |
+ (!this.selectedYear || itemYear === parseInt(this.selectedYear)) && |
|
158 |
+ (!this.selectedMonth || itemMonth === parseInt(this.selectedMonth)) |
|
159 |
+ ); |
|
160 |
+ }); |
|
161 |
+ } |
|
136 | 162 |
}, |
163 |
+ |
|
164 |
+ |
|
165 |
+ }, |
|
166 |
+ mounted() { |
|
167 |
+ const currentYear = new Date().getFullYear(); |
|
168 |
+ this.selectedYear = currentYear; |
|
169 |
+ // 처음에는 현재년도 데이터를 표시 |
|
170 |
+ this.filteredData = this.vacationData.filter(item => new Date(item.startDate).getFullYear() === currentYear); |
|
171 |
+ }, |
|
172 |
+ |
|
137 | 173 |
}; |
138 | 174 |
</script> |
139 | 175 |
|
+++ client/views/pages/User/Join.vue
... | ... | @@ -0,0 +1,109 @@ |
1 | +<template> | |
2 | + <div class="container"> | |
3 | + | |
4 | +<section class="section register min-vh-100 d-flex flex-column align-items-center justify-content-center py-4"> | |
5 | + <div class="container"> | |
6 | + <div class="row justify-content-center"> | |
7 | + <div class="col-lg-4 col-md-6 d-flex flex-column align-items-center justify-content-center"> | |
8 | + | |
9 | + <div class="d-flex justify-content-center py-4"> | |
10 | + <a href="index.html" class="logo d-flex align-items-center w-auto"> | |
11 | + <span class="d-none d-lg-block"> <img :src="logo" alt=""></span> | |
12 | + </a> | |
13 | + </div><!-- End Logo --> | |
14 | + | |
15 | + <div class="card mb-3"> | |
16 | + | |
17 | + <div class="card-body"> | |
18 | + | |
19 | + <div class=" pb-2"> | |
20 | + <h5 class="card-title text-center pb-0 fs-4">회원가입</h5> | |
21 | + </div> | |
22 | + | |
23 | + <form class="row g-3 needs-validation " :class="{ 'was-validated': formSubmitted }" @submit.prevent="handleRegister" novalidate> | |
24 | + <div class="col-12"> | |
25 | + <label for="yourName" class="form-label">이름</label> | |
26 | + <input v-model="name" type="text" name="name" class="form-control" id="yourName" required> | |
27 | + <div class="invalid-feedback">이름을 입력해주세요.</div> | |
28 | + </div> | |
29 | + | |
30 | + <div class="col-12"> | |
31 | + <label for="yourUsername" class="form-label">Email</label> | |
32 | + <div class="input-group has-validation"> | |
33 | + <span class="input-group-text" id="inputGroupPrepend">@</span> | |
34 | + <input v-model="email" type="text" name="username" class="form-control" id="yourUsername" required> | |
35 | + <div class="invalid-feedback">회사 이메일을 입력해주세요.</div> | |
36 | + </div> | |
37 | + </div> | |
38 | + | |
39 | + <div class="col-12"> | |
40 | + <label for="yourPassword" class="form-label">비밀번호</label> | |
41 | + <input v-model="password" type="password" name="password" class="form-control" id="yourPassword" required> | |
42 | + <div class="invalid-feedback">비밀번호를 입력해주세요.</div> | |
43 | + </div> | |
44 | + | |
45 | + <div class="col-12"> | |
46 | + <div class="form-check"> | |
47 | + <input v-model="acceptTerms" class="form-check-input" name="terms" type="checkbox" value="" id="acceptTerms" required> | |
48 | + <label class="form-check-label" for="acceptTerms">이용약관에 동의합니다.</label> | |
49 | + <div class="invalid-feedback">이용약관에 동의하셔야 합니다.</div> | |
50 | + </div> | |
51 | + </div> | |
52 | + <div class="col-12"> | |
53 | + <button class="btn btn-primary w-100" type="submit">계정 생성</button> | |
54 | + </div> | |
55 | + <div class="col-12"> | |
56 | + <p class="small mb-0">이미 계정이 있으신가요? <router-link to="Login">로그인</router-link></p> | |
57 | + </div> | |
58 | + </form> | |
59 | + | |
60 | + </div> | |
61 | + </div> | |
62 | + | |
63 | + </div> | |
64 | + </div> | |
65 | + </div> | |
66 | + | |
67 | +</section> | |
68 | + | |
69 | +</div> | |
70 | + </template> | |
71 | + | |
72 | + <script> | |
73 | + export default { | |
74 | + data() { | |
75 | + return { | |
76 | + name: '', | |
77 | + email: '', | |
78 | + password: '', | |
79 | + acceptTerms: false, | |
80 | + formSubmitted: false, | |
81 | + logo: "/client/resources/img/logo_t.png", // 경로를 Vue 프로젝트 구조에 맞게 설정 | |
82 | + }; | |
83 | + }, | |
84 | + methods: { | |
85 | + handleRegister() { | |
86 | + this.formSubmitted = true; | |
87 | + // 이메일과 비밀번호가 빈 값이 아니어야 한다 | |
88 | + if (this.email && this.password && this.name && this.acceptTerms) { | |
89 | + // 로컬 스토리지에 회원가입 정보 저장 | |
90 | + const userData = { | |
91 | + name: this.name, | |
92 | + email: this.email, | |
93 | + password: this.password, | |
94 | + }; | |
95 | + localStorage.setItem("user", JSON.stringify(userData)); // 로컬 스토리지에 데이터 저장 | |
96 | + | |
97 | + // 계정 생성 후 로그인 페이지로 리디렉션 | |
98 | + this.$router.push("/login"); | |
99 | + } else { | |
100 | + } | |
101 | + }, | |
102 | + }, | |
103 | +}; | |
104 | + </script> | |
105 | + | |
106 | + <style scoped> | |
107 | + | |
108 | + </style> | |
109 | + (파일 끝에 줄바꿈 문자 없음) |
+++ client/views/pages/User/Login.vue
... | ... | @@ -0,0 +1,97 @@ |
1 | +<template> | |
2 | + <div class="container"> | |
3 | + | |
4 | +<section class="section register min-vh-100 d-flex flex-column align-items-center justify-content-center py-4"> | |
5 | + <div class="container"> | |
6 | + <div class="row justify-content-center"> | |
7 | + <div class="col-lg-4 col-md-6 d-flex flex-column align-items-center justify-content-center"> | |
8 | + <div class="d-flex justify-content-center py-4"> | |
9 | + <a href="index.html" class="logo d-flex align-items-center w-auto"> | |
10 | + | |
11 | + <span class="d-none d-lg-block"> <img :src="logo" alt=""></span> | |
12 | + </a> | |
13 | + </div><!-- End Logo --> | |
14 | + | |
15 | + <div class="card mb-3"> | |
16 | + | |
17 | + <div class="card-body"> | |
18 | + | |
19 | + <div class=" pb-2"> | |
20 | + <h5 class="card-title text-center pb-0 fs-4">로그인</h5> | |
21 | + </div> | |
22 | + | |
23 | + <form class="row g-3 needs-validation" :class="{ 'was-validated': formSubmitted }" novalidate @submit.prevent="handleLogin"> | |
24 | + | |
25 | + <div class="col-12"> | |
26 | + <label for="yourUsername" class="form-label">E-mail</label> | |
27 | + <div class="input-group has-validation"> | |
28 | + <span class="input-group-text" id="inputGroupPrepend">@</span> | |
29 | + <input v-model="email" type="text" name="username" class="form-control" id="yourUsername" required> | |
30 | + <div class="invalid-feedback">회사 이메일을 입력해주세요.</div> | |
31 | + </div> | |
32 | + </div> | |
33 | + | |
34 | + <div class="col-12"> | |
35 | + <label for="yourPassword" class="form-label">Password</label> | |
36 | + <input v-model="password" type="password" name="password" class="form-control" id="yourPassword" required> | |
37 | + <div class="invalid-feedback">비밀번호를 입력해주세요.</div> | |
38 | + </div> | |
39 | + | |
40 | + <div class="col-12"> | |
41 | + <div class="form-check"> | |
42 | + <input class="form-check-input" type="checkbox" name="remember" value="true" id="rememberMe"> | |
43 | + <label class="form-check-label" for="rememberMe">로그인 유지하기</label> | |
44 | + </div> | |
45 | + </div> | |
46 | + <div class="col-12"> | |
47 | + <button class="btn btn-primary w-100" type="submit">로그인</button> | |
48 | + </div> | |
49 | + <div class="col-12"> | |
50 | + <p class="small mb-0"> <router-link to="Join">회원가입</router-link></p> | |
51 | + </div> | |
52 | + </form> | |
53 | + | |
54 | + </div> | |
55 | + </div> | |
56 | + | |
57 | + | |
58 | + </div> | |
59 | + </div> | |
60 | + </div> | |
61 | + | |
62 | +</section> | |
63 | + | |
64 | +</div> | |
65 | + </template> | |
66 | + | |
67 | + <script> | |
68 | + export default { | |
69 | + data() { | |
70 | + return { | |
71 | + // 임시 로그인 정보 | |
72 | + email: '', | |
73 | + password: '', | |
74 | + validEmail: 'test@takensoft.co.kr', | |
75 | + validPassword: '1234', | |
76 | + validName: '테이큰소프트', | |
77 | + formSubmitted: false, | |
78 | + logo: "/client/resources/img/logo_t.png", // 경로를 Vue 프로젝트 구조에 맞게 설정 | |
79 | + }; | |
80 | + }, | |
81 | + methods: { | |
82 | + handleLogin() { | |
83 | + this.formSubmitted = true; | |
84 | + if (this.email === this.validEmail && this.password === this.validPassword) { | |
85 | + alert('로그인 성공!'); | |
86 | + this.$router.push("/main"); | |
87 | + } else { | |
88 | + } | |
89 | + }, | |
90 | + }, | |
91 | +}; | |
92 | + </script> | |
93 | + | |
94 | + <style scoped> | |
95 | + | |
96 | + </style> | |
97 | + (파일 끝에 줄바꿈 문자 없음) |
+++ client/views/stores/authStore.js
... | ... | @@ -0,0 +1,23 @@ |
1 | +// src/stores/authStore.js | |
2 | +import { defineStore } from 'pinia'; | |
3 | + | |
4 | +export const useAuthStore = defineStore('auth', { | |
5 | + state: () => ({ | |
6 | + loginUser: null, | |
7 | + key: null, | |
8 | + }), | |
9 | + getters: { | |
10 | + // Vuex의 getters를 Pinia의 computed 속성처럼 사용합니다. | |
11 | + getLoginUser: (state) => state.loginUser, | |
12 | + getKey: (state) => state.key, | |
13 | + }, | |
14 | + actions: { | |
15 | + // Vuex의 mutations과 actions을 Pinia에서는 하나의 `actions`로 합칩니다. | |
16 | + setLoginUser(newValue) { | |
17 | + this.loginUser = newValue; | |
18 | + }, | |
19 | + setKey(newValue) { | |
20 | + this.key = newValue; | |
21 | + }, | |
22 | + }, | |
23 | +}); |
--- package-lock.json
+++ package-lock.json
... | ... | @@ -1,5 +1,5 @@ |
1 | 1 |
{ |
2 |
- "name": "node_vue_web_server_framework_v1.0-master", |
|
2 |
+ "name": "calendar", |
|
3 | 3 |
"lockfileVersion": 2, |
4 | 4 |
"requires": true, |
5 | 5 |
"packages": { |
... | ... | @@ -13,8 +13,11 @@ |
13 | 13 |
"file-loader": "6.2.0", |
14 | 14 |
"fs": "0.0.1-security", |
15 | 15 |
"pg": "8.8.0", |
16 |
+ "pinia": "^2.2.0", |
|
17 |
+ "realgrid": "^2.8.8", |
|
18 |
+ "simple-datatables": "^9.2.1", |
|
16 | 19 |
"url-loader": "4.1.1", |
17 |
- "vue": "3.2.40", |
|
20 |
+ "vue": "^3.5.13", |
|
18 | 21 |
"vue-loader": "^17.0.0", |
19 | 22 |
"vue-router": "4.1.5", |
20 | 23 |
"vue-style-loader": "4.1.3", |
... | ... | @@ -244,17 +247,19 @@ |
244 | 247 |
} |
245 | 248 |
}, |
246 | 249 |
"node_modules/@babel/helper-string-parser": { |
247 |
- "version": "7.19.4", |
|
248 |
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", |
|
249 |
- "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", |
|
250 |
+ "version": "7.25.9", |
|
251 |
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", |
|
252 |
+ "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", |
|
253 |
+ "license": "MIT", |
|
250 | 254 |
"engines": { |
251 | 255 |
"node": ">=6.9.0" |
252 | 256 |
} |
253 | 257 |
}, |
254 | 258 |
"node_modules/@babel/helper-validator-identifier": { |
255 |
- "version": "7.19.1", |
|
256 |
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", |
|
257 |
- "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", |
|
259 |
+ "version": "7.25.9", |
|
260 |
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", |
|
261 |
+ "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", |
|
262 |
+ "license": "MIT", |
|
258 | 263 |
"engines": { |
259 | 264 |
"node": ">=6.9.0" |
260 | 265 |
} |
... | ... | @@ -294,9 +299,13 @@ |
294 | 299 |
} |
295 | 300 |
}, |
296 | 301 |
"node_modules/@babel/parser": { |
297 |
- "version": "7.19.4", |
|
298 |
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.4.tgz", |
|
299 |
- "integrity": "sha512-qpVT7gtuOLjWeDTKLkJ6sryqLliBaFpAtGeqw5cs5giLldvh+Ch0plqnUMKoVAUS6ZEueQQiZV+p5pxtPitEsA==", |
|
302 |
+ "version": "7.26.5", |
|
303 |
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.5.tgz", |
|
304 |
+ "integrity": "sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw==", |
|
305 |
+ "license": "MIT", |
|
306 |
+ "dependencies": { |
|
307 |
+ "@babel/types": "^7.26.5" |
|
308 |
+ }, |
|
300 | 309 |
"bin": { |
301 | 310 |
"parser": "bin/babel-parser.js" |
302 | 311 |
}, |
... | ... | @@ -338,13 +347,13 @@ |
338 | 347 |
} |
339 | 348 |
}, |
340 | 349 |
"node_modules/@babel/types": { |
341 |
- "version": "7.19.4", |
|
342 |
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.4.tgz", |
|
343 |
- "integrity": "sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw==", |
|
350 |
+ "version": "7.26.5", |
|
351 |
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.5.tgz", |
|
352 |
+ "integrity": "sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg==", |
|
353 |
+ "license": "MIT", |
|
344 | 354 |
"dependencies": { |
345 |
- "@babel/helper-string-parser": "^7.19.4", |
|
346 |
- "@babel/helper-validator-identifier": "^7.19.1", |
|
347 |
- "to-fast-properties": "^2.0.0" |
|
355 |
+ "@babel/helper-string-parser": "^7.25.9", |
|
356 |
+ "@babel/helper-validator-identifier": "^7.25.9" |
|
348 | 357 |
}, |
349 | 358 |
"engines": { |
350 | 359 |
"node": ">=6.9.0" |
... | ... | @@ -450,111 +459,110 @@ |
450 | 459 |
"integrity": "sha512-BWN3M23gLO2jVG8g/XHIRFWiiV4/GckeFIqbU/C4V3xpoBBWSMk4OZomouN0wCkfQFPqgZikyLr7DOYDysIkkw==" |
451 | 460 |
}, |
452 | 461 |
"node_modules/@vue/compiler-core": { |
453 |
- "version": "3.2.40", |
|
454 |
- "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.40.tgz", |
|
455 |
- "integrity": "sha512-2Dc3Stk0J/VyQ4OUr2yEC53kU28614lZS+bnrCbFSAIftBJ40g/2yQzf4mPBiFuqguMB7hyHaujdgZAQ67kZYA==", |
|
462 |
+ "version": "3.5.13", |
|
463 |
+ "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.13.tgz", |
|
464 |
+ "integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==", |
|
465 |
+ "license": "MIT", |
|
456 | 466 |
"dependencies": { |
457 |
- "@babel/parser": "^7.16.4", |
|
458 |
- "@vue/shared": "3.2.40", |
|
467 |
+ "@babel/parser": "^7.25.3", |
|
468 |
+ "@vue/shared": "3.5.13", |
|
469 |
+ "entities": "^4.5.0", |
|
459 | 470 |
"estree-walker": "^2.0.2", |
460 |
- "source-map": "^0.6.1" |
|
471 |
+ "source-map-js": "^1.2.0" |
|
461 | 472 |
} |
462 | 473 |
}, |
463 | 474 |
"node_modules/@vue/compiler-dom": { |
464 |
- "version": "3.2.40", |
|
465 |
- "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.40.tgz", |
|
466 |
- "integrity": "sha512-OZCNyYVC2LQJy4H7h0o28rtk+4v+HMQygRTpmibGoG9wZyomQiS5otU7qo3Wlq5UfHDw2RFwxb9BJgKjVpjrQw==", |
|
475 |
+ "version": "3.5.13", |
|
476 |
+ "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz", |
|
477 |
+ "integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==", |
|
478 |
+ "license": "MIT", |
|
467 | 479 |
"dependencies": { |
468 |
- "@vue/compiler-core": "3.2.40", |
|
469 |
- "@vue/shared": "3.2.40" |
|
480 |
+ "@vue/compiler-core": "3.5.13", |
|
481 |
+ "@vue/shared": "3.5.13" |
|
470 | 482 |
} |
471 | 483 |
}, |
472 | 484 |
"node_modules/@vue/compiler-sfc": { |
473 |
- "version": "3.2.40", |
|
474 |
- "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.40.tgz", |
|
475 |
- "integrity": "sha512-tzqwniIN1fu1PDHC3CpqY/dPCfN/RN1thpBC+g69kJcrl7mbGiHKNwbA6kJ3XKKy8R6JLKqcpVugqN4HkeBFFg==", |
|
485 |
+ "version": "3.5.13", |
|
486 |
+ "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz", |
|
487 |
+ "integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==", |
|
488 |
+ "license": "MIT", |
|
476 | 489 |
"dependencies": { |
477 |
- "@babel/parser": "^7.16.4", |
|
478 |
- "@vue/compiler-core": "3.2.40", |
|
479 |
- "@vue/compiler-dom": "3.2.40", |
|
480 |
- "@vue/compiler-ssr": "3.2.40", |
|
481 |
- "@vue/reactivity-transform": "3.2.40", |
|
482 |
- "@vue/shared": "3.2.40", |
|
490 |
+ "@babel/parser": "^7.25.3", |
|
491 |
+ "@vue/compiler-core": "3.5.13", |
|
492 |
+ "@vue/compiler-dom": "3.5.13", |
|
493 |
+ "@vue/compiler-ssr": "3.5.13", |
|
494 |
+ "@vue/shared": "3.5.13", |
|
483 | 495 |
"estree-walker": "^2.0.2", |
484 |
- "magic-string": "^0.25.7", |
|
485 |
- "postcss": "^8.1.10", |
|
486 |
- "source-map": "^0.6.1" |
|
496 |
+ "magic-string": "^0.30.11", |
|
497 |
+ "postcss": "^8.4.48", |
|
498 |
+ "source-map-js": "^1.2.0" |
|
487 | 499 |
} |
488 | 500 |
}, |
489 | 501 |
"node_modules/@vue/compiler-ssr": { |
490 |
- "version": "3.2.40", |
|
491 |
- "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.40.tgz", |
|
492 |
- "integrity": "sha512-80cQcgasKjrPPuKcxwuCx7feq+wC6oFl5YaKSee9pV3DNq+6fmCVwEEC3vvkf/E2aI76rIJSOYHsWSEIxK74oQ==", |
|
502 |
+ "version": "3.5.13", |
|
503 |
+ "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz", |
|
504 |
+ "integrity": "sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==", |
|
505 |
+ "license": "MIT", |
|
493 | 506 |
"dependencies": { |
494 |
- "@vue/compiler-dom": "3.2.40", |
|
495 |
- "@vue/shared": "3.2.40" |
|
507 |
+ "@vue/compiler-dom": "3.5.13", |
|
508 |
+ "@vue/shared": "3.5.13" |
|
496 | 509 |
} |
497 | 510 |
}, |
498 | 511 |
"node_modules/@vue/devtools-api": { |
499 |
- "version": "6.4.3", |
|
500 |
- "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.4.3.tgz", |
|
501 |
- "integrity": "sha512-9WCRwdROJvWcHAdyrR7SZMM/qUvllDZnpndHXokThkUsjnJ2xe4/pvsH9FZrxFe22L+JmDKczL79HjLJ7DK9rg==" |
|
512 |
+ "version": "6.6.4", |
|
513 |
+ "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", |
|
514 |
+ "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", |
|
515 |
+ "license": "MIT" |
|
502 | 516 |
}, |
503 | 517 |
"node_modules/@vue/reactivity": { |
504 |
- "version": "3.2.40", |
|
505 |
- "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.40.tgz", |
|
506 |
- "integrity": "sha512-N9qgGLlZmtUBMHF9xDT4EkD9RdXde1Xbveb+niWMXuHVWQP5BzgRmE3SFyUBBcyayG4y1lhoz+lphGRRxxK4RA==", |
|
518 |
+ "version": "3.5.13", |
|
519 |
+ "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.13.tgz", |
|
520 |
+ "integrity": "sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==", |
|
521 |
+ "license": "MIT", |
|
507 | 522 |
"dependencies": { |
508 |
- "@vue/shared": "3.2.40" |
|
509 |
- } |
|
510 |
- }, |
|
511 |
- "node_modules/@vue/reactivity-transform": { |
|
512 |
- "version": "3.2.40", |
|
513 |
- "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.40.tgz", |
|
514 |
- "integrity": "sha512-HQUCVwEaacq6fGEsg2NUuGKIhUveMCjOk8jGHqLXPI2w6zFoPrlQhwWEaINTv5kkZDXKEnCijAp+4gNEHG03yw==", |
|
515 |
- "dependencies": { |
|
516 |
- "@babel/parser": "^7.16.4", |
|
517 |
- "@vue/compiler-core": "3.2.40", |
|
518 |
- "@vue/shared": "3.2.40", |
|
519 |
- "estree-walker": "^2.0.2", |
|
520 |
- "magic-string": "^0.25.7" |
|
523 |
+ "@vue/shared": "3.5.13" |
|
521 | 524 |
} |
522 | 525 |
}, |
523 | 526 |
"node_modules/@vue/runtime-core": { |
524 |
- "version": "3.2.40", |
|
525 |
- "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.40.tgz", |
|
526 |
- "integrity": "sha512-U1+rWf0H8xK8aBUZhnrN97yoZfHbjgw/bGUzfgKPJl69/mXDuSg8CbdBYBn6VVQdR947vWneQBFzdhasyzMUKg==", |
|
527 |
+ "version": "3.5.13", |
|
528 |
+ "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.13.tgz", |
|
529 |
+ "integrity": "sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==", |
|
530 |
+ "license": "MIT", |
|
527 | 531 |
"dependencies": { |
528 |
- "@vue/reactivity": "3.2.40", |
|
529 |
- "@vue/shared": "3.2.40" |
|
532 |
+ "@vue/reactivity": "3.5.13", |
|
533 |
+ "@vue/shared": "3.5.13" |
|
530 | 534 |
} |
531 | 535 |
}, |
532 | 536 |
"node_modules/@vue/runtime-dom": { |
533 |
- "version": "3.2.40", |
|
534 |
- "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.40.tgz", |
|
535 |
- "integrity": "sha512-AO2HMQ+0s2+MCec8hXAhxMgWhFhOPJ/CyRXnmTJ6XIOnJFLrH5Iq3TNwvVcODGR295jy77I6dWPj+wvFoSYaww==", |
|
537 |
+ "version": "3.5.13", |
|
538 |
+ "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz", |
|
539 |
+ "integrity": "sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==", |
|
540 |
+ "license": "MIT", |
|
536 | 541 |
"dependencies": { |
537 |
- "@vue/runtime-core": "3.2.40", |
|
538 |
- "@vue/shared": "3.2.40", |
|
539 |
- "csstype": "^2.6.8" |
|
542 |
+ "@vue/reactivity": "3.5.13", |
|
543 |
+ "@vue/runtime-core": "3.5.13", |
|
544 |
+ "@vue/shared": "3.5.13", |
|
545 |
+ "csstype": "^3.1.3" |
|
540 | 546 |
} |
541 | 547 |
}, |
542 | 548 |
"node_modules/@vue/server-renderer": { |
543 |
- "version": "3.2.40", |
|
544 |
- "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.40.tgz", |
|
545 |
- "integrity": "sha512-gtUcpRwrXOJPJ4qyBpU3EyxQa4EkV8I4f8VrDePcGCPe4O/hd0BPS7v9OgjIQob6Ap8VDz9G+mGTKazE45/95w==", |
|
549 |
+ "version": "3.5.13", |
|
550 |
+ "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.13.tgz", |
|
551 |
+ "integrity": "sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==", |
|
552 |
+ "license": "MIT", |
|
546 | 553 |
"dependencies": { |
547 |
- "@vue/compiler-ssr": "3.2.40", |
|
548 |
- "@vue/shared": "3.2.40" |
|
554 |
+ "@vue/compiler-ssr": "3.5.13", |
|
555 |
+ "@vue/shared": "3.5.13" |
|
549 | 556 |
}, |
550 | 557 |
"peerDependencies": { |
551 |
- "vue": "3.2.40" |
|
558 |
+ "vue": "3.5.13" |
|
552 | 559 |
} |
553 | 560 |
}, |
554 | 561 |
"node_modules/@vue/shared": { |
555 |
- "version": "3.2.40", |
|
556 |
- "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.40.tgz", |
|
557 |
- "integrity": "sha512-0PLQ6RUtZM0vO3teRfzGi4ltLUO5aO+kLgwh4Um3THSR03rpQWLTuRCkuO5A41ITzwdWeKdPHtSARuPkoo5pCQ==" |
|
562 |
+ "version": "3.5.13", |
|
563 |
+ "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.13.tgz", |
|
564 |
+ "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==", |
|
565 |
+ "license": "MIT" |
|
558 | 566 |
}, |
559 | 567 |
"node_modules/@webassemblyjs/ast": { |
560 | 568 |
"version": "1.11.1", |
... | ... | @@ -1230,9 +1238,16 @@ |
1230 | 1238 |
} |
1231 | 1239 |
}, |
1232 | 1240 |
"node_modules/csstype": { |
1233 |
- "version": "2.6.21", |
|
1234 |
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", |
|
1235 |
- "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" |
|
1241 |
+ "version": "3.1.3", |
|
1242 |
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", |
|
1243 |
+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", |
|
1244 |
+ "license": "MIT" |
|
1245 |
+ }, |
|
1246 |
+ "node_modules/dayjs": { |
|
1247 |
+ "version": "1.11.13", |
|
1248 |
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", |
|
1249 |
+ "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", |
|
1250 |
+ "license": "MIT" |
|
1236 | 1251 |
}, |
1237 | 1252 |
"node_modules/debug": { |
1238 | 1253 |
"version": "4.3.4", |
... | ... | @@ -1266,6 +1281,12 @@ |
1266 | 1281 |
"node": ">= 0.8", |
1267 | 1282 |
"npm": "1.2.8000 || >= 1.4.16" |
1268 | 1283 |
} |
1284 |
+ }, |
|
1285 |
+ "node_modules/diff-dom": { |
|
1286 |
+ "version": "5.1.4", |
|
1287 |
+ "resolved": "https://registry.npmjs.org/diff-dom/-/diff-dom-5.1.4.tgz", |
|
1288 |
+ "integrity": "sha512-TSEaVdVGictY1KHg7VpVw2nuM02YKC9C8/qBkGiCnkiAybVbu1zQTMj2/dnVLRO7Z62UsqzHGpXweiOj5/jaZg==", |
|
1289 |
+ "license": "LGPL-3.0" |
|
1269 | 1290 |
}, |
1270 | 1291 |
"node_modules/ee-first": { |
1271 | 1292 |
"version": "1.1.1", |
... | ... | @@ -1303,6 +1324,18 @@ |
1303 | 1324 |
}, |
1304 | 1325 |
"engines": { |
1305 | 1326 |
"node": ">=10.13.0" |
1327 |
+ } |
|
1328 |
+ }, |
|
1329 |
+ "node_modules/entities": { |
|
1330 |
+ "version": "4.5.0", |
|
1331 |
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", |
|
1332 |
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", |
|
1333 |
+ "license": "BSD-2-Clause", |
|
1334 |
+ "engines": { |
|
1335 |
+ "node": ">=0.12" |
|
1336 |
+ }, |
|
1337 |
+ "funding": { |
|
1338 |
+ "url": "https://github.com/fb55/entities?sponsor=1" |
|
1306 | 1339 |
} |
1307 | 1340 |
}, |
1308 | 1341 |
"node_modules/envinfo": { |
... | ... | @@ -1384,7 +1417,8 @@ |
1384 | 1417 |
"node_modules/estree-walker": { |
1385 | 1418 |
"version": "2.0.2", |
1386 | 1419 |
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", |
1387 |
- "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" |
|
1420 |
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", |
|
1421 |
+ "license": "MIT" |
|
1388 | 1422 |
}, |
1389 | 1423 |
"node_modules/etag": { |
1390 | 1424 |
"version": "1.8.1", |
... | ... | @@ -1995,12 +2029,19 @@ |
1995 | 2029 |
} |
1996 | 2030 |
}, |
1997 | 2031 |
"node_modules/magic-string": { |
1998 |
- "version": "0.25.9", |
|
1999 |
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", |
|
2000 |
- "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", |
|
2032 |
+ "version": "0.30.17", |
|
2033 |
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", |
|
2034 |
+ "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", |
|
2035 |
+ "license": "MIT", |
|
2001 | 2036 |
"dependencies": { |
2002 |
- "sourcemap-codec": "^1.4.8" |
|
2037 |
+ "@jridgewell/sourcemap-codec": "^1.5.0" |
|
2003 | 2038 |
} |
2039 |
+ }, |
|
2040 |
+ "node_modules/magic-string/node_modules/@jridgewell/sourcemap-codec": { |
|
2041 |
+ "version": "1.5.0", |
|
2042 |
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", |
|
2043 |
+ "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", |
|
2044 |
+ "license": "MIT" |
|
2004 | 2045 |
}, |
2005 | 2046 |
"node_modules/make-dir": { |
2006 | 2047 |
"version": "2.1.0", |
... | ... | @@ -2103,9 +2144,16 @@ |
2103 | 2144 |
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" |
2104 | 2145 |
}, |
2105 | 2146 |
"node_modules/nanoid": { |
2106 |
- "version": "3.3.4", |
|
2107 |
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", |
|
2108 |
- "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", |
|
2147 |
+ "version": "3.3.8", |
|
2148 |
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", |
|
2149 |
+ "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", |
|
2150 |
+ "funding": [ |
|
2151 |
+ { |
|
2152 |
+ "type": "github", |
|
2153 |
+ "url": "https://github.com/sponsors/ai" |
|
2154 |
+ } |
|
2155 |
+ ], |
|
2156 |
+ "license": "MIT", |
|
2109 | 2157 |
"bin": { |
2110 | 2158 |
"nanoid": "bin/nanoid.cjs" |
2111 | 2159 |
}, |
... | ... | @@ -2322,9 +2370,10 @@ |
2322 | 2370 |
} |
2323 | 2371 |
}, |
2324 | 2372 |
"node_modules/picocolors": { |
2325 |
- "version": "1.0.0", |
|
2326 |
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", |
|
2327 |
- "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" |
|
2373 |
+ "version": "1.1.1", |
|
2374 |
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", |
|
2375 |
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", |
|
2376 |
+ "license": "ISC" |
|
2328 | 2377 |
}, |
2329 | 2378 |
"node_modules/picomatch": { |
2330 | 2379 |
"version": "2.3.1", |
... | ... | @@ -2346,6 +2395,58 @@ |
2346 | 2395 |
"node": ">=6" |
2347 | 2396 |
} |
2348 | 2397 |
}, |
2398 |
+ "node_modules/pinia": { |
|
2399 |
+ "version": "2.2.0", |
|
2400 |
+ "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.2.0.tgz", |
|
2401 |
+ "integrity": "sha512-iPrIh26GMqfpUlMOGyxuDowGmYousTecbTHFwT0xZ1zJvh23oQ+Cj99ZoPQA1TnUPhU6AuRPv6/drkTCJ0VHQA==", |
|
2402 |
+ "license": "MIT", |
|
2403 |
+ "dependencies": { |
|
2404 |
+ "@vue/devtools-api": "^6.6.3", |
|
2405 |
+ "vue-demi": "^0.14.8" |
|
2406 |
+ }, |
|
2407 |
+ "funding": { |
|
2408 |
+ "url": "https://github.com/sponsors/posva" |
|
2409 |
+ }, |
|
2410 |
+ "peerDependencies": { |
|
2411 |
+ "@vue/composition-api": "^1.4.0", |
|
2412 |
+ "typescript": ">=4.4.4", |
|
2413 |
+ "vue": "^2.6.14 || ^3.3.0" |
|
2414 |
+ }, |
|
2415 |
+ "peerDependenciesMeta": { |
|
2416 |
+ "@vue/composition-api": { |
|
2417 |
+ "optional": true |
|
2418 |
+ }, |
|
2419 |
+ "typescript": { |
|
2420 |
+ "optional": true |
|
2421 |
+ } |
|
2422 |
+ } |
|
2423 |
+ }, |
|
2424 |
+ "node_modules/pinia/node_modules/vue-demi": { |
|
2425 |
+ "version": "0.14.10", |
|
2426 |
+ "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", |
|
2427 |
+ "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", |
|
2428 |
+ "hasInstallScript": true, |
|
2429 |
+ "license": "MIT", |
|
2430 |
+ "bin": { |
|
2431 |
+ "vue-demi-fix": "bin/vue-demi-fix.js", |
|
2432 |
+ "vue-demi-switch": "bin/vue-demi-switch.js" |
|
2433 |
+ }, |
|
2434 |
+ "engines": { |
|
2435 |
+ "node": ">=12" |
|
2436 |
+ }, |
|
2437 |
+ "funding": { |
|
2438 |
+ "url": "https://github.com/sponsors/antfu" |
|
2439 |
+ }, |
|
2440 |
+ "peerDependencies": { |
|
2441 |
+ "@vue/composition-api": "^1.0.0-rc.1", |
|
2442 |
+ "vue": "^3.0.0-0 || ^2.6.0" |
|
2443 |
+ }, |
|
2444 |
+ "peerDependenciesMeta": { |
|
2445 |
+ "@vue/composition-api": { |
|
2446 |
+ "optional": true |
|
2447 |
+ } |
|
2448 |
+ } |
|
2449 |
+ }, |
|
2349 | 2450 |
"node_modules/pkg-dir": { |
2350 | 2451 |
"version": "4.2.0", |
2351 | 2452 |
"resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", |
... | ... | @@ -2358,9 +2459,9 @@ |
2358 | 2459 |
} |
2359 | 2460 |
}, |
2360 | 2461 |
"node_modules/postcss": { |
2361 |
- "version": "8.4.17", |
|
2362 |
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.17.tgz", |
|
2363 |
- "integrity": "sha512-UNxNOLQydcOFi41yHNMcKRZ39NeXlr8AxGuZJsdub8vIb12fHzcq37DTU/QtbI6WLxNg2gF9Z+8qtRwTj1UI1Q==", |
|
2462 |
+ "version": "8.5.1", |
|
2463 |
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", |
|
2464 |
+ "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", |
|
2364 | 2465 |
"funding": [ |
2365 | 2466 |
{ |
2366 | 2467 |
"type": "opencollective", |
... | ... | @@ -2369,12 +2470,17 @@ |
2369 | 2470 |
{ |
2370 | 2471 |
"type": "tidelift", |
2371 | 2472 |
"url": "https://tidelift.com/funding/github/npm/postcss" |
2473 |
+ }, |
|
2474 |
+ { |
|
2475 |
+ "type": "github", |
|
2476 |
+ "url": "https://github.com/sponsors/ai" |
|
2372 | 2477 |
} |
2373 | 2478 |
], |
2479 |
+ "license": "MIT", |
|
2374 | 2480 |
"dependencies": { |
2375 |
- "nanoid": "^3.3.4", |
|
2376 |
- "picocolors": "^1.0.0", |
|
2377 |
- "source-map-js": "^1.0.2" |
|
2481 |
+ "nanoid": "^3.3.8", |
|
2482 |
+ "picocolors": "^1.1.1", |
|
2483 |
+ "source-map-js": "^1.2.1" |
|
2378 | 2484 |
}, |
2379 | 2485 |
"engines": { |
2380 | 2486 |
"node": "^10 || ^12 || >=14" |
... | ... | @@ -2562,6 +2668,12 @@ |
2562 | 2668 |
"engines": { |
2563 | 2669 |
"node": ">=8.10.0" |
2564 | 2670 |
} |
2671 |
+ }, |
|
2672 |
+ "node_modules/realgrid": { |
|
2673 |
+ "version": "2.8.8", |
|
2674 |
+ "resolved": "https://registry.npmjs.org/realgrid/-/realgrid-2.8.8.tgz", |
|
2675 |
+ "integrity": "sha512-BTICyug9txZIaXZ/t3PujX99ipbJmIaAYbBQCn8cq+IvRHkyUrDwnaxBj7Dc26Qg9WmLiR17mKdl6DOAXeFmgg==", |
|
2676 |
+ "license": "license.txt" |
|
2565 | 2677 |
}, |
2566 | 2678 |
"node_modules/rechoir": { |
2567 | 2679 |
"version": "0.7.1", |
... | ... | @@ -2769,6 +2881,16 @@ |
2769 | 2881 |
"url": "https://github.com/sponsors/ljharb" |
2770 | 2882 |
} |
2771 | 2883 |
}, |
2884 |
+ "node_modules/simple-datatables": { |
|
2885 |
+ "version": "9.2.1", |
|
2886 |
+ "resolved": "https://registry.npmjs.org/simple-datatables/-/simple-datatables-9.2.1.tgz", |
|
2887 |
+ "integrity": "sha512-R+KRyZ4GNQdqj5IoW08OYi9FHqCbndbw+MfdOJDnwOGs6me9+BhbNuj2QHZR/GXQ04TLra43Uj2/Lk1KcLiJRw==", |
|
2888 |
+ "license": "LGPL-3.0", |
|
2889 |
+ "dependencies": { |
|
2890 |
+ "dayjs": "^1.11.10", |
|
2891 |
+ "diff-dom": "^5.1.3" |
|
2892 |
+ } |
|
2893 |
+ }, |
|
2772 | 2894 |
"node_modules/slash": { |
2773 | 2895 |
"version": "2.0.0", |
2774 | 2896 |
"resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", |
... | ... | @@ -2786,9 +2908,10 @@ |
2786 | 2908 |
} |
2787 | 2909 |
}, |
2788 | 2910 |
"node_modules/source-map-js": { |
2789 |
- "version": "1.0.2", |
|
2790 |
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", |
|
2791 |
- "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", |
|
2911 |
+ "version": "1.2.1", |
|
2912 |
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", |
|
2913 |
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", |
|
2914 |
+ "license": "BSD-3-Clause", |
|
2792 | 2915 |
"engines": { |
2793 | 2916 |
"node": ">=0.10.0" |
2794 | 2917 |
} |
... | ... | @@ -2801,11 +2924,6 @@ |
2801 | 2924 |
"buffer-from": "^1.0.0", |
2802 | 2925 |
"source-map": "^0.6.0" |
2803 | 2926 |
} |
2804 |
- }, |
|
2805 |
- "node_modules/sourcemap-codec": { |
|
2806 |
- "version": "1.4.8", |
|
2807 |
- "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", |
|
2808 |
- "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" |
|
2809 | 2927 |
}, |
2810 | 2928 |
"node_modules/split2": { |
2811 | 2929 |
"version": "4.1.0", |
... | ... | @@ -2904,14 +3022,6 @@ |
2904 | 3022 |
"uglify-js": { |
2905 | 3023 |
"optional": true |
2906 | 3024 |
} |
2907 |
- } |
|
2908 |
- }, |
|
2909 |
- "node_modules/to-fast-properties": { |
|
2910 |
- "version": "2.0.0", |
|
2911 |
- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", |
|
2912 |
- "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", |
|
2913 |
- "engines": { |
|
2914 |
- "node": ">=4" |
|
2915 | 3025 |
} |
2916 | 3026 |
}, |
2917 | 3027 |
"node_modules/to-regex-range": { |
... | ... | @@ -3035,15 +3145,24 @@ |
3035 | 3145 |
} |
3036 | 3146 |
}, |
3037 | 3147 |
"node_modules/vue": { |
3038 |
- "version": "3.2.40", |
|
3039 |
- "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.40.tgz", |
|
3040 |
- "integrity": "sha512-1mGHulzUbl2Nk3pfvI5aXYYyJUs1nm4kyvuz38u4xlQkLUn1i2R7nDbI4TufECmY8v1qNBHYy62bCaM+3cHP2A==", |
|
3148 |
+ "version": "3.5.13", |
|
3149 |
+ "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.13.tgz", |
|
3150 |
+ "integrity": "sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==", |
|
3151 |
+ "license": "MIT", |
|
3041 | 3152 |
"dependencies": { |
3042 |
- "@vue/compiler-dom": "3.2.40", |
|
3043 |
- "@vue/compiler-sfc": "3.2.40", |
|
3044 |
- "@vue/runtime-dom": "3.2.40", |
|
3045 |
- "@vue/server-renderer": "3.2.40", |
|
3046 |
- "@vue/shared": "3.2.40" |
|
3153 |
+ "@vue/compiler-dom": "3.5.13", |
|
3154 |
+ "@vue/compiler-sfc": "3.5.13", |
|
3155 |
+ "@vue/runtime-dom": "3.5.13", |
|
3156 |
+ "@vue/server-renderer": "3.5.13", |
|
3157 |
+ "@vue/shared": "3.5.13" |
|
3158 |
+ }, |
|
3159 |
+ "peerDependencies": { |
|
3160 |
+ "typescript": "*" |
|
3161 |
+ }, |
|
3162 |
+ "peerDependenciesMeta": { |
|
3163 |
+ "typescript": { |
|
3164 |
+ "optional": true |
|
3165 |
+ } |
|
3047 | 3166 |
} |
3048 | 3167 |
}, |
3049 | 3168 |
"node_modules/vue-loader": { |
... | ... | @@ -3504,14 +3623,14 @@ |
3504 | 3623 |
} |
3505 | 3624 |
}, |
3506 | 3625 |
"@babel/helper-string-parser": { |
3507 |
- "version": "7.19.4", |
|
3508 |
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", |
|
3509 |
- "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==" |
|
3626 |
+ "version": "7.25.9", |
|
3627 |
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", |
|
3628 |
+ "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==" |
|
3510 | 3629 |
}, |
3511 | 3630 |
"@babel/helper-validator-identifier": { |
3512 |
- "version": "7.19.1", |
|
3513 |
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", |
|
3514 |
- "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==" |
|
3631 |
+ "version": "7.25.9", |
|
3632 |
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", |
|
3633 |
+ "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==" |
|
3515 | 3634 |
}, |
3516 | 3635 |
"@babel/helper-validator-option": { |
3517 | 3636 |
"version": "7.18.6", |
... | ... | @@ -3539,9 +3658,12 @@ |
3539 | 3658 |
} |
3540 | 3659 |
}, |
3541 | 3660 |
"@babel/parser": { |
3542 |
- "version": "7.19.4", |
|
3543 |
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.4.tgz", |
|
3544 |
- "integrity": "sha512-qpVT7gtuOLjWeDTKLkJ6sryqLliBaFpAtGeqw5cs5giLldvh+Ch0plqnUMKoVAUS6ZEueQQiZV+p5pxtPitEsA==" |
|
3661 |
+ "version": "7.26.5", |
|
3662 |
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.5.tgz", |
|
3663 |
+ "integrity": "sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw==", |
|
3664 |
+ "requires": { |
|
3665 |
+ "@babel/types": "^7.26.5" |
|
3666 |
+ } |
|
3545 | 3667 |
}, |
3546 | 3668 |
"@babel/template": { |
3547 | 3669 |
"version": "7.18.10", |
... | ... | @@ -3571,13 +3693,12 @@ |
3571 | 3693 |
} |
3572 | 3694 |
}, |
3573 | 3695 |
"@babel/types": { |
3574 |
- "version": "7.19.4", |
|
3575 |
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.4.tgz", |
|
3576 |
- "integrity": "sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw==", |
|
3696 |
+ "version": "7.26.5", |
|
3697 |
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.5.tgz", |
|
3698 |
+ "integrity": "sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg==", |
|
3577 | 3699 |
"requires": { |
3578 |
- "@babel/helper-string-parser": "^7.19.4", |
|
3579 |
- "@babel/helper-validator-identifier": "^7.19.1", |
|
3580 |
- "to-fast-properties": "^2.0.0" |
|
3700 |
+ "@babel/helper-string-parser": "^7.25.9", |
|
3701 |
+ "@babel/helper-validator-identifier": "^7.25.9" |
|
3581 | 3702 |
} |
3582 | 3703 |
}, |
3583 | 3704 |
"@discoveryjs/json-ext": { |
... | ... | @@ -3668,108 +3789,97 @@ |
3668 | 3789 |
"integrity": "sha512-BWN3M23gLO2jVG8g/XHIRFWiiV4/GckeFIqbU/C4V3xpoBBWSMk4OZomouN0wCkfQFPqgZikyLr7DOYDysIkkw==" |
3669 | 3790 |
}, |
3670 | 3791 |
"@vue/compiler-core": { |
3671 |
- "version": "3.2.40", |
|
3672 |
- "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.40.tgz", |
|
3673 |
- "integrity": "sha512-2Dc3Stk0J/VyQ4OUr2yEC53kU28614lZS+bnrCbFSAIftBJ40g/2yQzf4mPBiFuqguMB7hyHaujdgZAQ67kZYA==", |
|
3792 |
+ "version": "3.5.13", |
|
3793 |
+ "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.13.tgz", |
|
3794 |
+ "integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==", |
|
3674 | 3795 |
"requires": { |
3675 |
- "@babel/parser": "^7.16.4", |
|
3676 |
- "@vue/shared": "3.2.40", |
|
3796 |
+ "@babel/parser": "^7.25.3", |
|
3797 |
+ "@vue/shared": "3.5.13", |
|
3798 |
+ "entities": "^4.5.0", |
|
3677 | 3799 |
"estree-walker": "^2.0.2", |
3678 |
- "source-map": "^0.6.1" |
|
3800 |
+ "source-map-js": "^1.2.0" |
|
3679 | 3801 |
} |
3680 | 3802 |
}, |
3681 | 3803 |
"@vue/compiler-dom": { |
3682 |
- "version": "3.2.40", |
|
3683 |
- "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.40.tgz", |
|
3684 |
- "integrity": "sha512-OZCNyYVC2LQJy4H7h0o28rtk+4v+HMQygRTpmibGoG9wZyomQiS5otU7qo3Wlq5UfHDw2RFwxb9BJgKjVpjrQw==", |
|
3804 |
+ "version": "3.5.13", |
|
3805 |
+ "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz", |
|
3806 |
+ "integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==", |
|
3685 | 3807 |
"requires": { |
3686 |
- "@vue/compiler-core": "3.2.40", |
|
3687 |
- "@vue/shared": "3.2.40" |
|
3808 |
+ "@vue/compiler-core": "3.5.13", |
|
3809 |
+ "@vue/shared": "3.5.13" |
|
3688 | 3810 |
} |
3689 | 3811 |
}, |
3690 | 3812 |
"@vue/compiler-sfc": { |
3691 |
- "version": "3.2.40", |
|
3692 |
- "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.40.tgz", |
|
3693 |
- "integrity": "sha512-tzqwniIN1fu1PDHC3CpqY/dPCfN/RN1thpBC+g69kJcrl7mbGiHKNwbA6kJ3XKKy8R6JLKqcpVugqN4HkeBFFg==", |
|
3813 |
+ "version": "3.5.13", |
|
3814 |
+ "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz", |
|
3815 |
+ "integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==", |
|
3694 | 3816 |
"requires": { |
3695 |
- "@babel/parser": "^7.16.4", |
|
3696 |
- "@vue/compiler-core": "3.2.40", |
|
3697 |
- "@vue/compiler-dom": "3.2.40", |
|
3698 |
- "@vue/compiler-ssr": "3.2.40", |
|
3699 |
- "@vue/reactivity-transform": "3.2.40", |
|
3700 |
- "@vue/shared": "3.2.40", |
|
3817 |
+ "@babel/parser": "^7.25.3", |
|
3818 |
+ "@vue/compiler-core": "3.5.13", |
|
3819 |
+ "@vue/compiler-dom": "3.5.13", |
|
3820 |
+ "@vue/compiler-ssr": "3.5.13", |
|
3821 |
+ "@vue/shared": "3.5.13", |
|
3701 | 3822 |
"estree-walker": "^2.0.2", |
3702 |
- "magic-string": "^0.25.7", |
|
3703 |
- "postcss": "^8.1.10", |
|
3704 |
- "source-map": "^0.6.1" |
|
3823 |
+ "magic-string": "^0.30.11", |
|
3824 |
+ "postcss": "^8.4.48", |
|
3825 |
+ "source-map-js": "^1.2.0" |
|
3705 | 3826 |
} |
3706 | 3827 |
}, |
3707 | 3828 |
"@vue/compiler-ssr": { |
3708 |
- "version": "3.2.40", |
|
3709 |
- "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.40.tgz", |
|
3710 |
- "integrity": "sha512-80cQcgasKjrPPuKcxwuCx7feq+wC6oFl5YaKSee9pV3DNq+6fmCVwEEC3vvkf/E2aI76rIJSOYHsWSEIxK74oQ==", |
|
3829 |
+ "version": "3.5.13", |
|
3830 |
+ "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz", |
|
3831 |
+ "integrity": "sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==", |
|
3711 | 3832 |
"requires": { |
3712 |
- "@vue/compiler-dom": "3.2.40", |
|
3713 |
- "@vue/shared": "3.2.40" |
|
3833 |
+ "@vue/compiler-dom": "3.5.13", |
|
3834 |
+ "@vue/shared": "3.5.13" |
|
3714 | 3835 |
} |
3715 | 3836 |
}, |
3716 | 3837 |
"@vue/devtools-api": { |
3717 |
- "version": "6.4.3", |
|
3718 |
- "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.4.3.tgz", |
|
3719 |
- "integrity": "sha512-9WCRwdROJvWcHAdyrR7SZMM/qUvllDZnpndHXokThkUsjnJ2xe4/pvsH9FZrxFe22L+JmDKczL79HjLJ7DK9rg==" |
|
3838 |
+ "version": "6.6.4", |
|
3839 |
+ "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", |
|
3840 |
+ "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==" |
|
3720 | 3841 |
}, |
3721 | 3842 |
"@vue/reactivity": { |
3722 |
- "version": "3.2.40", |
|
3723 |
- "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.40.tgz", |
|
3724 |
- "integrity": "sha512-N9qgGLlZmtUBMHF9xDT4EkD9RdXde1Xbveb+niWMXuHVWQP5BzgRmE3SFyUBBcyayG4y1lhoz+lphGRRxxK4RA==", |
|
3843 |
+ "version": "3.5.13", |
|
3844 |
+ "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.13.tgz", |
|
3845 |
+ "integrity": "sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==", |
|
3725 | 3846 |
"requires": { |
3726 |
- "@vue/shared": "3.2.40" |
|
3727 |
- } |
|
3728 |
- }, |
|
3729 |
- "@vue/reactivity-transform": { |
|
3730 |
- "version": "3.2.40", |
|
3731 |
- "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.40.tgz", |
|
3732 |
- "integrity": "sha512-HQUCVwEaacq6fGEsg2NUuGKIhUveMCjOk8jGHqLXPI2w6zFoPrlQhwWEaINTv5kkZDXKEnCijAp+4gNEHG03yw==", |
|
3733 |
- "requires": { |
|
3734 |
- "@babel/parser": "^7.16.4", |
|
3735 |
- "@vue/compiler-core": "3.2.40", |
|
3736 |
- "@vue/shared": "3.2.40", |
|
3737 |
- "estree-walker": "^2.0.2", |
|
3738 |
- "magic-string": "^0.25.7" |
|
3847 |
+ "@vue/shared": "3.5.13" |
|
3739 | 3848 |
} |
3740 | 3849 |
}, |
3741 | 3850 |
"@vue/runtime-core": { |
3742 |
- "version": "3.2.40", |
|
3743 |
- "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.40.tgz", |
|
3744 |
- "integrity": "sha512-U1+rWf0H8xK8aBUZhnrN97yoZfHbjgw/bGUzfgKPJl69/mXDuSg8CbdBYBn6VVQdR947vWneQBFzdhasyzMUKg==", |
|
3851 |
+ "version": "3.5.13", |
|
3852 |
+ "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.13.tgz", |
|
3853 |
+ "integrity": "sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==", |
|
3745 | 3854 |
"requires": { |
3746 |
- "@vue/reactivity": "3.2.40", |
|
3747 |
- "@vue/shared": "3.2.40" |
|
3855 |
+ "@vue/reactivity": "3.5.13", |
|
3856 |
+ "@vue/shared": "3.5.13" |
|
3748 | 3857 |
} |
3749 | 3858 |
}, |
3750 | 3859 |
"@vue/runtime-dom": { |
3751 |
- "version": "3.2.40", |
|
3752 |
- "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.40.tgz", |
|
3753 |
- "integrity": "sha512-AO2HMQ+0s2+MCec8hXAhxMgWhFhOPJ/CyRXnmTJ6XIOnJFLrH5Iq3TNwvVcODGR295jy77I6dWPj+wvFoSYaww==", |
|
3860 |
+ "version": "3.5.13", |
|
3861 |
+ "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz", |
|
3862 |
+ "integrity": "sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==", |
|
3754 | 3863 |
"requires": { |
3755 |
- "@vue/runtime-core": "3.2.40", |
|
3756 |
- "@vue/shared": "3.2.40", |
|
3757 |
- "csstype": "^2.6.8" |
|
3864 |
+ "@vue/reactivity": "3.5.13", |
|
3865 |
+ "@vue/runtime-core": "3.5.13", |
|
3866 |
+ "@vue/shared": "3.5.13", |
|
3867 |
+ "csstype": "^3.1.3" |
|
3758 | 3868 |
} |
3759 | 3869 |
}, |
3760 | 3870 |
"@vue/server-renderer": { |
3761 |
- "version": "3.2.40", |
|
3762 |
- "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.40.tgz", |
|
3763 |
- "integrity": "sha512-gtUcpRwrXOJPJ4qyBpU3EyxQa4EkV8I4f8VrDePcGCPe4O/hd0BPS7v9OgjIQob6Ap8VDz9G+mGTKazE45/95w==", |
|
3871 |
+ "version": "3.5.13", |
|
3872 |
+ "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.13.tgz", |
|
3873 |
+ "integrity": "sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==", |
|
3764 | 3874 |
"requires": { |
3765 |
- "@vue/compiler-ssr": "3.2.40", |
|
3766 |
- "@vue/shared": "3.2.40" |
|
3875 |
+ "@vue/compiler-ssr": "3.5.13", |
|
3876 |
+ "@vue/shared": "3.5.13" |
|
3767 | 3877 |
} |
3768 | 3878 |
}, |
3769 | 3879 |
"@vue/shared": { |
3770 |
- "version": "3.2.40", |
|
3771 |
- "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.40.tgz", |
|
3772 |
- "integrity": "sha512-0PLQ6RUtZM0vO3teRfzGi4ltLUO5aO+kLgwh4Um3THSR03rpQWLTuRCkuO5A41ITzwdWeKdPHtSARuPkoo5pCQ==" |
|
3880 |
+ "version": "3.5.13", |
|
3881 |
+ "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.13.tgz", |
|
3882 |
+ "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==" |
|
3773 | 3883 |
}, |
3774 | 3884 |
"@webassemblyjs/ast": { |
3775 | 3885 |
"version": "1.11.1", |
... | ... | @@ -4289,9 +4399,14 @@ |
4289 | 4399 |
"integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" |
4290 | 4400 |
}, |
4291 | 4401 |
"csstype": { |
4292 |
- "version": "2.6.21", |
|
4293 |
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", |
|
4294 |
- "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" |
|
4402 |
+ "version": "3.1.3", |
|
4403 |
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", |
|
4404 |
+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" |
|
4405 |
+ }, |
|
4406 |
+ "dayjs": { |
|
4407 |
+ "version": "1.11.13", |
|
4408 |
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", |
|
4409 |
+ "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" |
|
4295 | 4410 |
}, |
4296 | 4411 |
"debug": { |
4297 | 4412 |
"version": "4.3.4", |
... | ... | @@ -4310,6 +4425,11 @@ |
4310 | 4425 |
"version": "1.2.0", |
4311 | 4426 |
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", |
4312 | 4427 |
"integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" |
4428 |
+ }, |
|
4429 |
+ "diff-dom": { |
|
4430 |
+ "version": "5.1.4", |
|
4431 |
+ "resolved": "https://registry.npmjs.org/diff-dom/-/diff-dom-5.1.4.tgz", |
|
4432 |
+ "integrity": "sha512-TSEaVdVGictY1KHg7VpVw2nuM02YKC9C8/qBkGiCnkiAybVbu1zQTMj2/dnVLRO7Z62UsqzHGpXweiOj5/jaZg==" |
|
4313 | 4433 |
}, |
4314 | 4434 |
"ee-first": { |
4315 | 4435 |
"version": "1.1.1", |
... | ... | @@ -4339,6 +4459,11 @@ |
4339 | 4459 |
"graceful-fs": "^4.2.4", |
4340 | 4460 |
"tapable": "^2.2.0" |
4341 | 4461 |
} |
4462 |
+ }, |
|
4463 |
+ "entities": { |
|
4464 |
+ "version": "4.5.0", |
|
4465 |
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", |
|
4466 |
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" |
|
4342 | 4467 |
}, |
4343 | 4468 |
"envinfo": { |
4344 | 4469 |
"version": "7.8.1", |
... | ... | @@ -4851,11 +4976,18 @@ |
4851 | 4976 |
} |
4852 | 4977 |
}, |
4853 | 4978 |
"magic-string": { |
4854 |
- "version": "0.25.9", |
|
4855 |
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", |
|
4856 |
- "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", |
|
4979 |
+ "version": "0.30.17", |
|
4980 |
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", |
|
4981 |
+ "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", |
|
4857 | 4982 |
"requires": { |
4858 |
- "sourcemap-codec": "^1.4.8" |
|
4983 |
+ "@jridgewell/sourcemap-codec": "^1.5.0" |
|
4984 |
+ }, |
|
4985 |
+ "dependencies": { |
|
4986 |
+ "@jridgewell/sourcemap-codec": { |
|
4987 |
+ "version": "1.5.0", |
|
4988 |
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", |
|
4989 |
+ "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" |
|
4990 |
+ } |
|
4859 | 4991 |
} |
4860 | 4992 |
}, |
4861 | 4993 |
"make-dir": { |
... | ... | @@ -4931,9 +5063,9 @@ |
4931 | 5063 |
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" |
4932 | 5064 |
}, |
4933 | 5065 |
"nanoid": { |
4934 |
- "version": "3.3.4", |
|
4935 |
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", |
|
4936 |
- "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" |
|
5066 |
+ "version": "3.3.8", |
|
5067 |
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", |
|
5068 |
+ "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==" |
|
4937 | 5069 |
}, |
4938 | 5070 |
"negotiator": { |
4939 | 5071 |
"version": "0.6.3", |
... | ... | @@ -5089,9 +5221,9 @@ |
5089 | 5221 |
} |
5090 | 5222 |
}, |
5091 | 5223 |
"picocolors": { |
5092 |
- "version": "1.0.0", |
|
5093 |
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", |
|
5094 |
- "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" |
|
5224 |
+ "version": "1.1.1", |
|
5225 |
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", |
|
5226 |
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" |
|
5095 | 5227 |
}, |
5096 | 5228 |
"picomatch": { |
5097 | 5229 |
"version": "2.3.1", |
... | ... | @@ -5104,6 +5236,23 @@ |
5104 | 5236 |
"resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", |
5105 | 5237 |
"integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" |
5106 | 5238 |
}, |
5239 |
+ "pinia": { |
|
5240 |
+ "version": "2.2.0", |
|
5241 |
+ "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.2.0.tgz", |
|
5242 |
+ "integrity": "sha512-iPrIh26GMqfpUlMOGyxuDowGmYousTecbTHFwT0xZ1zJvh23oQ+Cj99ZoPQA1TnUPhU6AuRPv6/drkTCJ0VHQA==", |
|
5243 |
+ "requires": { |
|
5244 |
+ "@vue/devtools-api": "^6.6.3", |
|
5245 |
+ "vue-demi": "^0.14.8" |
|
5246 |
+ }, |
|
5247 |
+ "dependencies": { |
|
5248 |
+ "vue-demi": { |
|
5249 |
+ "version": "0.14.10", |
|
5250 |
+ "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", |
|
5251 |
+ "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", |
|
5252 |
+ "requires": {} |
|
5253 |
+ } |
|
5254 |
+ } |
|
5255 |
+ }, |
|
5107 | 5256 |
"pkg-dir": { |
5108 | 5257 |
"version": "4.2.0", |
5109 | 5258 |
"resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", |
... | ... | @@ -5113,13 +5262,13 @@ |
5113 | 5262 |
} |
5114 | 5263 |
}, |
5115 | 5264 |
"postcss": { |
5116 |
- "version": "8.4.17", |
|
5117 |
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.17.tgz", |
|
5118 |
- "integrity": "sha512-UNxNOLQydcOFi41yHNMcKRZ39NeXlr8AxGuZJsdub8vIb12fHzcq37DTU/QtbI6WLxNg2gF9Z+8qtRwTj1UI1Q==", |
|
5265 |
+ "version": "8.5.1", |
|
5266 |
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", |
|
5267 |
+ "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", |
|
5119 | 5268 |
"requires": { |
5120 |
- "nanoid": "^3.3.4", |
|
5121 |
- "picocolors": "^1.0.0", |
|
5122 |
- "source-map-js": "^1.0.2" |
|
5269 |
+ "nanoid": "^3.3.8", |
|
5270 |
+ "picocolors": "^1.1.1", |
|
5271 |
+ "source-map-js": "^1.2.1" |
|
5123 | 5272 |
} |
5124 | 5273 |
}, |
5125 | 5274 |
"postcss-modules-extract-imports": { |
... | ... | @@ -5245,6 +5394,11 @@ |
5245 | 5394 |
"requires": { |
5246 | 5395 |
"picomatch": "^2.2.1" |
5247 | 5396 |
} |
5397 |
+ }, |
|
5398 |
+ "realgrid": { |
|
5399 |
+ "version": "2.8.8", |
|
5400 |
+ "resolved": "https://registry.npmjs.org/realgrid/-/realgrid-2.8.8.tgz", |
|
5401 |
+ "integrity": "sha512-BTICyug9txZIaXZ/t3PujX99ipbJmIaAYbBQCn8cq+IvRHkyUrDwnaxBj7Dc26Qg9WmLiR17mKdl6DOAXeFmgg==" |
|
5248 | 5402 |
}, |
5249 | 5403 |
"rechoir": { |
5250 | 5404 |
"version": "0.7.1", |
... | ... | @@ -5399,6 +5553,15 @@ |
5399 | 5553 |
"object-inspect": "^1.9.0" |
5400 | 5554 |
} |
5401 | 5555 |
}, |
5556 |
+ "simple-datatables": { |
|
5557 |
+ "version": "9.2.1", |
|
5558 |
+ "resolved": "https://registry.npmjs.org/simple-datatables/-/simple-datatables-9.2.1.tgz", |
|
5559 |
+ "integrity": "sha512-R+KRyZ4GNQdqj5IoW08OYi9FHqCbndbw+MfdOJDnwOGs6me9+BhbNuj2QHZR/GXQ04TLra43Uj2/Lk1KcLiJRw==", |
|
5560 |
+ "requires": { |
|
5561 |
+ "dayjs": "^1.11.10", |
|
5562 |
+ "diff-dom": "^5.1.3" |
|
5563 |
+ } |
|
5564 |
+ }, |
|
5402 | 5565 |
"slash": { |
5403 | 5566 |
"version": "2.0.0", |
5404 | 5567 |
"resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", |
... | ... | @@ -5410,9 +5573,9 @@ |
5410 | 5573 |
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" |
5411 | 5574 |
}, |
5412 | 5575 |
"source-map-js": { |
5413 |
- "version": "1.0.2", |
|
5414 |
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", |
|
5415 |
- "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" |
|
5576 |
+ "version": "1.2.1", |
|
5577 |
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", |
|
5578 |
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==" |
|
5416 | 5579 |
}, |
5417 | 5580 |
"source-map-support": { |
5418 | 5581 |
"version": "0.5.21", |
... | ... | @@ -5422,11 +5585,6 @@ |
5422 | 5585 |
"buffer-from": "^1.0.0", |
5423 | 5586 |
"source-map": "^0.6.0" |
5424 | 5587 |
} |
5425 |
- }, |
|
5426 |
- "sourcemap-codec": { |
|
5427 |
- "version": "1.4.8", |
|
5428 |
- "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", |
|
5429 |
- "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" |
|
5430 | 5588 |
}, |
5431 | 5589 |
"split2": { |
5432 | 5590 |
"version": "4.1.0", |
... | ... | @@ -5478,11 +5636,6 @@ |
5478 | 5636 |
"serialize-javascript": "^6.0.0", |
5479 | 5637 |
"terser": "^5.14.1" |
5480 | 5638 |
} |
5481 |
- }, |
|
5482 |
- "to-fast-properties": { |
|
5483 |
- "version": "2.0.0", |
|
5484 |
- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", |
|
5485 |
- "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" |
|
5486 | 5639 |
}, |
5487 | 5640 |
"to-regex-range": { |
5488 | 5641 |
"version": "5.0.1", |
... | ... | @@ -5555,15 +5708,15 @@ |
5555 | 5708 |
"integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" |
5556 | 5709 |
}, |
5557 | 5710 |
"vue": { |
5558 |
- "version": "3.2.40", |
|
5559 |
- "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.40.tgz", |
|
5560 |
- "integrity": "sha512-1mGHulzUbl2Nk3pfvI5aXYYyJUs1nm4kyvuz38u4xlQkLUn1i2R7nDbI4TufECmY8v1qNBHYy62bCaM+3cHP2A==", |
|
5711 |
+ "version": "3.5.13", |
|
5712 |
+ "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.13.tgz", |
|
5713 |
+ "integrity": "sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==", |
|
5561 | 5714 |
"requires": { |
5562 |
- "@vue/compiler-dom": "3.2.40", |
|
5563 |
- "@vue/compiler-sfc": "3.2.40", |
|
5564 |
- "@vue/runtime-dom": "3.2.40", |
|
5565 |
- "@vue/server-renderer": "3.2.40", |
|
5566 |
- "@vue/shared": "3.2.40" |
|
5715 |
+ "@vue/compiler-dom": "3.5.13", |
|
5716 |
+ "@vue/compiler-sfc": "3.5.13", |
|
5717 |
+ "@vue/runtime-dom": "3.5.13", |
|
5718 |
+ "@vue/server-renderer": "3.5.13", |
|
5719 |
+ "@vue/shared": "3.5.13" |
|
5567 | 5720 |
} |
5568 | 5721 |
}, |
5569 | 5722 |
"vue-loader": { |
--- package.json
+++ package.json
... | ... | @@ -8,16 +8,17 @@ |
8 | 8 |
"file-loader": "6.2.0", |
9 | 9 |
"fs": "0.0.1-security", |
10 | 10 |
"pg": "8.8.0", |
11 |
+ "pinia": "^2.2.0", |
|
12 |
+ "realgrid": "^2.8.8", |
|
13 |
+ "simple-datatables": "^9.2.1", |
|
11 | 14 |
"url-loader": "4.1.1", |
12 |
- "vue": "3.2.40", |
|
15 |
+ "vue": "^3.5.13", |
|
13 | 16 |
"vue-loader": "^17.0.0", |
14 | 17 |
"vue-router": "4.1.5", |
15 | 18 |
"vue-style-loader": "4.1.3", |
16 | 19 |
"vue3-sfc-loader": "^0.8.4", |
17 | 20 |
"webpack": "5.74.0", |
18 |
- "pinia": "^2.3.0", |
|
19 | 21 |
"webpack-cli": "4.10.0" |
20 |
- |
|
21 | 22 |
}, |
22 | 23 |
"scripts": { |
23 | 24 |
"prod": "set NODE_ENV=production&&node ./server/modules/web/server.js", |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?