zmp-cli 3.15.6 → 3.15.8
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 +37 -0
- package/build/index.js +1 -184
- package/config/index.js +1 -44
- package/create/index.js +1 -230
- package/create/utils/generate-app-config.js +1 -34
- package/create/utils/generate-npm-scripts.js +1 -26
- package/create/utils/get-options.js +1 -204
- package/create/utils/npm-scripts.js +1 -62
- package/deploy/index.js +1 -149
- package/deploy/utils/get-options.js +1 -69
- package/deploy/utils/request-upload.js +1 -34
- package/deploy/utils/upload-app.js +1 -82
- package/index.js +1 -319
- package/login/index.js +1 -169
- package/login/utils/get-options.js +1 -58
- package/login/utils/zalo-login.js +1 -32
- package/migrate/icons/update-icon-v3.js +1 -19
- package/migrate/index.js +1 -60
- package/migrate/utils/get-options.js +1 -46
- package/migrate/utils/migrate-react.js +1 -33
- package/package.json +13 -40
- package/start/frame/index.html +264 -254
- package/start/index.js +1 -382
- package/sync/index-to-app-config.js +1 -146
- package/sync/index.js +1 -55
- package/utils/axios.js +1 -15
- package/utils/check-update.js +1 -53
- package/utils/constants.js +1 -20
- package/utils/env.js +1 -39
- package/utils/error.js +1 -16
- package/utils/find-files-by-ext.js +1 -27
- package/utils/find-free-port.js +1 -11
- package/utils/fs-extra.js +1 -90
- package/utils/generate-pages-map.js +1 -17
- package/utils/get-app-info.js +1 -22
- package/utils/get-current-project.js +1 -25
- package/utils/get-ip.js +1 -19
- package/utils/log.js +1 -19
- package/utils/node-blob.js +1 -106
- package/utils/resumable.d.js +1 -0
- package/utils/resumable.js +1 -1204
- package/utils/spinner.js +1 -25
- package/utils/tunnel.js +1 -36
- package/.editorconfig +0 -15
- package/.eslintignore +0 -8
- package/.eslintrc.js +0 -10
- package/.vscode/launch.json +0 -23
- package/LICENSE +0 -21
- package/README.git.md +0 -37
- package/assets/index.js +0 -147
- package/build/dist/index.dev.js +0 -217
- package/config/dist/index.dev.js +0 -48
- package/create/init-zmp-ui.js +0 -216
- package/create/templates/app-parameters.js +0 -33
- package/create/templates/common/css/icons.css +0 -60
- package/create/templates/common/icons/512x512.png +0 -0
- package/create/templates/common/icons/apple-touch-icon.png +0 -0
- package/create/templates/common/icons/favicon.png +0 -0
- package/create/templates/common/postcss.config.js +0 -5
- package/create/templates/common/splash-2732x2732.png +0 -0
- package/create/templates/common/tailwind/postcss.config.js +0 -5
- package/create/templates/common/tailwind/tailwind.config.js +0 -9
- package/create/templates/common/tailwind/tailwind.css +0 -3
- package/create/templates/common/webpack/build.js +0 -41
- package/create/templates/copy-assets.js +0 -158
- package/create/templates/core/babel.config.js +0 -11
- package/create/templates/core/copy-assets.js +0 -83
- package/create/templates/core/generate-home-page.js +0 -143
- package/create/templates/core/generate-root.js +0 -283
- package/create/templates/core/generate-routes.js +0 -155
- package/create/templates/core/generate-scripts.js +0 -94
- package/create/templates/core/pages/404.html +0 -20
- package/create/templates/core/pages/about.html +0 -26
- package/create/templates/core/pages/catalog.html +0 -40
- package/create/templates/core/pages/dynamic-route.html +0 -115
- package/create/templates/core/pages/form.html +0 -258
- package/create/templates/core/pages/left-page-1.html +0 -24
- package/create/templates/core/pages/left-page-2.html +0 -23
- package/create/templates/core/pages/product.html +0 -36
- package/create/templates/core/pages/request-and-load.html +0 -35
- package/create/templates/core/pages/settings.html +0 -252
- package/create/templates/create-folders.js +0 -30
- package/create/templates/dist/generate-styles.dev.js +0 -46
- package/create/templates/generate-config-xml.js +0 -18
- package/create/templates/generate-index.js +0 -49
- package/create/templates/generate-manifest.js +0 -49
- package/create/templates/generate-recoil.js +0 -56
- package/create/templates/generate-routes.js +0 -16
- package/create/templates/generate-scripts.js +0 -16
- package/create/templates/generate-service-worker.js +0 -126
- package/create/templates/generate-store.js +0 -88
- package/create/templates/generate-styles.js +0 -110
- package/create/templates/generate-webpack-config.js +0 -335
- package/create/templates/generate-zmp-custom.js +0 -81
- package/create/templates/react/babel.config.js +0 -12
- package/create/templates/react/components/app-items.jsx +0 -44
- package/create/templates/react/components/navbar-back.jsx +0 -25
- package/create/templates/react/components/user-card.jsx +0 -18
- package/create/templates/react/copy-assets.js +0 -85
- package/create/templates/react/dist/generate-scripts.dev.js +0 -23
- package/create/templates/react/generate-home-page.js +0 -111
- package/create/templates/react/generate-root.js +0 -84
- package/create/templates/react/generate-routes.js +0 -16
- package/create/templates/react/generate-scripts.js +0 -68
- package/create/templates/react/pages/404.js +0 -27
- package/create/templates/react/pages/about.js +0 -52
- package/create/templates/react/pages/catalog.js +0 -112
- package/create/templates/react/pages/dynamic-route.js +0 -80
- package/create/templates/react/pages/form.js +0 -152
- package/create/templates/react/pages/index copy.js +0 -17
- package/create/templates/react/pages/index.js +0 -17
- package/create/templates/react/pages/settings.js +0 -76
- package/create/templates/react/pages/user.js +0 -56
- package/create/templates/react/vite.config.js +0 -11
- package/create/templates/react-typescript/_tsconfig.json +0 -33
- package/create/templates/react-typescript/components/app-items.js +0 -53
- package/create/templates/react-typescript/components/index.js +0 -9
- package/create/templates/react-typescript/components/navbar-back.js +0 -40
- package/create/templates/react-typescript/components/user-card.js +0 -32
- package/create/templates/react-typescript/copy-assets.js +0 -94
- package/create/templates/react-typescript/dist/generate-scripts.dev.js +0 -23
- package/create/templates/react-typescript/generate-home-page.js +0 -113
- package/create/templates/react-typescript/generate-root.js +0 -81
- package/create/templates/react-typescript/generate-routes.js +0 -12
- package/create/templates/react-typescript/generate-scripts.js +0 -67
- package/create/templates/react-typescript/pages/404.js +0 -27
- package/create/templates/react-typescript/pages/about.js +0 -52
- package/create/templates/react-typescript/pages/catalog.js +0 -112
- package/create/templates/react-typescript/pages/dynamic-route.js +0 -80
- package/create/templates/react-typescript/pages/form.js +0 -152
- package/create/templates/react-typescript/pages/index.js +0 -17
- package/create/templates/react-typescript/pages/settings.js +0 -76
- package/create/templates/react-typescript/pages/user.js +0 -56
- package/create/templates/react-typescript/vite.config.js +0 -21
- package/create/templates/svelte/babel.config.js +0 -10
- package/create/templates/svelte/copy-assets.js +0 -47
- package/create/templates/svelte/generate-home-page.js +0 -158
- package/create/templates/svelte/generate-root.js +0 -235
- package/create/templates/svelte/generate-routes.js +0 -91
- package/create/templates/svelte/generate-scripts.js +0 -47
- package/create/templates/svelte/pages/404.svelte +0 -10
- package/create/templates/svelte/pages/about.svelte +0 -16
- package/create/templates/svelte/pages/catalog.svelte +0 -31
- package/create/templates/svelte/pages/dynamic-route.svelte +0 -34
- package/create/templates/svelte/pages/form.svelte +0 -175
- package/create/templates/svelte/pages/left-page-1.svelte +0 -13
- package/create/templates/svelte/pages/left-page-2.svelte +0 -12
- package/create/templates/svelte/pages/product.svelte +0 -21
- package/create/templates/svelte/pages/request-and-load.svelte +0 -21
- package/create/templates/svelte/pages/settings.svelte +0 -175
- package/create/templates/vue/babel.config.js +0 -10
- package/create/templates/vue/components/header.vue +0 -28
- package/create/templates/vue/components/sun-and-moon.vue +0 -34
- package/create/templates/vue/copy-assets.js +0 -67
- package/create/templates/vue/generate-home-page.js +0 -56
- package/create/templates/vue/generate-root.js +0 -50
- package/create/templates/vue/generate-routes.js +0 -7
- package/create/templates/vue/generate-scripts.js +0 -63
- package/create/templates/vue/global-components.d.ts +0 -121
- package/create/templates/vue/icons/moon.svg +0 -3
- package/create/templates/vue/icons/sun.svg +0 -3
- package/create/templates/vue/pages/404.vue +0 -12
- package/create/templates/vue/pages/about.vue +0 -15
- package/create/templates/vue/pages/catalog.vue +0 -39
- package/create/templates/vue/pages/dynamic-route.vue +0 -34
- package/create/templates/vue/pages/form.vue +0 -162
- package/create/templates/vue/pages/left-page-1.vue +0 -14
- package/create/templates/vue/pages/left-page-2.vue +0 -11
- package/create/templates/vue/pages/product.vue +0 -31
- package/create/templates/vue/pages/request-and-load.vue +0 -25
- package/create/templates/vue/pages/settings.vue +0 -18
- package/create/templates/vue/vite.config.js +0 -11
- package/create/templates/zaui/_tsconfig.json +0 -33
- package/create/templates/zaui/babel.config.js +0 -12
- package/create/templates/zaui/components/user-card.jsx +0 -16
- package/create/templates/zaui/copy-assets.js +0 -90
- package/create/templates/zaui/generate-home-page.js +0 -117
- package/create/templates/zaui/generate-root.js +0 -53
- package/create/templates/zaui/generate-routes.js +0 -10
- package/create/templates/zaui/generate-scripts.js +0 -39
- package/create/templates/zaui/generate-user-card.js +0 -55
- package/create/templates/zaui/pages/about.js +0 -129
- package/create/templates/zaui/pages/form.js +0 -123
- package/create/templates/zaui/pages/index.js +0 -9
- package/create/templates/zaui/pages/user.js +0 -109
- package/create/templates/zaui/vite.config.js +0 -11
- package/create/utils/colors.js +0 -94
- package/create/utils/dist/get-options.dev.js +0 -277
- package/create/utils/generate-gitignore.js +0 -43
- package/create/utils/generate-package-json.js +0 -132
- package/create/utils/generate-readme.js +0 -28
- package/create/utils/indent.js +0 -31
- package/create/utils/string.js +0 -13
- package/create/utils/styles-extension.js +0 -9
- package/create/utils/template-if.js +0 -9
- package/deploy/dist/index.dev.js +0 -227
- package/deploy/utils/dist/request-upload.dev.js +0 -62
- package/deploy/utils/dist/upload-app.dev.js +0 -113
- package/dist/bundle.js +0 -1
- package/dist/index.dev.js +0 -352
- package/jsconfig.json +0 -8
- package/login/dist/index.dev.js +0 -223
- package/login/utils/dist/zalo-login.dev.js +0 -41
- package/screenshots/wellcome.jpg +0 -0
- package/show-qr-app/assets/css/style.css +0 -87
- package/show-qr-app/assets/js/qrcode.min.js +0 -1
- package/show-qr-app/index.html +0 -57
- package/show-qr-app/package.json +0 -14
- package/start/dist/index.dev.js +0 -312
- package/start/generate-hr-config.js +0 -59
- package/ui/server.js +0 -194
- package/ui/www/css/app.css +0 -1
- package/ui/www/css/app.css.map +0 -1
- package/ui/www/fonts/ZMPIcons-Regular.eot +0 -0
- package/ui/www/fonts/ZMPIcons-Regular.ttf +0 -0
- package/ui/www/fonts/ZMPIcons-Regular.woff +0 -0
- package/ui/www/fonts/ZMPIcons-Regular.woff2 +0 -0
- package/ui/www/images/logo.png +0 -0
- package/ui/www/index.html +0 -1
- package/ui/www/js/app.js +0 -3
- package/ui/www/js/app.js.LICENSE.txt +0 -20
- package/ui/www/js/app.js.map +0 -1
- package/ui/www/static/icons/apple-touch-icon.png +0 -0
- package/ui/www/static/icons/favicon.png +0 -0
- package/utils/dist/get-app-info.dev.js +0 -54
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
const indent = require('../../../utils/indent');
|
|
2
|
-
|
|
3
|
-
module.exports = (options) => {
|
|
4
|
-
const { template } = options;
|
|
5
|
-
const hideNavBar =
|
|
6
|
-
template === 'tabs'
|
|
7
|
-
? `onPageBeforeIn={()=>{
|
|
8
|
-
//hide navbar
|
|
9
|
-
zmp.toolbar.hide('#app-tab-bar')
|
|
10
|
-
}}`
|
|
11
|
-
: '';
|
|
12
|
-
|
|
13
|
-
if (options.stateManagement === 'recoil') {
|
|
14
|
-
return indent(
|
|
15
|
-
0,
|
|
16
|
-
`
|
|
17
|
-
import React from 'react';
|
|
18
|
-
import { Button, Card, Input, Page, Box, zmp } from 'zmp-framework/react';
|
|
19
|
-
import { useRecoilState } from 'recoil';
|
|
20
|
-
import { userState } from '../state';
|
|
21
|
-
import NavbarBack from '../components/navbar-back';
|
|
22
|
-
|
|
23
|
-
const FormPage = () => {
|
|
24
|
-
const [user, setUser] = useRecoilState(userState)
|
|
25
|
-
|
|
26
|
-
const [form, setForm] = React.useState({ ...user });
|
|
27
|
-
const toast = React.useRef(null)
|
|
28
|
-
|
|
29
|
-
const handleChangeInput = (field, value) => {
|
|
30
|
-
setForm({ ...form, [field]: value })
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
const handleSubmit = () => {
|
|
34
|
-
if (!toast.current) {
|
|
35
|
-
toast.current = zmp.toast.create({
|
|
36
|
-
text: 'Saved',
|
|
37
|
-
position: 'bottom',
|
|
38
|
-
closeTimeout: 2000,
|
|
39
|
-
})
|
|
40
|
-
}
|
|
41
|
-
setUser(form);
|
|
42
|
-
toast.current.open()
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
return (
|
|
46
|
-
<Page
|
|
47
|
-
name="user-form"
|
|
48
|
-
${hideNavBar}
|
|
49
|
-
>
|
|
50
|
-
<NavbarBack title="Update user info" />
|
|
51
|
-
<Box>
|
|
52
|
-
<Card inset>
|
|
53
|
-
<Input
|
|
54
|
-
id="name"
|
|
55
|
-
label="Name"
|
|
56
|
-
type="text"
|
|
57
|
-
placeholder="Zalo"
|
|
58
|
-
value={form?.name}
|
|
59
|
-
onChange={(e) => handleChangeInput('name', e.target.value)}
|
|
60
|
-
/>
|
|
61
|
-
<Input
|
|
62
|
-
label="Avatar"
|
|
63
|
-
type="text"
|
|
64
|
-
placeholder="zalo@zalo.me"
|
|
65
|
-
value={form?.avatar}
|
|
66
|
-
onChange={(e) => handleChangeInput('avatar', e.target.value)}
|
|
67
|
-
/>
|
|
68
|
-
<Box mx="0" mt="4">
|
|
69
|
-
<Button responsive typeName="primary" onClick={handleSubmit}>
|
|
70
|
-
Submit
|
|
71
|
-
</Button>
|
|
72
|
-
</Box>
|
|
73
|
-
</Card>
|
|
74
|
-
</Box>
|
|
75
|
-
</Page>
|
|
76
|
-
)
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
export default FormPage;
|
|
80
|
-
`
|
|
81
|
-
).trim();
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
return indent(
|
|
85
|
-
0,
|
|
86
|
-
`
|
|
87
|
-
import React from 'react';
|
|
88
|
-
import { Button, Card, Input, Page, useStore, zmp, Box } from 'zmp-framework/react';
|
|
89
|
-
import NavbarBack from '../components/navbar-back';
|
|
90
|
-
|
|
91
|
-
import store from '../store'
|
|
92
|
-
|
|
93
|
-
const FormPage = () => {
|
|
94
|
-
const user = useStore('user')
|
|
95
|
-
|
|
96
|
-
const [form, setForm] = React.useState({ ...user });
|
|
97
|
-
const toast = React.useRef(null)
|
|
98
|
-
|
|
99
|
-
const handleChangeInput = (field, value) => {
|
|
100
|
-
setForm({ ...form, [field]: value })
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
const handleSubmit = () => {
|
|
104
|
-
if (!toast.current) {
|
|
105
|
-
toast.current = zmp.toast.create({
|
|
106
|
-
text: 'Saved',
|
|
107
|
-
position: 'bottom',
|
|
108
|
-
closeTimeout: 2000,
|
|
109
|
-
})
|
|
110
|
-
}
|
|
111
|
-
store.dispatch('setUser', form)
|
|
112
|
-
toast.current.open()
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
return (
|
|
116
|
-
<Page
|
|
117
|
-
name="user-form"
|
|
118
|
-
${hideNavBar}
|
|
119
|
-
>
|
|
120
|
-
<NavbarBack title="Update user info" />
|
|
121
|
-
<Box>
|
|
122
|
-
<Card inset>
|
|
123
|
-
<Input
|
|
124
|
-
id="name"
|
|
125
|
-
label="Name"
|
|
126
|
-
type="text"
|
|
127
|
-
placeholder="Zalo"
|
|
128
|
-
value={form?.name}
|
|
129
|
-
onChange={(e) => handleChangeInput('name', e.target.value)}
|
|
130
|
-
/>
|
|
131
|
-
<Input
|
|
132
|
-
label="Avatar"
|
|
133
|
-
type="text"
|
|
134
|
-
placeholder="zalo@zalo.me"
|
|
135
|
-
value={form?.avatar}
|
|
136
|
-
onChange={(e) => handleChangeInput('avatar', e.target.value)}
|
|
137
|
-
/>
|
|
138
|
-
<Box mx="0" mt="4">
|
|
139
|
-
<Button responsive typeName="primary" onClick={handleSubmit}>
|
|
140
|
-
Submit
|
|
141
|
-
</Button>
|
|
142
|
-
</Box>
|
|
143
|
-
</Card>
|
|
144
|
-
</Box>
|
|
145
|
-
</Page>
|
|
146
|
-
)
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
export default FormPage;
|
|
150
|
-
`
|
|
151
|
-
).trim();
|
|
152
|
-
};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
const copyUser = require('./user');
|
|
2
|
-
const copyForm = require('./form');
|
|
3
|
-
const copyDynamicRoute = require('./dynamic-route');
|
|
4
|
-
const copyAbout = require('./about');
|
|
5
|
-
const copy404 = require('./404');
|
|
6
|
-
const copySettings = require('./settings');
|
|
7
|
-
const copyCatalog = require('./catalog');
|
|
8
|
-
|
|
9
|
-
module.exports = {
|
|
10
|
-
copyUser,
|
|
11
|
-
copyForm,
|
|
12
|
-
copyDynamicRoute,
|
|
13
|
-
copyAbout,
|
|
14
|
-
copy404,
|
|
15
|
-
copySettings,
|
|
16
|
-
copyCatalog,
|
|
17
|
-
};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
const copyUser = require('./user');
|
|
2
|
-
const copyForm = require('./form');
|
|
3
|
-
const copyDynamicRoute = require('./dynamic-route');
|
|
4
|
-
const copyAbout = require('./about');
|
|
5
|
-
const copy404 = require('./404');
|
|
6
|
-
const copySettings = require('./settings');
|
|
7
|
-
const copyCatalog = require('./catalog');
|
|
8
|
-
|
|
9
|
-
module.exports = {
|
|
10
|
-
copyUser,
|
|
11
|
-
copyForm,
|
|
12
|
-
copyDynamicRoute,
|
|
13
|
-
copyAbout,
|
|
14
|
-
copy404,
|
|
15
|
-
copySettings,
|
|
16
|
-
copyCatalog,
|
|
17
|
-
};
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
const indent = require('../../../utils/indent');
|
|
2
|
-
|
|
3
|
-
// eslint-disable-next-line no-unused-vars
|
|
4
|
-
module.exports = (options) => {
|
|
5
|
-
if (options.stateManagement === 'recoil') {
|
|
6
|
-
return indent(
|
|
7
|
-
0,
|
|
8
|
-
`
|
|
9
|
-
import React from "react";
|
|
10
|
-
import { useRecoilValue } from 'recoil';
|
|
11
|
-
import {
|
|
12
|
-
Page,
|
|
13
|
-
List,
|
|
14
|
-
ListItem,
|
|
15
|
-
Title,
|
|
16
|
-
Box
|
|
17
|
-
} from "zmp-framework/react";
|
|
18
|
-
import UserCard from "../components/user-card";
|
|
19
|
-
import { userState } from '../state'
|
|
20
|
-
|
|
21
|
-
const SettingsPage = () => {
|
|
22
|
-
const user = useRecoilValue(userState);
|
|
23
|
-
|
|
24
|
-
return (
|
|
25
|
-
<Page name="settings">
|
|
26
|
-
<Box m="0" p="4">
|
|
27
|
-
<Title>Settings</Title>
|
|
28
|
-
<List className="m-0">
|
|
29
|
-
<ListItem link="/user/">
|
|
30
|
-
<UserCard user={user} />
|
|
31
|
-
</ListItem>
|
|
32
|
-
</List>
|
|
33
|
-
</Box>
|
|
34
|
-
</Page>
|
|
35
|
-
);
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
export default SettingsPage;
|
|
39
|
-
`
|
|
40
|
-
).trim();
|
|
41
|
-
}
|
|
42
|
-
return indent(
|
|
43
|
-
0,
|
|
44
|
-
`
|
|
45
|
-
import React from "react";
|
|
46
|
-
import {
|
|
47
|
-
Page,
|
|
48
|
-
List,
|
|
49
|
-
ListItem,
|
|
50
|
-
useStore,
|
|
51
|
-
Title,
|
|
52
|
-
Box
|
|
53
|
-
} from "zmp-framework/react";
|
|
54
|
-
import UserCard from "../components/user-card";
|
|
55
|
-
|
|
56
|
-
const SettingsPage = () => {
|
|
57
|
-
const user = useStore("user");
|
|
58
|
-
|
|
59
|
-
return (
|
|
60
|
-
<Page name="settings">
|
|
61
|
-
<Box m="0" p="4">
|
|
62
|
-
<Title>Settings</Title>
|
|
63
|
-
<List className="m-0">
|
|
64
|
-
<ListItem link="/user/">
|
|
65
|
-
<UserCard user={user} />
|
|
66
|
-
</ListItem>
|
|
67
|
-
</List>
|
|
68
|
-
</Box>
|
|
69
|
-
</Page>
|
|
70
|
-
);
|
|
71
|
-
};
|
|
72
|
-
|
|
73
|
-
export default SettingsPage;
|
|
74
|
-
`
|
|
75
|
-
).trim();
|
|
76
|
-
};
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
const indent = require('../../../utils/indent');
|
|
2
|
-
|
|
3
|
-
module.exports = (options) => {
|
|
4
|
-
const { template, stateManagement } = options;
|
|
5
|
-
const hideNavBar =
|
|
6
|
-
template === 'tabs'
|
|
7
|
-
? `
|
|
8
|
-
onPageBeforeIn={()=>{
|
|
9
|
-
//hide navbar
|
|
10
|
-
zmp.toolbar.hide('#app-tab-bar')
|
|
11
|
-
}}`
|
|
12
|
-
: '';
|
|
13
|
-
const modules = ['Avatar', 'List', 'ListItem', 'Page', 'Title'];
|
|
14
|
-
if (stateManagement === 'store') {
|
|
15
|
-
modules.push('useStore');
|
|
16
|
-
}
|
|
17
|
-
if (template === 'tabs') {
|
|
18
|
-
modules.push('zmp');
|
|
19
|
-
}
|
|
20
|
-
return indent(
|
|
21
|
-
0,
|
|
22
|
-
`
|
|
23
|
-
import React from 'react'
|
|
24
|
-
import { ${modules.join(', ')} } from 'zmp-framework/react'
|
|
25
|
-
import NavbarBack from '../components/navbar-back'${stateManagement === 'recoil' ? `
|
|
26
|
-
import { useRecoilValue } from 'recoil';
|
|
27
|
-
import { userState } from '../state';` : ''}
|
|
28
|
-
|
|
29
|
-
const UserPage = () => {
|
|
30
|
-
${stateManagement === 'recoil' ? 'const user = useRecoilValue(userState);' : `const user = useStore('user')`}
|
|
31
|
-
|
|
32
|
-
return (
|
|
33
|
-
<Page
|
|
34
|
-
name="user"${hideNavBar}
|
|
35
|
-
>
|
|
36
|
-
<NavbarBack
|
|
37
|
-
title="User info"
|
|
38
|
-
linkRight="/form"
|
|
39
|
-
labelRight="Edit"
|
|
40
|
-
/>
|
|
41
|
-
<div style={{ textAlign: 'center', marginTop: 32 }}>
|
|
42
|
-
<Avatar story online src={user.avatar.startsWith('http') ? user.avatar : null}>{user.avatar}</Avatar>
|
|
43
|
-
<Title style={{ marginTop: 8 }}>{user.name}</Title>
|
|
44
|
-
</div>
|
|
45
|
-
<List>
|
|
46
|
-
<ListItem title="Display name" after={user.name} />
|
|
47
|
-
<ListItem title="ID" after={user.id} />
|
|
48
|
-
</List>
|
|
49
|
-
</Page>
|
|
50
|
-
)
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
export default UserPage;
|
|
54
|
-
`
|
|
55
|
-
).trim();
|
|
56
|
-
};
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"noEmit": true,
|
|
4
|
-
"target": "es6",
|
|
5
|
-
"module": "esnext",
|
|
6
|
-
"noImplicitAny": false,
|
|
7
|
-
"preserveConstEnums": true,
|
|
8
|
-
"jsx": "react",
|
|
9
|
-
"lib": ["dom", "es5", "es6", "es7", "es2017"],
|
|
10
|
-
"allowSyntheticDefaultImports": true,
|
|
11
|
-
"esModuleInterop": true,
|
|
12
|
-
"allowJs": true,
|
|
13
|
-
"skipLibCheck": true,
|
|
14
|
-
"declaration": false,
|
|
15
|
-
"emitDecoratorMetadata": true,
|
|
16
|
-
"experimentalDecorators": true,
|
|
17
|
-
"forceConsistentCasingInFileNames": true,
|
|
18
|
-
"moduleResolution": "node",
|
|
19
|
-
"noEmitOnError": true,
|
|
20
|
-
"noFallthroughCasesInSwitch": true,
|
|
21
|
-
"noImplicitReturns": true,
|
|
22
|
-
"noImplicitThis": true,
|
|
23
|
-
"noUnusedLocals": false,
|
|
24
|
-
"strict": true,
|
|
25
|
-
"strictFunctionTypes": false,
|
|
26
|
-
"pretty": true,
|
|
27
|
-
"removeComments": true,
|
|
28
|
-
"sourceMap": true,
|
|
29
|
-
"resolveJsonModule": true
|
|
30
|
-
},
|
|
31
|
-
"exclude": ["node_modules"],
|
|
32
|
-
"include": ["src"]
|
|
33
|
-
}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
const indent = require('../../../utils/indent');
|
|
2
|
-
|
|
3
|
-
module.exports = (options) => {
|
|
4
|
-
return indent(
|
|
5
|
-
0,
|
|
6
|
-
`
|
|
7
|
-
import React from 'react';
|
|
8
|
-
import { Icon, Grid, GridItem, ToastPreloader } from 'zmp-framework/react';
|
|
9
|
-
|
|
10
|
-
const AppItems = () => {
|
|
11
|
-
const [toastLoading, setToastLoading] = React.useState(false);
|
|
12
|
-
const items = [
|
|
13
|
-
{ icon: 'zi-chat-solid', label: 'Chat' },
|
|
14
|
-
{ icon: 'zi-photo-solid', label: 'Photo' },
|
|
15
|
-
{ icon: 'zi-star-solid', label: 'Star' },
|
|
16
|
-
{ icon: 'zi-more-diamond-solid', label: 'Apps' },
|
|
17
|
-
{ icon: 'zi-video-solid', label: 'Video' },
|
|
18
|
-
{ icon: 'zi-shield-solid', label: 'Shield' },
|
|
19
|
-
{ icon: 'zi-heart-solid', label: 'Heart' },
|
|
20
|
-
{ icon: 'zi-calendar-solid', label: 'Calendar' },
|
|
21
|
-
]
|
|
22
|
-
|
|
23
|
-
const openToastLoading = () => {
|
|
24
|
-
setToastLoading(true);
|
|
25
|
-
setTimeout(() => {
|
|
26
|
-
setToastLoading(false);
|
|
27
|
-
}, 2000);
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
return (
|
|
31
|
-
<div>
|
|
32
|
-
<ToastPreloader visible={toastLoading} text="Loading..." />
|
|
33
|
-
<Grid columns={4}>
|
|
34
|
-
{items.map(item => (
|
|
35
|
-
<GridItem
|
|
36
|
-
label={item.label}
|
|
37
|
-
style={{ backgroundColor: 'var(--zmp-color-w300)' }}
|
|
38
|
-
key={item.icon}
|
|
39
|
-
icon={<Icon zmp={item.icon as any} />}
|
|
40
|
-
onClick={openToastLoading}
|
|
41
|
-
/>
|
|
42
|
-
))}
|
|
43
|
-
</Grid>
|
|
44
|
-
</div>
|
|
45
|
-
)
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
AppItems.displayName = 'zmp-app-items'
|
|
49
|
-
|
|
50
|
-
export default AppItems
|
|
51
|
-
`
|
|
52
|
-
).trim();
|
|
53
|
-
};
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
const indent = require('../../../utils/indent');
|
|
2
|
-
|
|
3
|
-
module.exports = (options) => {
|
|
4
|
-
return indent(
|
|
5
|
-
0,
|
|
6
|
-
`
|
|
7
|
-
import React from 'react';
|
|
8
|
-
import { Link, Navbar, NavLeft, Icon, NavTitle, NavRight } from 'zmp-framework/react';
|
|
9
|
-
|
|
10
|
-
interface NavBarProps {
|
|
11
|
-
title?: string,
|
|
12
|
-
linkRight?: string,
|
|
13
|
-
labelRight?: string
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
const NavbarBack: React.FunctionComponent<NavBarProps> = ({ title, linkRight, labelRight }) => {
|
|
17
|
-
return (
|
|
18
|
-
<Navbar>
|
|
19
|
-
<NavLeft >
|
|
20
|
-
<Link className="no-ripple" noLinkClass back>
|
|
21
|
-
<Icon zmp="zi-arrow-left" />
|
|
22
|
-
</Link>
|
|
23
|
-
</NavLeft>
|
|
24
|
-
<NavTitle>{title}</NavTitle>
|
|
25
|
-
{linkRight && labelRight && (
|
|
26
|
-
<NavRight>
|
|
27
|
-
<Link href={linkRight} className="no-ripple" noLinkClass>{labelRight}</Link>
|
|
28
|
-
</NavRight>
|
|
29
|
-
)}
|
|
30
|
-
</Navbar>
|
|
31
|
-
)
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
NavbarBack.displayName = 'zmp-navbar';
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
export default NavbarBack;
|
|
38
|
-
`
|
|
39
|
-
).trim();
|
|
40
|
-
};
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
const indent = require('../../../utils/indent');
|
|
2
|
-
|
|
3
|
-
module.exports = (options) => {
|
|
4
|
-
return indent(
|
|
5
|
-
0,
|
|
6
|
-
`
|
|
7
|
-
import React from 'react';
|
|
8
|
-
import { Avatar, Title } from 'zmp-framework/react';
|
|
9
|
-
import { userInfo } from 'zmp-sdk';
|
|
10
|
-
|
|
11
|
-
interface UserProps {
|
|
12
|
-
user: userInfo
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
const UserCard: React.FunctionComponent<UserProps> = ({ user }) => {
|
|
16
|
-
return (
|
|
17
|
-
<div style={{ display: 'flex', width: '100%' }}>
|
|
18
|
-
<Avatar story online src={user.avatar.startsWith('http') ? user.avatar : null}>{user.avatar}</Avatar>
|
|
19
|
-
<div style={{ marginLeft: 16 }}>
|
|
20
|
-
<Title style={{ marginBottom: 0 }}>{user.name}</Title>
|
|
21
|
-
<div>{user.id}</div>
|
|
22
|
-
</div>
|
|
23
|
-
</div>
|
|
24
|
-
)
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
UserCard.displayName = 'zmp-user-card'
|
|
28
|
-
|
|
29
|
-
export default UserCard;
|
|
30
|
-
`
|
|
31
|
-
).trim();
|
|
32
|
-
};
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
const path = require('path');
|
|
2
|
-
const generateHomePage = require('./generate-home-page');
|
|
3
|
-
const generateRoot = require('./generate-root');
|
|
4
|
-
const generateStore = require('../generate-store');
|
|
5
|
-
const generateRecoil = require('../generate-recoil');
|
|
6
|
-
const copyComponents = require('./components');
|
|
7
|
-
const copyPages = require('./pages');
|
|
8
|
-
const copyViteConfig = require('./vite.config');
|
|
9
|
-
|
|
10
|
-
module.exports = (options) => {
|
|
11
|
-
const cwd = options.cwd || process.cwd();
|
|
12
|
-
const { template, stateManagement } = options;
|
|
13
|
-
const toCopy = [];
|
|
14
|
-
|
|
15
|
-
// Copy Pages
|
|
16
|
-
let pages = [];
|
|
17
|
-
if (template !== 'blank')
|
|
18
|
-
pages.push(
|
|
19
|
-
...[
|
|
20
|
-
{ fileName: '404', content: 'copy404' },
|
|
21
|
-
{ fileName: 'about', content: 'copyAbout' },
|
|
22
|
-
{ fileName: 'dynamic-route', content: 'copyDynamicRoute' },
|
|
23
|
-
{ fileName: 'user', content: 'copyUser' },
|
|
24
|
-
{ fileName: 'form', content: 'copyForm' },
|
|
25
|
-
]
|
|
26
|
-
);
|
|
27
|
-
if (template === 'tabs') {
|
|
28
|
-
pages.push(
|
|
29
|
-
...[
|
|
30
|
-
{ fileName: 'catalog', content: 'copyCatalog' },
|
|
31
|
-
{ fileName: 'settings', content: 'copySettings' },
|
|
32
|
-
]
|
|
33
|
-
);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
pages.forEach(({ fileName, content }) => {
|
|
37
|
-
const dest = path.resolve(cwd, 'src', 'pages', `${fileName}.tsx`);
|
|
38
|
-
toCopy.push({
|
|
39
|
-
content: copyPages[content](options),
|
|
40
|
-
to: dest,
|
|
41
|
-
});
|
|
42
|
-
});
|
|
43
|
-
toCopy.push({
|
|
44
|
-
content: generateHomePage(options),
|
|
45
|
-
to: path.resolve(cwd, 'src', 'pages', 'index.tsx'),
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
// Copy compoents
|
|
49
|
-
const components = [
|
|
50
|
-
...(template !== 'blank'
|
|
51
|
-
? [
|
|
52
|
-
{ fileName: 'app-items', content: 'copyAppItems' },
|
|
53
|
-
{ fileName: 'navbar-back', content: 'copyNavbarBack' },
|
|
54
|
-
{ fileName: 'user-card', content: 'copyUserCard' },
|
|
55
|
-
]
|
|
56
|
-
: []),
|
|
57
|
-
];
|
|
58
|
-
components.forEach(({ fileName, content }) => {
|
|
59
|
-
const dest = path.resolve(cwd, 'src', 'components', `${fileName}.tsx`);
|
|
60
|
-
toCopy.push({
|
|
61
|
-
content: copyComponents[content](options),
|
|
62
|
-
to: dest,
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
toCopy.push({
|
|
67
|
-
content: generateRoot(options),
|
|
68
|
-
to: path.resolve(cwd, 'src', 'components', 'app.tsx'),
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
if (stateManagement === 'recoil') {
|
|
72
|
-
toCopy.push({
|
|
73
|
-
content: generateRecoil(options),
|
|
74
|
-
to: path.resolve(cwd, 'src', 'state.ts'),
|
|
75
|
-
});
|
|
76
|
-
} else {
|
|
77
|
-
toCopy.push({
|
|
78
|
-
content: generateStore(options),
|
|
79
|
-
to: path.resolve(cwd, 'src', 'store.ts'),
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
toCopy.push({
|
|
84
|
-
content: copyViteConfig(options),
|
|
85
|
-
to: path.resolve(cwd, 'vite.config.ts'),
|
|
86
|
-
});
|
|
87
|
-
|
|
88
|
-
toCopy.push({
|
|
89
|
-
from: path.resolve(__dirname, '_tsconfig.json'),
|
|
90
|
-
to: path.resolve(cwd, 'tsconfig.json'),
|
|
91
|
-
});
|
|
92
|
-
|
|
93
|
-
return toCopy;
|
|
94
|
-
};
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var templateIf = require('../../utils/template-if');
|
|
4
|
-
|
|
5
|
-
var indent = require('../../utils/indent');
|
|
6
|
-
|
|
7
|
-
var stylesExtension = require('../../utils/styles-extension');
|
|
8
|
-
|
|
9
|
-
module.exports = function (options) {
|
|
10
|
-
var cssPreProcessor = options.cssPreProcessor,
|
|
11
|
-
theming = options.theming,
|
|
12
|
-
customBuild = options.customBuild,
|
|
13
|
-
includeTailwind = options.includeTailwind;
|
|
14
|
-
var scripts = '';
|
|
15
|
-
scripts += indent(0, "\n // Import React and ReactDOM\n import React from 'react';\n import { createRoot } from 'react-dom/client';\n\n // Import ZMP\n import ZMP from '".concat(customBuild ? './zmp-custom.js' : 'zmp-framework/core/lite-bundle', "';\n\n // Import ZMP-React Plugin\n import ZMPReact from 'zmp-framework/react';").concat(includeTailwind ? "\n\n // Import tailwind styles\n import './css/tailwind.css';\n " : '', "\n\n // Import ZMP Styles\n ").concat(templateIf(customBuild, function () {
|
|
16
|
-
return "\n import './css/zmp-custom.less';\n ";
|
|
17
|
-
}, function () {
|
|
18
|
-
return "\n import 'zmp-framework/".concat(theming.useUiKits ? 'zmp-bundle.min.css' : 'zmp.min.css', "';\n ");
|
|
19
|
-
}), "\n\n // Import Icons and App Custom Styles\n ").concat(templateIf(theming.iconFonts, function () {
|
|
20
|
-
return "\n import './css/icons.css';\n ";
|
|
21
|
-
}), "\n import './css/app.").concat(stylesExtension(cssPreProcessor), "';\n\n // Import App Component\n import App from './components/app';\n import appConfig from '../app-config.json';\n\n if (!(window as any).APP_CONFIG) {\n (window as any).APP_CONFIG = appConfig\n }\n\n // Init ZMP React Plugin\n ZMP.use(ZMPReact)\n\n // Mount React App\n const root = createRoot(document.getElementById('app')!);\n root.render(React.createElement(App));\n "));
|
|
22
|
-
return scripts.trim();
|
|
23
|
-
};
|