zmp-cli 3.15.5 → 3.15.6-beta.1

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.
Files changed (160) hide show
  1. package/README.md +1 -0
  2. package/build/index.js +1 -184
  3. package/config/index.js +1 -44
  4. package/create/index.js +1 -230
  5. package/create/init-zmp-ui.js +1 -216
  6. package/create/templates/app-parameters.js +9 -25
  7. package/create/templates/common/webpack/build.js +2 -40
  8. package/create/templates/copy-assets.js +1 -158
  9. package/create/templates/core/copy-assets.js +14 -82
  10. package/create/templates/core/generate-home-page.js +16 -38
  11. package/create/templates/core/generate-root.js +28 -63
  12. package/create/templates/core/generate-routes.js +12 -38
  13. package/create/templates/core/generate-scripts.js +16 -65
  14. package/create/templates/create-folders.js +1 -30
  15. package/create/templates/generate-config-xml.js +2 -9
  16. package/create/templates/generate-index.js +10 -35
  17. package/create/templates/generate-manifest.js +1 -49
  18. package/create/templates/generate-recoil.js +4 -16
  19. package/create/templates/generate-routes.js +1 -16
  20. package/create/templates/generate-scripts.js +1 -16
  21. package/create/templates/generate-service-worker.js +4 -10
  22. package/create/templates/generate-store.js +4 -15
  23. package/create/templates/generate-styles.js +10 -64
  24. package/create/templates/generate-webpack-config.js +43 -125
  25. package/create/templates/generate-zmp-custom.js +14 -72
  26. package/create/templates/react/copy-assets.js +1 -85
  27. package/create/templates/react/generate-home-page.js +20 -50
  28. package/create/templates/react/generate-root.js +15 -44
  29. package/create/templates/react/generate-routes.js +1 -16
  30. package/create/templates/react/generate-scripts.js +12 -38
  31. package/create/templates/react/pages/404.js +2 -10
  32. package/create/templates/react/pages/about.js +2 -10
  33. package/create/templates/react/pages/catalog.js +3 -17
  34. package/create/templates/react/pages/dynamic-route.js +2 -10
  35. package/create/templates/react/pages/form.js +6 -26
  36. package/create/templates/react/pages/index copy.js +1 -17
  37. package/create/templates/react/pages/index.js +1 -17
  38. package/create/templates/react/pages/settings.js +3 -17
  39. package/create/templates/react/pages/user.js +8 -27
  40. package/create/templates/react-typescript/components/app-items.js +2 -9
  41. package/create/templates/react-typescript/components/index.js +1 -9
  42. package/create/templates/react-typescript/components/navbar-back.js +2 -9
  43. package/create/templates/react-typescript/components/user-card.js +2 -9
  44. package/create/templates/react-typescript/copy-assets.js +1 -94
  45. package/create/templates/react-typescript/generate-home-page.js +20 -52
  46. package/create/templates/react-typescript/generate-root.js +14 -45
  47. package/create/templates/react-typescript/generate-routes.js +1 -12
  48. package/create/templates/react-typescript/generate-scripts.js +12 -37
  49. package/create/templates/react-typescript/pages/404.js +2 -10
  50. package/create/templates/react-typescript/pages/about.js +2 -10
  51. package/create/templates/react-typescript/pages/catalog.js +3 -17
  52. package/create/templates/react-typescript/pages/dynamic-route.js +2 -10
  53. package/create/templates/react-typescript/pages/form.js +6 -26
  54. package/create/templates/react-typescript/pages/index.js +1 -17
  55. package/create/templates/react-typescript/pages/settings.js +3 -17
  56. package/create/templates/react-typescript/pages/user.js +8 -27
  57. package/create/templates/svelte/copy-assets.js +1 -47
  58. package/create/templates/svelte/generate-home-page.js +20 -56
  59. package/create/templates/svelte/generate-root.js +22 -80
  60. package/create/templates/svelte/generate-routes.js +7 -22
  61. package/create/templates/svelte/generate-scripts.js +7 -23
  62. package/create/templates/vue/copy-assets.js +1 -67
  63. package/create/templates/vue/generate-home-page.js +2 -8
  64. package/create/templates/vue/generate-root.js +3 -13
  65. package/create/templates/vue/generate-routes.js +1 -7
  66. package/create/templates/vue/generate-scripts.js +9 -26
  67. package/create/templates/vue/global-components.d.js +1 -0
  68. package/create/templates/zaui/copy-assets.js +1 -90
  69. package/create/templates/zaui/generate-home-page.js +27 -53
  70. package/create/templates/zaui/generate-root.js +14 -34
  71. package/create/templates/zaui/generate-routes.js +1 -10
  72. package/create/templates/zaui/generate-scripts.js +6 -20
  73. package/create/templates/zaui/generate-user-card.js +3 -18
  74. package/create/templates/zaui/pages/about.js +3 -20
  75. package/create/templates/zaui/pages/form.js +3 -20
  76. package/create/templates/zaui/pages/index.js +1 -9
  77. package/create/templates/zaui/pages/user.js +3 -20
  78. package/create/utils/colors.js +1 -94
  79. package/create/utils/generate-app-config.js +1 -34
  80. package/create/utils/generate-gitignore.js +1 -43
  81. package/create/utils/generate-npm-scripts.js +1 -26
  82. package/create/utils/generate-package-json.js +1 -132
  83. package/create/utils/generate-readme.js +1 -28
  84. package/create/utils/get-options.js +1 -204
  85. package/create/utils/indent.js +1 -31
  86. package/create/utils/npm-scripts.js +1 -62
  87. package/create/utils/string.js +1 -13
  88. package/create/utils/styles-extension.js +1 -9
  89. package/create/utils/template-if.js +1 -9
  90. package/deploy/index.js +1 -148
  91. package/deploy/utils/get-options.js +1 -69
  92. package/deploy/utils/request-upload.js +1 -34
  93. package/deploy/utils/upload-app.js +1 -82
  94. package/index.js +1 -319
  95. package/login/index.js +1 -169
  96. package/login/utils/get-options.js +1 -58
  97. package/login/utils/zalo-login.js +1 -32
  98. package/migrate/icons/update-icon-v3.js +1 -19
  99. package/migrate/index.js +1 -60
  100. package/migrate/utils/get-options.js +1 -46
  101. package/migrate/utils/migrate-react.js +1 -33
  102. package/package.json +11 -39
  103. package/start/generate-hr-config.js +1 -59
  104. package/start/index.js +1 -382
  105. package/sync/index-to-app-config.js +1 -146
  106. package/sync/index.js +1 -55
  107. package/utils/axios.js +1 -15
  108. package/utils/check-update.js +1 -53
  109. package/utils/constants.js +1 -20
  110. package/utils/env.js +1 -39
  111. package/utils/error.js +1 -16
  112. package/utils/find-files-by-ext.js +1 -27
  113. package/utils/find-free-port.js +1 -11
  114. package/utils/fs-extra.js +1 -90
  115. package/utils/generate-pages-map.js +1 -17
  116. package/utils/get-app-info.js +1 -22
  117. package/utils/get-current-project.js +1 -25
  118. package/utils/get-ip.js +1 -19
  119. package/utils/log.js +1 -19
  120. package/utils/node-blob.js +1 -106
  121. package/utils/resumable.d.js +1 -0
  122. package/utils/resumable.js +1 -1204
  123. package/utils/spinner.js +1 -25
  124. package/utils/tunnel.js +1 -36
  125. package/.editorconfig +0 -15
  126. package/.eslintignore +0 -8
  127. package/.eslintrc.js +0 -10
  128. package/.vscode/launch.json +0 -23
  129. package/LICENSE +0 -21
  130. package/README.git.md +0 -37
  131. package/assets/index.js +0 -147
  132. package/build/dist/index.dev.js +0 -217
  133. package/config/dist/index.dev.js +0 -48
  134. package/create/templates/dist/generate-styles.dev.js +0 -46
  135. package/create/utils/dist/get-options.dev.js +0 -277
  136. package/deploy/dist/index.dev.js +0 -227
  137. package/dist/index.dev.js +0 -352
  138. package/jsconfig.json +0 -8
  139. package/login/dist/index.dev.js +0 -223
  140. package/screenshots/wellcome.jpg +0 -0
  141. package/show-qr-app/assets/css/style.css +0 -87
  142. package/show-qr-app/assets/js/qrcode.min.js +0 -1
  143. package/show-qr-app/index.html +0 -57
  144. package/show-qr-app/package.json +0 -14
  145. package/start/dist/index.dev.js +0 -312
  146. package/ui/server.js +0 -194
  147. package/ui/www/css/app.css +0 -1
  148. package/ui/www/css/app.css.map +0 -1
  149. package/ui/www/fonts/ZMPIcons-Regular.eot +0 -0
  150. package/ui/www/fonts/ZMPIcons-Regular.ttf +0 -0
  151. package/ui/www/fonts/ZMPIcons-Regular.woff +0 -0
  152. package/ui/www/fonts/ZMPIcons-Regular.woff2 +0 -0
  153. package/ui/www/images/logo.png +0 -0
  154. package/ui/www/index.html +0 -1
  155. package/ui/www/js/app.js +0 -3
  156. package/ui/www/js/app.js.LICENSE.txt +0 -20
  157. package/ui/www/js/app.js.map +0 -1
  158. package/ui/www/static/icons/apple-touch-icon.png +0 -0
  159. package/ui/www/static/icons/favicon.png +0 -0
  160. package/utils/dist/get-app-info.dev.js +0 -54
@@ -1,81 +1,23 @@
1
- const indent = require('../utils/indent');
2
-
3
- module.exports = (options) => {
4
- const {
5
- themes = [],
6
- rtl = false,
7
- lightTheme = true,
8
- darkTheme = true,
9
- components = [],
10
- } = options.customBuildConfig || {};
11
-
12
- const filterCharts = (comps) => {
13
- return comps.filter((c) => {
14
- if (c === 'gauge' || c === 'area-chart' || c === 'pie-chart')
15
- return false;
16
- return true;
17
- });
18
- };
19
-
20
- const { framework } = options;
21
-
22
- const componentsImportsJS = filterCharts(components).map((c) => {
23
- const name = c
24
- .split('-')
25
- .map((word) => {
26
- return word[0].toUpperCase() + word.substring(1);
27
- })
28
- .join('');
29
- return `import ${name} from 'zmp-framework/core/components/${c}';`;
30
- });
31
- const componentsNamesJS = filterCharts(components).map((c) => {
32
- return c
33
- .split('-')
34
- .map((word) => {
35
- return word[0].toUpperCase() + word.substring(1);
36
- })
37
- .join('');
38
- });
39
-
40
- const scripts = indent(
41
- 0,
42
- `
43
- import ZMP, { request, utils, getDevice, createStore } from '${
44
- framework === 'core' ? 'zmp-framework/core' : 'zmp-framework/core/lite'
45
- }';
46
- ${componentsImportsJS.join('\n ')}
1
+ "use strict";const e=require("../utils/indent");module.exports=r=>{let{themes:t=[],rtl:o=!1,lightTheme:i=!0,darkTheme:m=!0,components:s=[]}=r.customBuildConfig||{},n=e=>e.filter(e=>"gauge"!==e&&"area-chart"!==e&&"pie-chart"!==e),{framework:u}=r,p=n(s).map(e=>{let r=e.split("-").map(e=>e[0].toUpperCase()+e.substring(1)).join("");return`import ${r} from 'zmp-framework/core/components/${e}';`}),l=n(s).map(e=>e.split("-").map(e=>e[0].toUpperCase()+e.substring(1)).join("")),a=e(0,`
2
+ import ZMP, { request, utils, getDevice, createStore } from '${"core"===u?"zmp-framework/core":"zmp-framework/core/lite"}';
3
+ ${p.join("\n ")}
47
4
 
48
5
  ZMP.use([
49
- ${componentsNamesJS.join(',\n ')}
6
+ ${l.join(",\n ")}
50
7
  ]);
51
8
 
52
9
  export default ZMP;
53
10
  export { request, utils, getDevice, createStore };
54
- `
55
- );
56
-
57
- const componentsImportsLESS = components.map((c) => {
58
- return `@import url('../../node_modules/zmp/components/${c}/${c}.less');`;
59
- });
60
- const styles = indent(
61
- 0,
62
- `
11
+ `),c=s.map(e=>`@import url('../../node_modules/zmp/components/${e}/${e}.less');`);return{styles:e(0,`
63
12
  & {
64
13
  @import url('../../node_modules/zmp/zmp.less');
65
- ${componentsImportsLESS.join('\n ')}
66
-
67
- @includeIosTheme: ${themes.indexOf('ios') >= 0};
68
- @includeMdTheme: ${themes.indexOf('md') >= 0};
69
- @includeAuroraTheme: ${themes.indexOf('aurora') >= 0};
70
- @includeDarkTheme: ${darkTheme || false};
71
- @includeLightTheme: ${lightTheme || false};
72
- @rtl: ${rtl}
14
+ ${c.join("\n ")}
15
+
16
+ @includeIosTheme: ${t.indexOf("ios")>=0};
17
+ @includeMdTheme: ${t.indexOf("md")>=0};
18
+ @includeAuroraTheme: ${t.indexOf("aurora")>=0};
19
+ @includeDarkTheme: ${m||!1};
20
+ @includeLightTheme: ${i||!1};
21
+ @rtl: ${o}
73
22
  }
74
- `
75
- );
76
-
77
- return {
78
- styles,
79
- scripts,
80
- };
81
- };
23
+ `),scripts:a}};
@@ -1,85 +1 @@
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 copyPages = require('./pages');
7
-
8
- module.exports = (options) => {
9
- const cwd = options.cwd || process.cwd();
10
- const { template, stateManagement } = options;
11
- const toCopy = [];
12
-
13
- // Copy Pages
14
-
15
- let pages = [];
16
- if (template !== 'blank')
17
- pages.push(
18
- ...[
19
- { fileName: '404', content: 'copy404' },
20
- { fileName: 'about', content: 'copyAbout' },
21
- { fileName: 'dynamic-route', content: 'copyDynamicRoute' },
22
- { fileName: 'user', content: 'copyUser' },
23
- { fileName: 'form', content: 'copyForm' },
24
- ]
25
- );
26
- if (template === 'tabs') {
27
- pages.push(
28
- ...[
29
- { fileName: 'catalog', content: 'copyCatalog' },
30
- { fileName: 'settings', content: 'copySettings' },
31
- ]
32
- );
33
- }
34
-
35
- pages.forEach(({ fileName, content }) => {
36
- const dest = path.resolve(cwd, 'src', 'pages', `${fileName}.jsx`);
37
- toCopy.push({
38
- content: copyPages[content](options),
39
- to: dest,
40
- });
41
- });
42
-
43
-
44
- toCopy.push({
45
- content: generateHomePage(options),
46
- to: path.resolve(cwd, 'src', 'pages', 'index.jsx'),
47
- });
48
-
49
- // Copy compoents
50
- const components = [
51
- ...(template !== 'blank' ? ['app-items', 'navbar-back', 'user-card'] : []),
52
- ];
53
- components.forEach((name) => {
54
- const src = path.resolve(__dirname, 'components', `${name}.jsx`);
55
- const dest = path.resolve(cwd, 'src', 'components', `${name}.jsx`);
56
- toCopy.push({
57
- from: src,
58
- to: dest,
59
- });
60
- });
61
-
62
- toCopy.push({
63
- content: generateRoot(options),
64
- to: path.resolve(cwd, 'src', 'components', 'app.jsx'),
65
- });
66
-
67
- if (stateManagement === 'recoil') {
68
- toCopy.push({
69
- content: generateRecoil(options),
70
- to: path.resolve(cwd, 'src', 'state.js'),
71
- });
72
- } else {
73
- toCopy.push({
74
- content: generateStore(options),
75
- to: path.resolve(cwd, 'src', 'store.js'),
76
- });
77
- }
78
-
79
- toCopy.push({
80
- from: path.resolve(__dirname, 'vite.config.js'),
81
- to: path.resolve(cwd, 'vite.config.js'),
82
- });
83
-
84
- return toCopy;
85
- };
1
+ "use strict";const e=require("path"),o=require("./generate-home-page"),t=require("./generate-root"),s=require("../generate-store"),r=require("../generate-recoil"),n=require("./pages");module.exports=c=>{let a=c.cwd||process.cwd(),{template:p,stateManagement:i}=c,l=[],u=[];return"blank"!==p&&u.push({fileName:"404",content:"copy404"},{fileName:"about",content:"copyAbout"},{fileName:"dynamic-route",content:"copyDynamicRoute"},{fileName:"user",content:"copyUser"},{fileName:"form",content:"copyForm"}),"tabs"===p&&u.push({fileName:"catalog",content:"copyCatalog"},{fileName:"settings",content:"copySettings"}),u.forEach(({fileName:o,content:t})=>{let s=e.resolve(a,"src","pages",`${o}.jsx`);l.push({content:n[t](c),to:s})}),l.push({content:o(c),to:e.resolve(a,"src","pages","index.jsx")}),[..."blank"!==p?["app-items","navbar-back","user-card"]:[]].forEach(o=>{let t=e.resolve(__dirname,"components",`${o}.jsx`),s=e.resolve(a,"src","components",`${o}.jsx`);l.push({from:t,to:s})}),l.push({content:t(c),to:e.resolve(a,"src","components","app.jsx")}),"recoil"===i?l.push({content:r(c),to:e.resolve(a,"src","state.js")}):l.push({content:s(c),to:e.resolve(a,"src","store.js")}),l.push({from:e.resolve(__dirname,"vite.config.js"),to:e.resolve(a,"vite.config.js")}),l};
@@ -1,44 +1,23 @@
1
- const indent = require('../../utils/indent');
2
- module.exports = (options) => {
3
- const { name, template, theming, stateManagement } = options;
4
- const { fillBars } = theming;
5
-
6
- let description = '';
7
- if (template === 'single-view' || template === 'blank') {
8
- description = `
1
+ "use strict";const t=require("../../utils/indent");module.exports=e=>{let{name:a,template:i,theming:r,stateManagement:o}=e,{fillBars:s}=r,n="";return("single-view"===i||"blank"===i)&&(n=`
9
2
  <p>Here is your blank ZMP app. Let's see what we have here.</p>
10
- `;
11
- }
12
- if (template === 'split-view') {
13
- description = `
3
+ `),"split-view"===i&&(n=`
14
4
  <p>This is an example of split view application layout, commonly used on tablets. The main approach of such kind of layout is that you can see different views at the same time.</p>
15
5
 
16
6
  <p>Each view may have different layout, different navbar type (dynamic, fixed or static) or without navbar.</p>
17
7
 
18
8
  <p>The fun thing is that you can easily control one view from another without any line of JavaScript just using "data-view" attribute on links.</p>
19
- `;
20
- }
21
- if (template === 'tabs') {
22
- description = `
9
+ `),"tabs"===i&&(n=`
23
10
  <p>Here is your blank ZMP app with tabs-layout. Let's see what we have here.</p>
24
- `;
25
- }
26
-
27
- return indent(
28
- 0,
29
- `
11
+ `),t(0,`
30
12
  import React from 'react';
31
- ${
32
- template === 'blank'
33
- ? `
13
+ ${"blank"===i?`
34
14
  import {
35
15
  Page,
36
16
  Navbar,
37
17
  NavTitleLarge,
38
18
  Card
39
19
  } from 'zmp-framework/react';
40
- `.trim()
41
- : `
20
+ `.trim():`
42
21
  import {
43
22
  Page,
44
23
  Navbar,
@@ -46,32 +25,27 @@ module.exports = (options) => {
46
25
  List,
47
26
  ListItem,
48
27
  Card,
49
- ${stateManagement === 'store' ? 'useStore,' : ''}
50
- } from 'zmp-framework/react';${stateManagement === 'recoil' ? `
28
+ ${"store"===o?"useStore,":""}
29
+ } from 'zmp-framework/react';${"recoil"===o?`
51
30
  import { useRecoilValue } from 'recoil';
52
- import { userState } from '../state';` : ''}
31
+ import { userState } from '../state';`:""}
53
32
  import AppItems from '../components/app-items';
54
33
  import UserCard from '../components/user-card';
55
- `.trim()
56
- }
34
+ `.trim()}
57
35
 
58
36
  const HomePage = () => {
59
- ${template !== 'blank' ? (stateManagement === 'recoil' ? "const user = useRecoilValue(userState);" : "const user = useStore('user');") : ''}
37
+ ${"blank"!==i?"recoil"===o?"const user = useRecoilValue(userState);":"const user = useStore('user');":""}
60
38
  return (
61
- <Page name="home" ${template === 'tabs' ? '' : 'navbarLarge'}>${template !== 'tabs' ? `
39
+ <Page name="home" ${"tabs"===i?"":"navbarLarge"}>${"tabs"!==i?`
62
40
  {/* Top Navbar */}
63
- <Navbar ${fillBars ? 'fill' : ''}>
64
- <NavTitleLarge>${name}</NavTitleLarge>
65
- </Navbar>`
66
- : ''
67
- }
41
+ <Navbar ${s?"fill":""}>
42
+ <NavTitleLarge>${a}</NavTitleLarge>
43
+ </Navbar>`:""}
68
44
  {/* Page content */}
69
45
  <Card inset>
70
- ${description.trim()}
46
+ ${n.trim()}
71
47
  </Card>
72
- ${
73
- template !== 'blank' && template !== 'tabs'
74
- ? `
48
+ ${"blank"!==i&&"tabs"!==i?`
75
49
  {/* User info */}
76
50
  <List>
77
51
  <ListItem link="/user/">
@@ -88,9 +62,7 @@ module.exports = (options) => {
88
62
  <ListItem title="Default Route (404)" link="/something-that-doesnt-exist" />
89
63
  <ListItem title="About" link="/about/" />
90
64
  </List>
91
- `.trim()
92
- : ''
93
- }${template === 'tabs' ? `
65
+ `.trim():""}${"tabs"===i?`
94
66
  {/* Grid apps */}
95
67
  <AppItems />
96
68
 
@@ -100,12 +72,10 @@ module.exports = (options) => {
100
72
  <ListItem title="Default Route (404)" link="/something-that-doesnt-exist" />
101
73
  <ListItem title="About" link="/about/" />
102
74
  </List>
103
- `.trim() : ''}
75
+ `.trim():""}
104
76
  </Page>
105
77
  );
106
78
  }
107
79
 
108
80
  export default HomePage;
109
- `
110
- ).trim();
111
- };
81
+ `).trim()};
@@ -1,25 +1,7 @@
1
- const templateIf = require('../../utils/template-if');
2
- const indent = require('../../utils/indent');
3
- const appParameters = require('../app-parameters');
4
-
5
- module.exports = (options) => {
6
- const { template, theming, stateManagement } = options;
7
-
8
- // Views
9
- let views = '';
10
- if (template === 'single-view' || template === 'blank') {
11
- views = indent(
12
- 0,
13
- `
1
+ "use strict";const e=require("../../utils/template-if"),i=require("../../utils/indent"),a=require("../app-parameters");module.exports=t=>{let{template:r,theming:o,stateManagement:m}=t,s="";return("single-view"===r||"blank"===r)&&(s=i(0,`
14
2
  {/* Your main view, should have "view-main" class */}
15
3
  <View main className="safe-areas" url="/" />
16
- `
17
- );
18
- }
19
- if (template === 'tabs') {
20
- views = indent(
21
- 0,
22
- `
4
+ `)),"tabs"===r&&(s=i(0,`
23
5
  {/* TabView container */}
24
6
  <TabView className="safe-areas">
25
7
  {/* Tabbar for switching Tab*/}
@@ -39,28 +21,19 @@ module.exports = (options) => {
39
21
  <View id="view-catalog" name="catalog" tab url="/catalog/" />
40
22
  <View id="view-settings" name="settings" tab url="/settings/" />
41
23
  </TabView>
42
- `
43
- );
44
- }
45
-
46
- return indent(
47
- 0,
48
- `
24
+ `)),i(0,`
49
25
  import React, { useEffect } from 'react';
50
- ${['blank', 'single-view'].indexOf(template) >= 0
51
- ? `
26
+ ${["blank","single-view"].indexOf(r)>=0?`
52
27
  import { zmpready, App, View } from 'zmp-framework/react';
53
- `.trim()
54
- : `
28
+ `.trim():`
55
29
  import { zmpready, App, TabView, View, Tabbar, Link } from 'zmp-framework/react';
56
- `.trim()
57
- }
58
- ${templateIf(stateManagement === 'recoil', () => `import { RecoilRoot } from 'recoil';`, () => `import store from '../store';`)}
30
+ `.trim()}
31
+ ${e("recoil"===m,()=>"import { RecoilRoot } from 'recoil';",()=>"import store from '../store';")}
59
32
 
60
33
  const MyApp = () => {
61
34
  // ZMP Parameters
62
35
  const zmpparams = {
63
- ${indent(8, appParameters(options))}
36
+ ${i(8,a(t))}
64
37
  };
65
38
  useEffect(() => {
66
39
  zmpready(() => {
@@ -69,16 +42,14 @@ ${indent(8, appParameters(options))}
69
42
  }, [])
70
43
 
71
44
  ${`
72
- return (${stateManagement === 'recoil' ? `
73
- <RecoilRoot>` : ''}
74
- ${indent(stateManagement === 'recoil' ? 2 : 0, `<App {...zmpparams} ${theming.darkTheme ? 'themeDark' : ''}>`)}
75
- ${indent(stateManagement === 'recoil' ? 12 : 10, views.trim())}
76
- ${indent(stateManagement === 'recoil' ? 2 : 0, `</App>`)}${stateManagement === 'recoil' ? `
77
- </RecoilRoot>` : ''}
45
+ return (${"recoil"===m?`
46
+ <RecoilRoot>`:""}
47
+ ${i("recoil"===m?2:0,`<App {...zmpparams} ${o.darkTheme?"themeDark":""}>`)}
48
+ ${i("recoil"===m?12:10,s.trim())}
49
+ ${i("recoil"===m?2:0,"</App>")}${"recoil"===m?`
50
+ </RecoilRoot>`:""}
78
51
  );
79
52
  `.trim()}
80
53
  }
81
54
  export default MyApp;
82
- `
83
- ).trim();
84
- };
55
+ `).trim()};
@@ -1,16 +1 @@
1
- module.exports = (options) => {
2
- const { template } = options;
3
-
4
- if (template === 'blank') {
5
- return [];
6
- }
7
- // Webpack Routes
8
- const routes = ['/user', '/form', '/dynamic-route', '/about', '/404'];
9
- if (template === 'tabs') {
10
- routes.push(...['/catalog', '/settings']);
11
- } else if (template === 'split-view') {
12
- routes.push(...['/left-page-1', '/left-page-2']);
13
- }
14
-
15
- return routes;
16
- };
1
+ "use strict";module.exports=t=>{let{template:e}=t;if("blank"===e)return[];let s=["/user","/form","/dynamic-route","/about","/404"];return"tabs"===e?s.push("/catalog","/settings"):"split-view"===e&&s.push("/left-page-1","/left-page-2"),s};
@@ -1,51 +1,29 @@
1
- const templateIf = require('../../utils/template-if');
2
- const indent = require('../../utils/indent');
3
- const stylesExtension = require('../../utils/styles-extension');
4
-
5
- module.exports = (options) => {
6
- const { cssPreProcessor, theming, customBuild, includeTailwind } = options;
7
-
8
- let scripts = '';
9
-
10
- scripts += indent(
11
- 0,
12
- `
1
+ "use strict";const t=require("../../utils/template-if"),o=require("../../utils/indent"),e=require("../../utils/styles-extension");module.exports=r=>{let{cssPreProcessor:p,theming:m,customBuild:s,includeTailwind:i}=r,n="";return(n+=o(0,`
13
2
  // Import React and ReactDOM
14
3
  import React from 'react';
15
4
  import { createRoot } from 'react-dom/client';
16
5
 
17
6
  // Import ZMP
18
- import ZMP from '${
19
- customBuild ? './zmp-custom.js' : 'zmp-framework/core/lite-bundle'
20
- }';
7
+ import ZMP from '${s?"./zmp-custom.js":"zmp-framework/core/lite-bundle"}';
21
8
 
22
9
  // Import ZMP-React Plugin
23
- import ZMPReact from 'zmp-framework/react';${includeTailwind ? `
10
+ import ZMPReact from 'zmp-framework/react';${i?`
24
11
 
25
12
  // Import tailwind styles
26
- import './css/tailwind.css';` : ''}
13
+ import './css/tailwind.css';`:""}
27
14
 
28
15
  // Import ZMP Styles
29
- ${templateIf(
30
- customBuild,
31
- () => `
16
+ ${t(s,()=>`
32
17
  import './css/zmp-custom.less';
33
- `,
34
- () => `
35
- import 'zmp-framework/${
36
- theming.useUiKits ? 'zmp-bundle.min.css' : 'zmp.min.css'
37
- }';
38
- `
39
- )}
18
+ `,()=>`
19
+ import 'zmp-framework/${m.useUiKits?"zmp-bundle.min.css":"zmp.min.css"}';
20
+ `)}
40
21
 
41
22
  // Import Icons and App Custom Styles
42
- ${templateIf(
43
- theming.iconFonts,
44
- () => `
23
+ ${t(m.iconFonts,()=>`
45
24
  import './css/icons.css';
46
- `
47
- )}
48
- import './css/app.${stylesExtension(cssPreProcessor)}';
25
+ `)}
26
+ import './css/app.${e(p)}';
49
27
 
50
28
  // Import App Component
51
29
  import App from './components/app.jsx';
@@ -61,8 +39,4 @@ module.exports = (options) => {
61
39
  // Mount React App
62
40
  const root = createRoot(document.getElementById('app'));
63
41
  root.render(React.createElement(App));
64
- `
65
- );
66
-
67
- return scripts.trim();
68
- };
42
+ `)).trim()};
@@ -1,10 +1,4 @@
1
- const indent = require('../../../utils/indent');
2
-
3
- // eslint-disable-next-line no-unused-vars
4
- module.exports = (options) => {
5
- return indent(
6
- 0,
7
- `
1
+ "use strict";const t=require("../../../utils/indent");module.exports=e=>t(0,`
8
2
  import React from 'react';
9
3
  import { Page, Card, Title, Box } from 'zmp-framework/react';
10
4
  import NavbarBack from '../components/navbar-back';
@@ -22,6 +16,4 @@ module.exports = (options) => {
22
16
  );
23
17
 
24
18
  export default NotFoundPage;
25
- `
26
- ).trim();
27
- };
19
+ `).trim();
@@ -1,10 +1,4 @@
1
- const indent = require('../../../utils/indent');
2
-
3
- // eslint-disable-next-line no-unused-vars
4
- module.exports = (options) => {
5
- return indent(
6
- 0,
7
- `
1
+ "use strict";const t=require("../../../utils/indent");module.exports=o=>t(0,`
8
2
  import React from 'react'
9
3
  import { Actions, ActionsButton, ActionsGroup, ActionsLabel, Button, Card, Page, Box } from 'zmp-framework/react';
10
4
  import NavbarBack from '../components/navbar-back';
@@ -47,6 +41,4 @@ module.exports = (options) => {
47
41
  }
48
42
 
49
43
  export default AboutPage;
50
- `
51
- ).trim();
52
- };
44
+ `).trim();
@@ -1,11 +1,4 @@
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
- `
1
+ "use strict";const t=require("../../../utils/indent");module.exports=e=>"recoil"===e.stateManagement?t(0,`
9
2
  import React from "react";
10
3
  import { useRecoilState } from 'recoil';
11
4
  import { Page, Title, List, ListItem, Box, Button } from 'zmp-framework/react';
@@ -51,12 +44,7 @@ module.exports = (options) => {
51
44
  };
52
45
 
53
46
  export default CatalogPage;
54
- `
55
- ).trim();
56
- }
57
- return indent(
58
- 0,
59
- `
47
+ `).trim():t(0,`
60
48
  import React from "react";
61
49
  import {
62
50
  Page,
@@ -107,6 +95,4 @@ module.exports = (options) => {
107
95
  };
108
96
 
109
97
  export default CatalogPage;
110
- `
111
- ).trim();
112
- };
98
+ `).trim();
@@ -1,10 +1,4 @@
1
- const indent = require('../../../utils/indent');
2
-
3
- // eslint-disable-next-line no-unused-vars
4
- module.exports = (options) => {
5
- return indent(
6
- 0,
7
- `
1
+ "use strict";const t=require("../../../utils/indent");module.exports=e=>t(0,`
8
2
  import React from 'react'
9
3
  import { Button, Box, List, ListItem, Page } from 'zmp-framework/react'
10
4
  import NavbarBack from '../components/navbar-back';
@@ -75,6 +69,4 @@ module.exports = (options) => {
75
69
  }
76
70
 
77
71
  export default DymanicRoutePage;
78
- `
79
- ).trim();
80
- };
72
+ `).trim();
@@ -1,19 +1,7 @@
1
- const indent = require('../../../utils/indent');
2
-
3
- module.exports = (options) => {
4
- const { template } = options;
5
- const hideNavBar =
6
- template === 'tabs'
7
- ? `onPageBeforeIn={()=>{
1
+ "use strict";const e=require("../../../utils/indent");module.exports=t=>{let{template:a}=t,o="tabs"===a?`onPageBeforeIn={()=>{
8
2
  //hide navbar
9
3
  zmp.toolbar.hide('#app-tab-bar')
10
- }}`
11
- : '';
12
-
13
- if (options.stateManagement === 'recoil') {
14
- return indent(
15
- 0,
16
- `
4
+ }}`:"";return"recoil"===t.stateManagement?e(0,`
17
5
  import React from 'react';
18
6
  import { Button, Card, Input, Page, Box, zmp } from 'zmp-framework/react';
19
7
  import { useRecoilState } from 'recoil';
@@ -45,7 +33,7 @@ module.exports = (options) => {
45
33
  return (
46
34
  <Page
47
35
  name="user-form"
48
- ${hideNavBar}
36
+ ${o}
49
37
  >
50
38
  <NavbarBack title="Update user info" />
51
39
  <Box>
@@ -77,13 +65,7 @@ module.exports = (options) => {
77
65
  }
78
66
 
79
67
  export default FormPage;
80
- `
81
- ).trim();
82
- }
83
-
84
- return indent(
85
- 0,
86
- `
68
+ `).trim():e(0,`
87
69
  import React from 'react';
88
70
  import { Button, Card, Input, Page, useStore, zmp, Box } from 'zmp-framework/react';
89
71
  import NavbarBack from '../components/navbar-back';
@@ -115,7 +97,7 @@ module.exports = (options) => {
115
97
  return (
116
98
  <Page
117
99
  name="user-form"
118
- ${hideNavBar}
100
+ ${o}
119
101
  >
120
102
  <NavbarBack title="Update user info" />
121
103
  <Box>
@@ -147,6 +129,4 @@ module.exports = (options) => {
147
129
  }
148
130
 
149
131
  export default FormPage;
150
- `
151
- ).trim();
152
- };
132
+ `).trim()};
@@ -1,17 +1 @@
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
+ "use strict";const e=require("./user"),r=require("./form"),u=require("./dynamic-route"),i=require("./about"),t=require("./404"),o=require("./settings"),q=require("./catalog");module.exports={copyUser:e,copyForm:r,copyDynamicRoute:u,copyAbout:i,copy404:t,copySettings:o,copyCatalog:q};