@quan-erp/base-frontend 1.0.3 → 1.0.5
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 +10 -10
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
# Quan ERP Frontend Base
|
|
1
|
+
# Quan ERP Frontend Base
|
|
2
2
|
|
|
3
|
-
The
|
|
3
|
+
The base of the Quan ERP user interface. This application acts as the master orchestrator, providing the foundational layout, security context, and the dynamic engine required to mount and integrate modular frontend plugins.
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
## 🚀 App
|
|
7
|
+
## 🚀 App Base Lifecycle
|
|
8
8
|
|
|
9
9
|
The application follows a strict bootstrapping sequence to ensure that the environment is secure and all plugins are ready before the user interacts with the UI.
|
|
10
10
|
|
|
@@ -17,13 +17,13 @@ The application follows a strict bootstrapping sequence to ensure that the envir
|
|
|
17
17
|
|
|
18
18
|
## 🛣️ Dynamic Routing Engine
|
|
19
19
|
|
|
20
|
-
The
|
|
20
|
+
The base uses a recursive routing engine (`RouteApp`) to build the final application tree at runtime.
|
|
21
21
|
|
|
22
22
|
### Master Prefix: `/app/*`
|
|
23
23
|
All protected content resides behind the `/app` prefix, which is gated by authentication checks.
|
|
24
24
|
|
|
25
25
|
### Plugin Injection
|
|
26
|
-
Plugins do not define their own routers. Instead, they register `incomingRoutes` into the
|
|
26
|
+
Plugins do not define their own routers. Instead, they register `incomingRoutes` into the base's registry. The base then:
|
|
27
27
|
- Iterates through registered routes.
|
|
28
28
|
- Recursively resolves nested children.
|
|
29
29
|
- Injects them into the main React Router Switch alongside core system pages.
|
|
@@ -32,7 +32,7 @@ Plugins do not define their own routers. Instead, they register `incomingRoutes`
|
|
|
32
32
|
|
|
33
33
|
## 📂 Core Feature Portfolio
|
|
34
34
|
|
|
35
|
-
The
|
|
35
|
+
The base provides several built-in modules that form the backbone of the ERP experience:
|
|
36
36
|
|
|
37
37
|
- **Plugin Marketplace**: Central interface for discovering, installing, and managing plugin lifecycles.
|
|
38
38
|
- **IAM (Identity & Access)**: Comprehensive UI for managing Users, Roles, and granular Permissions.
|
|
@@ -56,7 +56,7 @@ The central clearinghouse for cross-feature integration:
|
|
|
56
56
|
|
|
57
57
|
## 📱 Cross-Platform Architecture
|
|
58
58
|
|
|
59
|
-
The
|
|
59
|
+
The base is designed to be platform-agnostic, detecting the runtime environment via the `Platforms` utility:
|
|
60
60
|
- **Web**: Standard browser-based execution.
|
|
61
61
|
- **Mobile**: Initialized with Capacitor bridges for native hardware access.
|
|
62
62
|
- **Desktop**: Integrated with Electron-specific IPC and window management.
|
|
@@ -65,7 +65,7 @@ The shell is designed to be platform-agnostic, detecting the runtime environment
|
|
|
65
65
|
|
|
66
66
|
## 🛠️ Development & Debugging
|
|
67
67
|
|
|
68
|
-
When running in `DevMode`, the
|
|
68
|
+
When running in `DevMode`, the base injects specialized tools:
|
|
69
69
|
- **API Browser**: Live Swagger/OpenAPI documentation.
|
|
70
70
|
- **Environment Inspector**: Real-time view of injected VITE environment variables.
|
|
71
71
|
- **Native API Tester**: Interface for exercising hardware bridges.
|
|
@@ -73,8 +73,8 @@ When running in `DevMode`, the shell injects specialized tools:
|
|
|
73
73
|
---
|
|
74
74
|
|
|
75
75
|
> [!IMPORTANT]
|
|
76
|
-
> To maintain strict visual and logical isolation, all plugin content rendered within the
|
|
76
|
+
> To maintain strict visual and logical isolation, all plugin content rendered within the base MUST be wrapped in the `Page` component provided by `@quan-erp/shared-ui`.
|
|
77
77
|
|
|
78
78
|
## License
|
|
79
79
|
|
|
80
|
-
[QuarkERP License](./LICENSE.md) — owned by The Paradance, actively maintained and developed by Jian Shang Quan. You may use this package to build Quark ERP plugins. Copying or reuse for any other purpose is not permitted.
|
|
80
|
+
[QuarkERP License](./LICENSE.md) — owned by The Paradance, actively maintained and developed by Jian Shang Quan. You may use this package to build Quark ERP plugins. Copying or reuse for any other purpose is not permitted.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quan-erp/base-frontend",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.5",
|
|
4
4
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "electron.js",
|
|
@@ -49,9 +49,9 @@
|
|
|
49
49
|
"@lexical/react": "^0.39.0",
|
|
50
50
|
"@lexical/rich-text": "^0.39.0",
|
|
51
51
|
"@quan-erp-capacitor-pluigins/background-location": "^1.0.0",
|
|
52
|
-
"@quan-erp/shared-frontend-core": "^1.0.
|
|
53
|
-
"@quan-erp/shared-types": "^1.0.
|
|
54
|
-
"@quan-erp/shared-ui": "^1.0.
|
|
52
|
+
"@quan-erp/shared-frontend-core": "^1.0.5",
|
|
53
|
+
"@quan-erp/shared-types": "^1.0.5",
|
|
54
|
+
"@quan-erp/shared-ui": "^1.0.5",
|
|
55
55
|
"@quan-erp/web-thermal-printer": "^1.0.0",
|
|
56
56
|
"@radix-ui/react-accordion": "^1.2.12",
|
|
57
57
|
"@radix-ui/react-alert-dialog": "^1.1.15",
|
|
@@ -122,9 +122,8 @@
|
|
|
122
122
|
"npm": "^11.11.0",
|
|
123
123
|
"qrcode.react": "^4.2.0",
|
|
124
124
|
"react": "19.2.6",
|
|
125
|
-
"react-dom": "19.2.6",
|
|
126
|
-
"react-router-dom": "^7.9.5",
|
|
127
125
|
"react-day-picker": "^9.11.1",
|
|
126
|
+
"react-dom": "19.2.6",
|
|
128
127
|
"react-hook-form": "^7.66.1",
|
|
129
128
|
"react-is": "19.2.6",
|
|
130
129
|
"react-leaflet": "^5.0.0",
|
|
@@ -132,6 +131,7 @@
|
|
|
132
131
|
"react-photo-view": "^1.2.7",
|
|
133
132
|
"react-qr-barcode-scanner": "^2.1.23",
|
|
134
133
|
"react-resizable-panels": "^3.0.6",
|
|
134
|
+
"react-router-dom": "^7.9.5",
|
|
135
135
|
"react-scan": "^0.5.7",
|
|
136
136
|
"react-syntax-highlighter": "^16.1.0",
|
|
137
137
|
"react-to-print": "^3.2.0",
|