@diasro/ucsd-its-frontend 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/dist/CommonRoutes.d.ts +7 -0
- package/dist/UcsdPlugin.d.ts +9 -0
- package/dist/assets/dark_bg.webp +0 -0
- package/dist/assets/light_dock_bg.jpg +0 -0
- package/dist/assets/settings.icns +0 -0
- package/dist/assets/settings.png +0 -0
- package/dist/assets/ucsd-its-frontend.css +1 -0
- package/dist/assets/ucsd_logo.png +0 -0
- package/dist/assets/ucsd_logo_white.png +0 -0
- package/dist/cli.cjs +73 -0
- package/dist/components/TileButton.vue.d.ts +113 -0
- package/dist/components/authorization/Login.vue.d.ts +2 -0
- package/dist/components/authorization/LoginSuccess.vue.d.ts +2 -0
- package/dist/components/authorization/Logout.vue.d.ts +2 -0
- package/dist/components/authorization/Unauthorized.vue.d.ts +2 -0
- package/dist/components/commons/ChangeHistory.vue.d.ts +54 -0
- package/dist/components/commons/ProgressDialog.vue.d.ts +2 -0
- package/dist/composables/auditLog.d.ts +25 -0
- package/dist/composables/layout.d.ts +19 -0
- package/dist/composables/utils/ucsdAppUtils.d.ts +15 -0
- package/dist/index.d.ts +31 -0
- package/dist/layouts/AppLayout.vue.d.ts +2 -0
- package/dist/layouts/DefaultLayout.vue.d.ts +20 -0
- package/dist/layouts/FixedLayout.vue.d.ts +20 -0
- package/dist/layouts/FloatingLayout.vue.d.ts +2 -0
- package/dist/layouts/UcsdFooter.vue.d.ts +2 -0
- package/dist/layouts/UcsdHeader.vue.d.ts +23 -0
- package/dist/layouts/UserPanel.vue.d.ts +2 -0
- package/dist/layouts/menu/FloatMenu.vue.d.ts +2 -0
- package/dist/layouts/menu/RailMenu.vue.d.ts +24 -0
- package/dist/layouts/menu/TopMenu.vue.d.ts +12 -0
- package/dist/main.css +63 -0
- package/dist/stores/its-app.d.ts +336 -0
- package/dist/stores/its-audit.d.ts +184 -0
- package/dist/stores/its-auth.d.ts +169 -0
- package/dist/templates/.env +9 -0
- package/dist/templates/App.vue +17 -0
- package/dist/templates/config/ucsd.config.ts +105 -0
- package/dist/templates/index.html +17 -0
- package/dist/templates/main.ts +6 -0
- package/dist/templates/pages/DashBoard.vue +29 -0
- package/dist/templates/pages/Home.vue +20 -0
- package/dist/templates/pages/admin/AdminPage.vue +19 -0
- package/dist/templates/pages/customer/CustomerHome.vue +19 -0
- package/dist/templates/pages/customer/CustomerSearch.vue +21 -0
- package/dist/templates/pages/customer/SimpleForm.vue +299 -0
- package/dist/templates/pages/invoices/InvoiceHome.vue +19 -0
- package/dist/templates/plugins/index.ts +43 -0
- package/dist/templates/plugins/vuetify.ts +9 -0
- package/dist/templates/router/index.ts +17 -0
- package/dist/templates/router/routes.ts +49 -0
- package/dist/templates/stores/app.ts +74 -0
- package/dist/templates/stores/index.ts +9 -0
- package/dist/templates/styles/README.md +3 -0
- package/dist/templates/styles/settings.scss +10 -0
- package/dist/templates/vite.config.ts +75 -0
- package/dist/types/ApiError.d.ts +6 -0
- package/dist/types/LoginUser.d.ts +12 -0
- package/dist/types/TileRecord.d.ts +41 -0
- package/dist/types/UcsdConfig.d.ts +29 -0
- package/dist/types/audit.d.ts +57 -0
- package/dist/ucsd-its-frontend.js +13251 -0
- package/dist/ucsd-its-frontend.umd.cjs +345 -0
- package/dist/vite.svg +1 -0
- package/package.json +109 -0
- package/src/lib/templates/.env +9 -0
- package/src/lib/templates/App.vue +17 -0
- package/src/lib/templates/config/ucsd.config.ts +105 -0
- package/src/lib/templates/index.html +17 -0
- package/src/lib/templates/main.ts +6 -0
- package/src/lib/templates/pages/DashBoard.vue +29 -0
- package/src/lib/templates/pages/Home.vue +20 -0
- package/src/lib/templates/pages/admin/AdminPage.vue +19 -0
- package/src/lib/templates/pages/customer/CustomerHome.vue +19 -0
- package/src/lib/templates/pages/customer/CustomerSearch.vue +21 -0
- package/src/lib/templates/pages/customer/SimpleForm.vue +299 -0
- package/src/lib/templates/pages/invoices/InvoiceHome.vue +19 -0
- package/src/lib/templates/plugins/index.ts +43 -0
- package/src/lib/templates/plugins/vuetify.ts +9 -0
- package/src/lib/templates/router/index.ts +17 -0
- package/src/lib/templates/router/routes.ts +49 -0
- package/src/lib/templates/stores/app.ts +74 -0
- package/src/lib/templates/stores/index.ts +9 -0
- package/src/lib/templates/styles/README.md +3 -0
- package/src/lib/templates/styles/settings.scss +10 -0
- package/src/lib/templates/vite.config.ts +75 -0
package/README.md
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Router } from "vue-router";
|
|
2
|
+
export declare const CommonRoutes: {
|
|
3
|
+
path: string;
|
|
4
|
+
name: string;
|
|
5
|
+
component: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
6
|
+
}[];
|
|
7
|
+
export declare const registerGlobalGuards: (router: Router) => void;
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.tm-scrollable-div{overflow-y:auto}.old-data{text-decoration:line-through;text-decoration-color:red}.title[data-v-e804ddef]{font-size:14px;font-weight:700}.sub[data-v-e804ddef]{line-height:14px;font-size:12px}
|
|
Binary file
|
|
Binary file
|
package/dist/cli.cjs
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const fs = require("fs");
|
|
4
|
+
const path = require("path");
|
|
5
|
+
|
|
6
|
+
// Helper functions
|
|
7
|
+
const log = (message) => console.log(`[Setup]: ${message}`);
|
|
8
|
+
|
|
9
|
+
const createDirIfNotExists = (dir) => {
|
|
10
|
+
if (!fs.existsSync(dir)) {
|
|
11
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
12
|
+
log(`Created directory: ${dir}`);
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
const copyTemplateFile = (sourcePath, targetPath, overwrite) => {
|
|
17
|
+
if (overwrite || !fs.existsSync(targetPath)) {
|
|
18
|
+
const content = fs.readFileSync(sourcePath, "utf8"); // Read content from the template file
|
|
19
|
+
fs.writeFileSync(targetPath, content, "utf8"); // Write content to the target location
|
|
20
|
+
log(`Created file: ${targetPath}`);
|
|
21
|
+
} else {
|
|
22
|
+
log(`File already exists: ${targetPath}`);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
// Main function to set up files and directories
|
|
27
|
+
const run = () => {
|
|
28
|
+
log("Starting project setup...");
|
|
29
|
+
|
|
30
|
+
// Define directories to create
|
|
31
|
+
const dirs = ["src", "src/styles", "src/pages","src/pages/admin","src/pages/customer","src/pages/invoices","src/components", "src/config", "src/plugins", "src/styles", "src/router","src/stores"];
|
|
32
|
+
|
|
33
|
+
// Define template files to copy and their destinations
|
|
34
|
+
const templatesDir = path.join(__dirname, "templates"); // Template directory (relative to the CLI file)
|
|
35
|
+
const files = [
|
|
36
|
+
{ source: path.join(templatesDir, "config/ucsd.config.ts"), target: path.join(process.cwd(), "src/config/ucsd.config.ts") },
|
|
37
|
+
{ source: path.join(templatesDir, "styles/settings.scss"), target: path.join(process.cwd(), "src/styles/settings.scss") },
|
|
38
|
+
{ source: path.join(templatesDir, "plugins/index.ts"), target: path.join(process.cwd(), "src/plugins/index.ts") },
|
|
39
|
+
{ source: path.join(templatesDir, "plugins/vuetify.ts"), target: path.join(process.cwd(), "src/plugins/vuetify.ts") },
|
|
40
|
+
{ source: path.join(templatesDir, "router/index.ts"), target: path.join(process.cwd(), "src/router/index.ts") },
|
|
41
|
+
{ source: path.join(templatesDir, "router/routes.ts"), target: path.join(process.cwd(), "src/router/routes.ts") },
|
|
42
|
+
{ source: path.join(templatesDir, "stores/app.ts"), target: path.join(process.cwd(), "src/stores/app.ts") },
|
|
43
|
+
{ source: path.join(templatesDir, "stores/index.ts"), target: path.join(process.cwd(), "src/stores/index.ts") },
|
|
44
|
+
{ source: path.join(templatesDir, "pages/Home.vue"), target: path.join(process.cwd(), "src/pages/Home.vue") },
|
|
45
|
+
{ source: path.join(templatesDir, "pages/DashBoard.vue"), target: path.join(process.cwd(), "src/pages/DashBoard.vue") },
|
|
46
|
+
{ source: path.join(templatesDir, "pages/admin/AdminPage.vue"), target: path.join(process.cwd(), "src/pages/admin/AdminPage.vue") },
|
|
47
|
+
{ source: path.join(templatesDir, "pages/customer/CustomerHome.vue"), target: path.join(process.cwd(), "src/pages/customer/CustomerHome.vue") },
|
|
48
|
+
{ source: path.join(templatesDir, "pages/customer/CustomerSearch.vue"), target: path.join(process.cwd(), "src/pages/customer/CustomerSearch.vue") },
|
|
49
|
+
{ source: path.join(templatesDir, "pages/customer/SimpleForm.vue"), target: path.join(process.cwd(), "src/pages/customer/SimpleForm.vue") },
|
|
50
|
+
{ source: path.join(templatesDir, "pages/invoices/InvoiceHome.vue"), target: path.join(process.cwd(), "src/pages/invoices/InvoiceHome.vue") },
|
|
51
|
+
{ source: path.join(templatesDir, ".env"), target: path.join(process.cwd(),"/.env") }
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const overWriteFiles = [
|
|
55
|
+
{ source: path.join(templatesDir, "main.ts"), target: path.join(process.cwd(), "src/main.ts") },
|
|
56
|
+
{ source: path.join(templatesDir, "App.vue"), target: path.join(process.cwd(), "src/App.vue") },
|
|
57
|
+
{ source: path.join(templatesDir, "index.html"), target: path.join(process.cwd(),"/index.html") },
|
|
58
|
+
{ source: path.join(templatesDir, "vite.config.ts"), target: path.join(process.cwd(),"/vite.config.ts") }
|
|
59
|
+
];
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
// Create directories
|
|
63
|
+
dirs.forEach((dir) => createDirIfNotExists(path.join(process.cwd(), dir)));
|
|
64
|
+
|
|
65
|
+
// Copy template files
|
|
66
|
+
files.forEach(({ source, target }) => copyTemplateFile(source, target, false ));
|
|
67
|
+
overWriteFiles.forEach(({ source, target }) => copyTemplateFile(source, target, true));
|
|
68
|
+
|
|
69
|
+
log("Setup completed successfully!");
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
run();
|
|
73
|
+
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { TileRecord } from "../types/TileRecord";
|
|
2
|
+
declare const _sfc_main: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
3
|
+
icon: {
|
|
4
|
+
type: StringConstructor;
|
|
5
|
+
required: true;
|
|
6
|
+
default: string;
|
|
7
|
+
};
|
|
8
|
+
active: {
|
|
9
|
+
type: BooleanConstructor;
|
|
10
|
+
required: false;
|
|
11
|
+
default: boolean;
|
|
12
|
+
};
|
|
13
|
+
badgeColor: {
|
|
14
|
+
type: StringConstructor;
|
|
15
|
+
required: false;
|
|
16
|
+
default: string;
|
|
17
|
+
};
|
|
18
|
+
badgeContent: {
|
|
19
|
+
type: StringConstructor;
|
|
20
|
+
required: false;
|
|
21
|
+
};
|
|
22
|
+
label: {
|
|
23
|
+
type: StringConstructor;
|
|
24
|
+
required: true;
|
|
25
|
+
default: string;
|
|
26
|
+
};
|
|
27
|
+
disabled: {
|
|
28
|
+
type: BooleanConstructor;
|
|
29
|
+
required: false;
|
|
30
|
+
default: boolean;
|
|
31
|
+
};
|
|
32
|
+
link: {
|
|
33
|
+
type: StringConstructor;
|
|
34
|
+
required: true;
|
|
35
|
+
};
|
|
36
|
+
subMenu: {
|
|
37
|
+
type: {
|
|
38
|
+
(arrayLength: number): TileRecord[];
|
|
39
|
+
(...items: TileRecord[]): TileRecord[];
|
|
40
|
+
new (arrayLength: number): TileRecord[];
|
|
41
|
+
new (...items: TileRecord[]): TileRecord[];
|
|
42
|
+
isArray(arg: any): arg is any[];
|
|
43
|
+
readonly prototype: any[];
|
|
44
|
+
from<T>(arrayLike: ArrayLike<T>): T[];
|
|
45
|
+
from<T_1, U>(arrayLike: ArrayLike<T_1>, mapfn: (v: T_1, k: number) => U, thisArg?: any): U[];
|
|
46
|
+
from<T_2>(iterable: Iterable<T_2> | ArrayLike<T_2>): T_2[];
|
|
47
|
+
from<T_3, U_1>(iterable: Iterable<T_3> | ArrayLike<T_3>, mapfn: (v: T_3, k: number) => U_1, thisArg?: any): U_1[];
|
|
48
|
+
of<T_4>(...items: T_4[]): T_4[];
|
|
49
|
+
readonly [Symbol.species]: ArrayConstructor;
|
|
50
|
+
};
|
|
51
|
+
required: false;
|
|
52
|
+
};
|
|
53
|
+
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "linkClicked"[], "linkClicked", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
54
|
+
icon: {
|
|
55
|
+
type: StringConstructor;
|
|
56
|
+
required: true;
|
|
57
|
+
default: string;
|
|
58
|
+
};
|
|
59
|
+
active: {
|
|
60
|
+
type: BooleanConstructor;
|
|
61
|
+
required: false;
|
|
62
|
+
default: boolean;
|
|
63
|
+
};
|
|
64
|
+
badgeColor: {
|
|
65
|
+
type: StringConstructor;
|
|
66
|
+
required: false;
|
|
67
|
+
default: string;
|
|
68
|
+
};
|
|
69
|
+
badgeContent: {
|
|
70
|
+
type: StringConstructor;
|
|
71
|
+
required: false;
|
|
72
|
+
};
|
|
73
|
+
label: {
|
|
74
|
+
type: StringConstructor;
|
|
75
|
+
required: true;
|
|
76
|
+
default: string;
|
|
77
|
+
};
|
|
78
|
+
disabled: {
|
|
79
|
+
type: BooleanConstructor;
|
|
80
|
+
required: false;
|
|
81
|
+
default: boolean;
|
|
82
|
+
};
|
|
83
|
+
link: {
|
|
84
|
+
type: StringConstructor;
|
|
85
|
+
required: true;
|
|
86
|
+
};
|
|
87
|
+
subMenu: {
|
|
88
|
+
type: {
|
|
89
|
+
(arrayLength: number): TileRecord[];
|
|
90
|
+
(...items: TileRecord[]): TileRecord[];
|
|
91
|
+
new (arrayLength: number): TileRecord[];
|
|
92
|
+
new (...items: TileRecord[]): TileRecord[];
|
|
93
|
+
isArray(arg: any): arg is any[];
|
|
94
|
+
readonly prototype: any[];
|
|
95
|
+
from<T>(arrayLike: ArrayLike<T>): T[];
|
|
96
|
+
from<T_1, U>(arrayLike: ArrayLike<T_1>, mapfn: (v: T_1, k: number) => U, thisArg?: any): U[];
|
|
97
|
+
from<T_2>(iterable: Iterable<T_2> | ArrayLike<T_2>): T_2[];
|
|
98
|
+
from<T_3, U_1>(iterable: Iterable<T_3> | ArrayLike<T_3>, mapfn: (v: T_3, k: number) => U_1, thisArg?: any): U_1[];
|
|
99
|
+
of<T_4>(...items: T_4[]): T_4[];
|
|
100
|
+
readonly [Symbol.species]: ArrayConstructor;
|
|
101
|
+
};
|
|
102
|
+
required: false;
|
|
103
|
+
};
|
|
104
|
+
}>> & Readonly<{
|
|
105
|
+
onLinkClicked?: ((...args: any[]) => any) | undefined;
|
|
106
|
+
}>, {
|
|
107
|
+
icon: string;
|
|
108
|
+
active: boolean;
|
|
109
|
+
badgeColor: string;
|
|
110
|
+
label: string;
|
|
111
|
+
disabled: boolean;
|
|
112
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
113
|
+
export default _sfc_main;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
declare const _sfc_main: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
2
|
+
export default _sfc_main;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
declare const _sfc_main: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
2
|
+
export default _sfc_main;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
declare const _sfc_main: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
2
|
+
export default _sfc_main;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
2
|
+
export default _default;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { AuditTimeLine } from "../../types/audit";
|
|
2
|
+
declare const _sfc_main: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
3
|
+
auditTimeLine: {
|
|
4
|
+
type: {
|
|
5
|
+
(arrayLength: number): AuditTimeLine[];
|
|
6
|
+
(...items: AuditTimeLine[]): AuditTimeLine[];
|
|
7
|
+
new (arrayLength: number): AuditTimeLine[];
|
|
8
|
+
new (...items: AuditTimeLine[]): AuditTimeLine[];
|
|
9
|
+
isArray(arg: any): arg is any[];
|
|
10
|
+
readonly prototype: any[];
|
|
11
|
+
from<T>(arrayLike: ArrayLike<T>): T[];
|
|
12
|
+
from<T_1, U>(arrayLike: ArrayLike<T_1>, mapfn: (v: T_1, k: number) => U, thisArg?: any): U[];
|
|
13
|
+
from<T_2>(iterable: Iterable<T_2> | ArrayLike<T_2>): T_2[];
|
|
14
|
+
from<T_3, U_1>(iterable: Iterable<T_3> | ArrayLike<T_3>, mapfn: (v: T_3, k: number) => U_1, thisArg?: any): U_1[];
|
|
15
|
+
of<T_4>(...items: T_4[]): T_4[];
|
|
16
|
+
readonly [Symbol.species]: ArrayConstructor;
|
|
17
|
+
};
|
|
18
|
+
required: true;
|
|
19
|
+
default: string;
|
|
20
|
+
};
|
|
21
|
+
loadingHistory: {
|
|
22
|
+
type: BooleanConstructor;
|
|
23
|
+
required: false;
|
|
24
|
+
default: boolean;
|
|
25
|
+
};
|
|
26
|
+
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
27
|
+
auditTimeLine: {
|
|
28
|
+
type: {
|
|
29
|
+
(arrayLength: number): AuditTimeLine[];
|
|
30
|
+
(...items: AuditTimeLine[]): AuditTimeLine[];
|
|
31
|
+
new (arrayLength: number): AuditTimeLine[];
|
|
32
|
+
new (...items: AuditTimeLine[]): AuditTimeLine[];
|
|
33
|
+
isArray(arg: any): arg is any[];
|
|
34
|
+
readonly prototype: any[];
|
|
35
|
+
from<T>(arrayLike: ArrayLike<T>): T[];
|
|
36
|
+
from<T_1, U>(arrayLike: ArrayLike<T_1>, mapfn: (v: T_1, k: number) => U, thisArg?: any): U[];
|
|
37
|
+
from<T_2>(iterable: Iterable<T_2> | ArrayLike<T_2>): T_2[];
|
|
38
|
+
from<T_3, U_1>(iterable: Iterable<T_3> | ArrayLike<T_3>, mapfn: (v: T_3, k: number) => U_1, thisArg?: any): U_1[];
|
|
39
|
+
of<T_4>(...items: T_4[]): T_4[];
|
|
40
|
+
readonly [Symbol.species]: ArrayConstructor;
|
|
41
|
+
};
|
|
42
|
+
required: true;
|
|
43
|
+
default: string;
|
|
44
|
+
};
|
|
45
|
+
loadingHistory: {
|
|
46
|
+
type: BooleanConstructor;
|
|
47
|
+
required: false;
|
|
48
|
+
default: boolean;
|
|
49
|
+
};
|
|
50
|
+
}>> & Readonly<{}>, {
|
|
51
|
+
auditTimeLine: AuditTimeLine[];
|
|
52
|
+
loadingHistory: boolean;
|
|
53
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
54
|
+
export default _sfc_main;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
declare const _sfc_main: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
2
|
+
export default _sfc_main;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Audit } from "../types/audit";
|
|
2
|
+
import { AuditTimeLine } from "../types/audit";
|
|
3
|
+
/**
|
|
4
|
+
* Hook that provides utility functions to track and commit changes to objects while recording audit logs.
|
|
5
|
+
*
|
|
6
|
+
* Functions:
|
|
7
|
+
* - `trackChanges(data, isNew)`: Tracks the initial state of an object for comparison.
|
|
8
|
+
* If the `isNew` flag is true, it resets the tracked data.
|
|
9
|
+
*
|
|
10
|
+
* - `commitChanges(data, audit, detailKeyIdentifier, actionType, propertyForNew)`: Records changes between the current state
|
|
11
|
+
* and the previously tracked state. It generates audit entries including old and new values, organized based on the action type
|
|
12
|
+
* ("new", "update", or "delete"). It also formats and sends audit data to the application's audit store.
|
|
13
|
+
*
|
|
14
|
+
* - `mapAuditToTimeLine(audits)`: Converts an array of audit data into a formatted timeline of events. Each event includes details
|
|
15
|
+
* like date, time, user information, event type, and associated differences.
|
|
16
|
+
*
|
|
17
|
+
* Usage:
|
|
18
|
+
* Use this hook to handle operations that require tracking changes for audit purposes, formatting audit data,
|
|
19
|
+
* and sending the respective logs to a centralized storage or service.
|
|
20
|
+
*/
|
|
21
|
+
export declare const useAuditLog: () => {
|
|
22
|
+
trackChanges: (data: any, isNew: boolean) => void;
|
|
23
|
+
commitChanges: (data: any, audit: Audit, detailKeyIdentifier: string, actionType: "delete" | "update" | "new", propertyForNew: Array<string>) => void;
|
|
24
|
+
mapAuditToTimeLine: (audits: Audit[]) => AuditTimeLine[];
|
|
25
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { TileRecord } from "../types/TileRecord";
|
|
2
|
+
import { App } from "vue";
|
|
3
|
+
/**
|
|
4
|
+
* useUcsdLayout is a composable function that defines and returns configuration and event mapping for a layout system.
|
|
5
|
+
* It provides objects to configure launcher tiles, toggle dock actions, and event handlers such as theme toggling.
|
|
6
|
+
*
|
|
7
|
+
* @returns {Object} An object containing the following properties:
|
|
8
|
+
* - {Object} eventMap: A mapping of event handlers, such as a function to toggle the current theme.
|
|
9
|
+
* - {TileRecord} launcher: Configuration for the "Launcher" tile, including label, value, icon, button color, and active state.
|
|
10
|
+
* - {TileRecord} toggleDock: Configuration for the "Hide/Show Dock" tile, including label, value, icon, button color, and active state.
|
|
11
|
+
*/
|
|
12
|
+
export declare const useUcsdLayout: () => {
|
|
13
|
+
eventMap: {
|
|
14
|
+
toggleTheme: () => void;
|
|
15
|
+
};
|
|
16
|
+
launcher: TileRecord;
|
|
17
|
+
toggleDock: TileRecord;
|
|
18
|
+
registerLayouts: (app: App<Element>) => void;
|
|
19
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { AxiosError } from "axios";
|
|
2
|
+
export declare const useUcsdAppUtils: () => {
|
|
3
|
+
deepClone: <T>(obj: Object, hash?: WeakMap<object, any>) => Object;
|
|
4
|
+
compareObjects: (obj1: any, obj2: any, path?: string) => any[];
|
|
5
|
+
getLastPath: (str: string) => string | undefined;
|
|
6
|
+
ensure: <T_1>(argument: T_1 | null | undefined, message?: string) => T_1 & {};
|
|
7
|
+
parseDateAndSplit: (date: string) => {
|
|
8
|
+
date: string;
|
|
9
|
+
time: string;
|
|
10
|
+
};
|
|
11
|
+
getTimeStamp: () => string;
|
|
12
|
+
getBgColor: (input: string) => string;
|
|
13
|
+
handleApiError: (error: AxiosError) => string;
|
|
14
|
+
getRandomBase64URLString: (maxLength: number) => string;
|
|
15
|
+
};
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import Login from "./components/authorization/Login.vue";
|
|
2
|
+
import LoginSuccess from "./components/authorization/LoginSuccess.vue";
|
|
3
|
+
import Logout from "./components/authorization/Logout.vue";
|
|
4
|
+
import Unauthorized from "./components/authorization/Unauthorized.vue";
|
|
5
|
+
import TileButton from "./components/TileButton.vue";
|
|
6
|
+
import ChangeHistory from "./components/commons/ChangeHistory.vue";
|
|
7
|
+
import ProgressDialog from "./components/commons/ProgressDialog.vue";
|
|
8
|
+
import UcsdHeader from "./layouts/UcsdHeader.vue";
|
|
9
|
+
import UcsdFooter from "./layouts/UcsdFooter.vue";
|
|
10
|
+
import FixedLayout from "./layouts/FixedLayout.vue";
|
|
11
|
+
import AppLayout from "./layouts/AppLayout.vue";
|
|
12
|
+
import FloatingLayout from "./layouts/FloatingLayout.vue";
|
|
13
|
+
import RailMenu from "./layouts/menu/RailMenu.vue";
|
|
14
|
+
import TopMenu from "./layouts/menu/TopMenu.vue";
|
|
15
|
+
import FloatMenu from "./layouts/menu/FloatMenu.vue";
|
|
16
|
+
import DefaultLayout from "./layouts/DefaultLayout.vue";
|
|
17
|
+
import UserPanel from "./layouts/UserPanel.vue";
|
|
18
|
+
import UcsdPlugin from "./UcsdPlugin";
|
|
19
|
+
export { Login, LoginSuccess, Logout, Unauthorized, TileButton, ProgressDialog, ChangeHistory, UcsdHeader, UcsdFooter, FixedLayout, AppLayout, FloatingLayout, RailMenu, TopMenu, FloatMenu, DefaultLayout, UserPanel, UcsdPlugin };
|
|
20
|
+
export * from "./types/ApiError";
|
|
21
|
+
export * from "./types/audit";
|
|
22
|
+
export * from "./types/LoginUser";
|
|
23
|
+
export * from "./types/UcsdConfig";
|
|
24
|
+
export * from "./types/TileRecord";
|
|
25
|
+
export * from "./CommonRoutes";
|
|
26
|
+
export * from "./composables/utils/ucsdAppUtils";
|
|
27
|
+
export * from "./composables/auditLog";
|
|
28
|
+
export * from "./composables/layout";
|
|
29
|
+
export * from "./stores/its-app";
|
|
30
|
+
export * from "./stores/its-auth";
|
|
31
|
+
export * from "./stores/its-audit";
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
declare const _sfc_main: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
2
|
+
export default _sfc_main;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
declare const _sfc_main: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
2
|
+
pageHeader: {
|
|
3
|
+
type: StringConstructor;
|
|
4
|
+
required: false;
|
|
5
|
+
};
|
|
6
|
+
pageSubHeader: {
|
|
7
|
+
type: StringConstructor;
|
|
8
|
+
required: false;
|
|
9
|
+
};
|
|
10
|
+
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
11
|
+
pageHeader: {
|
|
12
|
+
type: StringConstructor;
|
|
13
|
+
required: false;
|
|
14
|
+
};
|
|
15
|
+
pageSubHeader: {
|
|
16
|
+
type: StringConstructor;
|
|
17
|
+
required: false;
|
|
18
|
+
};
|
|
19
|
+
}>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
20
|
+
export default _sfc_main;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
declare const _sfc_main: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
2
|
+
pageHeader: {
|
|
3
|
+
type: StringConstructor;
|
|
4
|
+
required: false;
|
|
5
|
+
};
|
|
6
|
+
pageSubHeader: {
|
|
7
|
+
type: StringConstructor;
|
|
8
|
+
required: false;
|
|
9
|
+
};
|
|
10
|
+
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
11
|
+
pageHeader: {
|
|
12
|
+
type: StringConstructor;
|
|
13
|
+
required: false;
|
|
14
|
+
};
|
|
15
|
+
pageSubHeader: {
|
|
16
|
+
type: StringConstructor;
|
|
17
|
+
required: false;
|
|
18
|
+
};
|
|
19
|
+
}>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
20
|
+
export default _sfc_main;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
declare const _sfc_main: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
2
|
+
export default _sfc_main;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
declare const _sfc_main: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
2
|
+
export default _sfc_main;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
declare const _sfc_main: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
2
|
+
headerTitle: {
|
|
3
|
+
type: StringConstructor;
|
|
4
|
+
default: any;
|
|
5
|
+
};
|
|
6
|
+
headerSubTitle: {
|
|
7
|
+
type: StringConstructor;
|
|
8
|
+
default: any;
|
|
9
|
+
};
|
|
10
|
+
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
11
|
+
headerTitle: {
|
|
12
|
+
type: StringConstructor;
|
|
13
|
+
default: any;
|
|
14
|
+
};
|
|
15
|
+
headerSubTitle: {
|
|
16
|
+
type: StringConstructor;
|
|
17
|
+
default: any;
|
|
18
|
+
};
|
|
19
|
+
}>> & Readonly<{}>, {
|
|
20
|
+
headerTitle: string;
|
|
21
|
+
headerSubTitle: string;
|
|
22
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
23
|
+
export default _sfc_main;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
declare const _sfc_main: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
2
|
+
export default _sfc_main;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
declare const _sfc_main: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
2
|
+
export default _sfc_main;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
declare const _sfc_main: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
2
|
+
layout: {
|
|
3
|
+
type: StringConstructor;
|
|
4
|
+
required: false;
|
|
5
|
+
};
|
|
6
|
+
toggleNav: {
|
|
7
|
+
type: BooleanConstructor;
|
|
8
|
+
required: false;
|
|
9
|
+
};
|
|
10
|
+
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "linkClicked"[], "linkClicked", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
11
|
+
layout: {
|
|
12
|
+
type: StringConstructor;
|
|
13
|
+
required: false;
|
|
14
|
+
};
|
|
15
|
+
toggleNav: {
|
|
16
|
+
type: BooleanConstructor;
|
|
17
|
+
required: false;
|
|
18
|
+
};
|
|
19
|
+
}>> & Readonly<{
|
|
20
|
+
onLinkClicked?: ((...args: any[]) => any) | undefined;
|
|
21
|
+
}>, {
|
|
22
|
+
toggleNav: boolean;
|
|
23
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
24
|
+
export default _sfc_main;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
declare const _sfc_main: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
2
|
+
activeMenuState: {
|
|
3
|
+
type: ArrayConstructor;
|
|
4
|
+
required: false;
|
|
5
|
+
};
|
|
6
|
+
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
7
|
+
activeMenuState: {
|
|
8
|
+
type: ArrayConstructor;
|
|
9
|
+
required: false;
|
|
10
|
+
};
|
|
11
|
+
}>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
12
|
+
export default _sfc_main;
|
package/dist/main.css
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
.p-dock-list-container {
|
|
2
|
+
padding: 0 !important;
|
|
3
|
+
box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1) !important;
|
|
4
|
+
backdrop-filter: blur(10px) brightness(0.9) !important;
|
|
5
|
+
-webkit-backdrop-filter: blur(10px) brightness(0.9) !important;
|
|
6
|
+
}
|
|
7
|
+
.title {
|
|
8
|
+
font-size: 14px;
|
|
9
|
+
font-weight: bold;
|
|
10
|
+
}
|
|
11
|
+
.light.dock-window {
|
|
12
|
+
width: 100%;
|
|
13
|
+
position: relative;
|
|
14
|
+
background-image: url("https://primefaces.org/cdn/primevue/images/dock/window.jpg");
|
|
15
|
+
background-repeat: no-repeat;
|
|
16
|
+
background-size: cover;
|
|
17
|
+
z-index: 1;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.image-remove-bg {
|
|
21
|
+
mix-blend-mode: multiply; /* Blend the image with the background */
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.dark.dock-window {
|
|
25
|
+
position: relative;
|
|
26
|
+
background-image: url("./assets/dark_bg.webp");
|
|
27
|
+
background-repeat: no-repeat;
|
|
28
|
+
background-size: cover;
|
|
29
|
+
width: 100%;
|
|
30
|
+
height: 450px;
|
|
31
|
+
z-index: 1;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.bottom > .p-dock-list-container {
|
|
35
|
+
height: 50px !important;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.dark.p-dock-list-container {
|
|
39
|
+
background: rgba(255, 255, 255, 0.05) !important;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.light.p-dock-list-container {
|
|
43
|
+
background: rgba(255, 255, 255, 0.5) !important;
|
|
44
|
+
}
|
|
45
|
+
.square-button {
|
|
46
|
+
width: 35px !important; /* Same width and height for a square */
|
|
47
|
+
height: 35px !important;
|
|
48
|
+
border: none !important; /* Remove the default button border */
|
|
49
|
+
border-radius: 10px !important; /* Optional: adjust to make slightly rounded corners */
|
|
50
|
+
align-items: center !important;
|
|
51
|
+
justify-content: center !important;
|
|
52
|
+
}
|
|
53
|
+
.square-button-p {
|
|
54
|
+
width: 50px !important; /* Same width and height for a square */
|
|
55
|
+
height: 50px !important;
|
|
56
|
+
border: none !important; /* Remove the default button border */
|
|
57
|
+
border-radius: 15px !important; /* Optional: adjust to make slightly rounded corners */
|
|
58
|
+
align-items: center !important;
|
|
59
|
+
justify-content: center !important;
|
|
60
|
+
}
|
|
61
|
+
.show-btns {
|
|
62
|
+
color: rgba(255, 255, 255, 1) !important;
|
|
63
|
+
}
|