@mixd-id/web-scaffold 0.1.2207220538 → 0.1.2301231313
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/.env +1 -0
- package/index.html +22 -0
- package/package.json +11 -11
- package/postcss.config.js +6 -0
- package/public/images/mixd-logo2.png +0 -0
- package/server.js +122 -0
- package/src/App.vue +17 -0
- package/src/UI.vue +864 -0
- package/src/api/feed.js +29 -0
- package/src/api/inbox/index.js +33 -0
- package/src/api/inbox/message/comment.js +33 -0
- package/src/api/inbox/message/index.js +34 -0
- package/src/api/index.js +7 -0
- package/src/components/Ahref.vue +208 -0
- package/src/components/Alert.vue +162 -0
- package/src/components/Button.vue +236 -0
- package/src/components/ButtonGroup.vue +101 -0
- package/src/components/Carousel.vue +295 -0
- package/src/components/ChatTyping.vue +69 -0
- package/src/components/Checkbox.vue +152 -0
- package/src/components/ContextMenu.vue +191 -0
- package/src/components/CopyToClipboard.vue +59 -0
- package/src/components/Datepicker.vue +312 -0
- package/src/components/Dropdown.vue +192 -0
- package/src/components/ErrorText.vue +36 -0
- package/src/components/Feed.vue +118 -0
- package/src/components/Grid.vue +29 -0
- package/src/components/GridColumn.vue +31 -0
- package/src/components/HTMLEditor.vue +169 -0
- package/src/components/Image.vue +158 -0
- package/src/components/ImageFullScreen.vue +101 -0
- package/src/components/ListItem.vue +147 -0
- package/src/components/ListPage1.vue +422 -0
- package/src/components/ListPage1Filter.vue +188 -0
- package/src/components/ListPage2.vue +459 -0
- package/src/components/Modal.vue +239 -0
- package/src/components/OTPField.vue +126 -0
- package/src/components/Radio.vue +134 -0
- package/src/components/SearchButton.vue +57 -0
- package/src/components/Slider.vue +285 -0
- package/src/components/SplitPane.vue +129 -0
- package/src/components/Switch.vue +89 -0
- package/src/components/TabView.vue +106 -0
- package/src/components/TableView.vue +201 -0
- package/src/components/TableViewHead.vue +159 -0
- package/src/components/Tabs.vue +68 -0
- package/src/components/Textarea.vue +184 -0
- package/src/components/Textbox.vue +188 -0
- package/src/components/Timepicker.vue +108 -0
- package/src/components/Toast.vue +93 -0
- package/src/components/VirtualScroll.vue +215 -0
- package/src/components/VirtualTable.vue +465 -0
- package/src/entry-client.js +27 -0
- package/src/entry-server.js +73 -0
- package/src/helper.js +109 -0
- package/src/helpers.mjs +31 -0
- package/src/index.css +3 -0
- package/src/index.js +89 -0
- package/src/main.js +38 -0
- package/src/pages/Home.vue +3 -0
- package/src/pages/Inbox.vue +129 -0
- package/src/pages/Message.vue +258 -0
- package/src/pages/Playground.vue +237 -0
- package/src/pages/Test.vue +455 -0
- package/src/pages/playground/Ahref.vue +73 -0
- package/src/pages/playground/Alert.vue +80 -0
- package/src/pages/playground/Button.vue +77 -0
- package/src/pages/playground/Carousel.vue +67 -0
- package/src/pages/playground/ContextMenu.vue +77 -0
- package/src/pages/playground/Datepicker.vue +69 -0
- package/src/pages/playground/Dropdown.vue +71 -0
- package/src/pages/playground/Image.vue +67 -0
- package/src/pages/playground/ListItem.vue +109 -0
- package/src/pages/playground/Modal.vue +118 -0
- package/src/pages/playground/Slider.vue +68 -0
- package/src/pages/playground/Switch.vue +57 -0
- package/src/pages/playground/Textarea.vue +78 -0
- package/src/pages/playground/Textbox.vue +80 -0
- package/src/pages/playground/Toast.vue +80 -0
- package/src/pages/playground/components/Preview.vue +15 -0
- package/src/pages/playground/components/PropertyTable.vue +38 -0
- package/src/pages/playground/components/SourceCode.vue +71 -0
- package/src/router.js +57 -0
- package/src/stores/components.js +193 -0
- package/src/themes/default/index.js +200 -0
- package/tailwind.config.js +11 -0
- package/vite.config.js +31 -0
- package/dist/style.css +0 -1
- package/dist/webfxfy.es.js +0 -7935
- package/dist/webfxfy.umd.js +0 -40
package/.env
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
NODE_ENV=local
|
package/index.html
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<title>Untitled</title>
|
|
7
|
+
<script id="aHlj"><!--serialize-pinia--></script>
|
|
8
|
+
<script id="aHlk">window.__hydration = JSON.parse(document.getElementById('aHlj').innerText)</script>
|
|
9
|
+
<script>
|
|
10
|
+
document.querySelector('html').setAttribute('data-theme', localStorage.getItem('theme') ?? '')
|
|
11
|
+
</script>
|
|
12
|
+
<!--preload-links-->
|
|
13
|
+
</head>
|
|
14
|
+
<body>
|
|
15
|
+
<div><!--app-html--></div>
|
|
16
|
+
<div class="bW9k"><!--modal-overlay--></div>
|
|
17
|
+
<div class="Y29u"><!--context-overlay--></div>
|
|
18
|
+
<div class="YWxl"><!--alert-overlay--></div>
|
|
19
|
+
<div class="dG9h"><!--toast-overlay--></div>
|
|
20
|
+
<script type="module" src="/src/entry-client.js"></script>
|
|
21
|
+
</body>
|
|
22
|
+
</html>
|
package/package.json
CHANGED
|
@@ -1,37 +1,38 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mixd-id/web-scaffold",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.2301231313",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"dev": "vite serve",
|
|
7
7
|
"build": "vite build",
|
|
8
8
|
"start": "node server.js"
|
|
9
9
|
},
|
|
10
|
-
"main": "./
|
|
10
|
+
"main": "./src/index.js",
|
|
11
11
|
"exports": {
|
|
12
|
-
".":
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
"./
|
|
12
|
+
".": "./src/index.js",
|
|
13
|
+
"./themes/default": "./src/themes/default/index.js",
|
|
14
|
+
"./themes/kliknss": "./src/themes/kliknss/index.js",
|
|
15
|
+
"./UI.vue": "./src/UI.vue",
|
|
16
|
+
"./helpers.mjs": "./src/helpers.mjs"
|
|
17
17
|
},
|
|
18
|
-
"files": [
|
|
19
|
-
"dist"
|
|
20
|
-
],
|
|
21
18
|
"dependencies": {
|
|
22
19
|
"@faker-js/faker": "^7.3.0",
|
|
23
20
|
"@tailwindcss/line-clamp": "^0.4.0",
|
|
21
|
+
"@vueuse/core": "^9.0.2",
|
|
22
|
+
"axios": "^0.27.2",
|
|
24
23
|
"compression": "^1.7.4",
|
|
25
24
|
"cookie-parser": "^1.4.6",
|
|
26
25
|
"cors": "^2.8.5",
|
|
27
26
|
"daisyui": "^2.19.0",
|
|
28
27
|
"dayjs": "^1.11.2",
|
|
29
28
|
"express": "^4.18.1",
|
|
29
|
+
"glob": "^8.0.3",
|
|
30
30
|
"lodash": "^4.17.21",
|
|
31
31
|
"nprogress": "^0.2.0",
|
|
32
32
|
"pinia": "^2.0.14",
|
|
33
33
|
"prismjs": "^1.28.0",
|
|
34
34
|
"serve-static": "^1.15.0",
|
|
35
|
+
"tailwindcss": "^3.2.4",
|
|
35
36
|
"vue": "^3.2.25",
|
|
36
37
|
"vue-router": "^4.0.14"
|
|
37
38
|
},
|
|
@@ -39,7 +40,6 @@
|
|
|
39
40
|
"@vitejs/plugin-vue": "^2.2.0",
|
|
40
41
|
"autoprefixer": "^10.4.4",
|
|
41
42
|
"postcss": "^8.4.12",
|
|
42
|
-
"tailwindcss": "^3.0.23",
|
|
43
43
|
"vite": "^2.8.0"
|
|
44
44
|
},
|
|
45
45
|
"description": "This scaffold based on express vitejs vuejs",
|
|
Binary file
|
package/server.js
ADDED
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
const fs = require('fs')
|
|
3
|
+
const path = require('path')
|
|
4
|
+
const express = require('express')
|
|
5
|
+
const cors = require('cors')
|
|
6
|
+
const cookieParser = require('cookie-parser')
|
|
7
|
+
const apiModules = require("./src/api")
|
|
8
|
+
|
|
9
|
+
const isTest = process.env.NODE_ENV === 'test' || !!process.env.VITE_TEST_BUILD
|
|
10
|
+
const isProd = process.argv.includes('--prod')
|
|
11
|
+
|
|
12
|
+
const root = process.cwd()
|
|
13
|
+
|
|
14
|
+
const apiMiddleware = async(req, res, next) => {
|
|
15
|
+
|
|
16
|
+
if(req.originalUrl.indexOf('/api') >= 0){
|
|
17
|
+
|
|
18
|
+
const module = req.originalUrl.replace('/api', '').split('?')[0]
|
|
19
|
+
const method = req.method === 'POST' ? 'store' : 'index'
|
|
20
|
+
|
|
21
|
+
if(apiModules[module] && apiModules[module][method]){
|
|
22
|
+
const json = await apiModules[module][method](req, res)
|
|
23
|
+
if(json) res.send(json)
|
|
24
|
+
}
|
|
25
|
+
else{
|
|
26
|
+
console.warn(`API url not handled: ${req.originalUrl}, ${module}@${method}`)
|
|
27
|
+
}
|
|
28
|
+
res.end()
|
|
29
|
+
}
|
|
30
|
+
else{
|
|
31
|
+
next()
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
async function createServer() {
|
|
36
|
+
const resolve = (p) => path.resolve(__dirname, p)
|
|
37
|
+
|
|
38
|
+
const indexProd = ''
|
|
39
|
+
|
|
40
|
+
const manifest = {}
|
|
41
|
+
|
|
42
|
+
const app = express()
|
|
43
|
+
app.disable('x-powered-by')
|
|
44
|
+
app.use(cookieParser())
|
|
45
|
+
|
|
46
|
+
app.use(apiMiddleware)
|
|
47
|
+
app.use(express.json())
|
|
48
|
+
app.use(cors())
|
|
49
|
+
|
|
50
|
+
const http = require('http').createServer(app)
|
|
51
|
+
|
|
52
|
+
const vite = await require('vite').createServer({
|
|
53
|
+
root,
|
|
54
|
+
logLevel: isTest ? 'error' : 'info',
|
|
55
|
+
server: {
|
|
56
|
+
middlewareMode: 'ssr',
|
|
57
|
+
hmr: {
|
|
58
|
+
port: 24677
|
|
59
|
+
},
|
|
60
|
+
watch: {
|
|
61
|
+
usePolling: true,
|
|
62
|
+
interval: 100
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
})
|
|
66
|
+
app.use(vite.middlewares)
|
|
67
|
+
|
|
68
|
+
app.use('*', async (req, res, next) => {
|
|
69
|
+
|
|
70
|
+
if(req.originalUrl.indexOf('socket.io') >= 0){
|
|
71
|
+
return next()
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
try {
|
|
75
|
+
const url = req.originalUrl
|
|
76
|
+
|
|
77
|
+
let template, render
|
|
78
|
+
template = fs.readFileSync(resolve('index.html'), 'utf-8')
|
|
79
|
+
template = await vite.transformIndexHtml(url, template)
|
|
80
|
+
render = (await vite.ssrLoadModule('/src/entry-server.js')).render
|
|
81
|
+
|
|
82
|
+
const [appHtml, preloadLinks, serializePinia, redirect, cookie, modalOverlay, alertOverlay, contextOverlay ] = await render(req, manifest)
|
|
83
|
+
|
|
84
|
+
if(cookie.length > 0){
|
|
85
|
+
for(var i in cookie){
|
|
86
|
+
res.cookie(cookie[i][0], cookie[i][1])
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
if(typeof redirect !== 'undefined'){
|
|
91
|
+
res.redirect(redirect)
|
|
92
|
+
}
|
|
93
|
+
else{
|
|
94
|
+
const html = template
|
|
95
|
+
.replace(`<!--preload-links-->`, preloadLinks)
|
|
96
|
+
.replace(`<!--app-html-->`, appHtml)
|
|
97
|
+
.replace(`<!--serialize-pinia-->`, serializePinia)
|
|
98
|
+
.replace(`<!--context-overlay-->`, contextOverlay)
|
|
99
|
+
.replace(`<!--modal-overlay-->`, modalOverlay)
|
|
100
|
+
.replace(`<!--alert-overlay-->`, alertOverlay)
|
|
101
|
+
|
|
102
|
+
res.status(200).set({ 'Content-Type': 'text/html' }).end(html)
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
catch (e) {
|
|
106
|
+
vite && vite.ssrFixStacktrace(e)
|
|
107
|
+
console.log(e.stack)
|
|
108
|
+
res.status(500).end(e.stack)
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
})
|
|
112
|
+
|
|
113
|
+
return { http, app, vite }
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
createServer().then(({ http }) =>{
|
|
117
|
+
|
|
118
|
+
http.listen(3002, () => {
|
|
119
|
+
console.log('Listening on port ' + 3002)
|
|
120
|
+
})
|
|
121
|
+
|
|
122
|
+
})
|