From 9372ffc793fcdab3cabb83a2815e99c5ccfc529a Mon Sep 17 00:00:00 2001 From: * <*> Date: Fri, 15 Sep 2023 15:21:55 +0800 Subject: [PATCH] Match-id-6681e7ed3937705c61be3a4dba6e63ba2034cb7c --- packages/create-inula/.prettierrc.js | 32 + packages/create-inula/index.js | 31 + .../{InulaJS-antd => Inula-antd}/index.js | 1 - .../lib/generators/Inula-antd/meta.json | 3 + .../templates/vite/.gitignore | 0 .../templates/vite/index.html | 2 +- .../templates/vite/mock/_utils.js | 25 - .../templates/vite/mock/dashboard.js | 58 ++ .../templates/vite/mock/route.js | 0 .../templates/vite/mock/user.js | 87 +-- .../templates/vite/package.json | 6 +- .../templates/vite/public/favicon.ico | Bin .../templates/vite/public/logo.svg | 0 .../templates/vite/public/logo/logo@128.png | Bin .../templates/vite/public/logo/logo@144.png | Bin .../templates/vite/public/logo/logo@152.png | Bin .../templates/vite/public/logo/logo@192.png | Bin .../templates/vite/public/logo/logo@384.png | Bin .../templates/vite/public/logo/logo@512.png | Bin .../templates/vite/public/logo/logo@72.png | Bin .../templates/vite/public/logo/logo@96.png | Bin .../templates/vite/public/vite.svg | 0 .../admin/components/DropOption/DropOption.js | 2 +- .../admin/components/DropOption/package.json | 0 .../src/admin}/components/Ellipsis/index.d.ts | 2 +- .../src/admin/components/Ellipsis/index.js | 2 +- .../src/admin/components/Ellipsis/index.md | 0 .../components/Ellipsis/index.module.less | 0 .../admin/components/Ellipsis/index.test.js | 0 .../admin/components/FilterItem/FilterItem.js | 2 +- .../FilterItem/FilterItem.module.less | 0 .../admin/components/FilterItem/package.json | 0 .../admin}/components/GlobalFooter/index.d.ts | 2 +- .../admin/components/GlobalFooter/index.js | 2 +- .../admin/components/GlobalFooter/index.md | 0 .../components/GlobalFooter/index.module.less | 0 .../vite/src/admin/components/Layout/Bread.js | 2 +- .../admin/components/Layout/Bread.module.less | 0 .../src/admin/components/Layout/Header.js | 63 ++ .../components/Layout/Header.module.less | 0 .../vite/src/admin/components/Layout/Sider.js | 2 +- .../admin/components/Layout/Sider.module.less | 0 .../src/admin/components/Layout/SiderMenu.tsx | 2 +- .../vite/src/admin/components/Layout/index.js | 0 .../src/admin/components/Loader/Loader.js | 2 +- .../components/Loader/Loader.module.less | 0 .../src/admin/components/Loader/package.json | 0 .../vite/src/admin/components/Page/Page.js | 2 +- .../admin/components/Page/Page.module.less | 0 .../src/admin/components/Page/package.json | 0 .../src/admin/components/ScrollBar/index.js | 0 .../src/admin/components/ScrollBar/index.less | 0 .../vite/src/admin/components/index.js | 3 +- .../vite/src/admin}/layouts/BaseLayout.js | 6 +- .../vite/src/admin/layouts/BaseLayout.less | 0 .../admin/layouts/PrimaryLayout.module.less | 0 .../vite/src/admin/layouts/PrimaryLayout.tsx | 2 +- .../vite/src/admin/layouts/PublicLayout.js | 0 .../templates/vite/src/admin/layouts/index.js | 2 +- .../vite/src/admin/locales/en/messages.js | 0 .../vite/src/admin/locales/pt-br/messages.js | 0 .../vite/src/admin/locales/zh/messages.js | 0 .../templates/vite/src/admin/main.jsx | 6 +- .../vite/src/admin/models/app-model.ts | 5 +- .../templates/vite/src/admin/pages/404.jsx | 2 +- .../vite/src/admin/pages/404.module.less | 0 .../admin/pages/dashboard/components/index.js | 6 + .../pages/dashboard/components/numberCard.js | 7 +- .../components/numberCard.module.less | 0 .../admin/pages/dashboard/components/quote.js | 2 +- .../dashboard/components/quote.module.less | 0 .../admin/pages/dashboard/components/sales.js | 2 +- .../dashboard/components/sales.module.less | 0 .../pages/dashboard/components/weather.js | 2 +- .../dashboard/components/weather.module.less | 0 .../admin/pages/dashboard/index.module.less | 0 .../vite/src/admin/pages/dashboard/index.tsx | 6 +- .../vite/src/admin}/pages/dashboard/model.ts | 2 +- .../pages/dashboard/services/dashboard.js | 0 .../admin/pages/dashboard/services/weather.js | 0 .../templates/vite/src/admin/pages/index.js | 2 +- .../templates/vite/src/admin/pages/routes.js | 2 +- .../src/admin/pages/user/components/Filter.js | 2 +- .../pages/user/components/Filter.module.less | 0 .../src/admin/pages/user/components/List.js | 2 +- .../pages/user/components/List.module.less | 0 .../src/admin/pages/user/components/Modal.js | 2 +- .../vite/src/admin/pages/user/id/index.js | 2 +- .../src/admin/pages/user/id/index.module.less | 0 .../src/admin/pages/user/id/models/detail.js | 0 .../vite/src/admin/pages/user/index.tsx | 2 +- .../vite/src/admin}/pages/user/model.ts | 2 +- .../vite/src/admin/plugins/onError.js | 0 .../templates/vite/src/admin/services/api.js | 0 .../vite/src/admin/services/index.js | 0 .../vite/src/admin/themes/default.less | 0 .../vite/src/admin/themes/index.less | 0 .../vite/src/admin/themes/mixin.less | 0 .../templates/vite/src/admin/themes/vars.less | 0 .../templates/vite/src/admin/utils/city.js | 0 .../templates/vite/src/admin/utils/config.js | 3 - .../vite/src/admin/utils/constant.js | 0 .../vite/src/admin/utils/iconMap.jsx | 2 +- .../templates/vite/src/admin/utils/index.js | 6 +- .../vite/src/admin/utils/index.test.js | 0 .../templates/vite/src/admin/utils/intl.js | 2 +- .../templates/vite/src/admin/utils/request.js | 0 .../templates/vite/src/admin/utils/theme.js | 14 + .../templates/vite/vite.config.js | 8 +- .../templates/webpack/.editorconfig | 0 .../Inula-antd/templates/webpack/.env | 4 + .../templates/webpack/.eslintignore | 0 .../templates/webpack/.eslintrc.js | 0 .../templates/webpack/.gitignore | 0 .../Inula-antd/templates/webpack/.horizon.ts | 4 + .../templates/webpack/.prettierignore | 0 .../templates/webpack/.prettierrc.js | 0 .../templates/webpack/README.md | 8 +- .../templates/webpack/babel.config.js | 2 +- .../templates/webpack/mock/_utils.js | 27 - .../templates/webpack/mock/dashboard.js | 53 ++ .../templates/webpack/mock/route.js | 0 .../templates/webpack/mock/user.js | 58 +- .../templates/webpack/package.json | 8 +- .../templates/webpack/public/favicon.ico | Bin .../templates/webpack/public/logo.svg | 0 .../webpack/public/logo/logo@128.png | Bin .../webpack/public/logo/logo@144.png | Bin .../webpack/public/logo/logo@152.png | Bin .../webpack/public/logo/logo@192.png | Bin .../webpack/public/logo/logo@384.png | Bin .../webpack/public/logo/logo@512.png | Bin .../templates/webpack/public/logo/logo@72.png | Bin .../templates/webpack/public/logo/logo@96.png | Bin .../src/components/DropOption/DropOption.js | 2 +- .../src/components/DropOption/package.json | 0 .../src}/components/Ellipsis/index.d.ts | 2 +- .../webpack/src/components/Ellipsis/index.js | 2 +- .../src/components/Ellipsis/index.less | 0 .../webpack/src/components/Ellipsis/index.md | 0 .../src/components/Ellipsis/index.test.js | 0 .../src/components/FilterItem/FilterItem.js | 2 +- .../src/components/FilterItem/FilterItem.less | 0 .../src/components/FilterItem/package.json | 0 .../src}/components/GlobalFooter/index.d.ts | 4 +- .../src/components/GlobalFooter/index.js | 2 +- .../src/components/GlobalFooter/index.less | 0 .../src/components/GlobalFooter/index.md | 0 .../webpack/src/components/Layout/Bread.js | 2 +- .../webpack/src/components/Layout/Bread.less | 0 .../webpack/src/components/Layout/Header.js | 71 ++ .../webpack/src/components/Layout/Header.less | 0 .../webpack/src/components/Layout/Sider.js | 2 +- .../webpack/src/components/Layout/Sider.less | 0 .../src/components/Layout/SiderMenu.tsx | 2 +- .../webpack/src/components/Layout/index.js | 0 .../webpack/src/components/Loader/Loader.js | 2 +- .../webpack/src/components/Loader/Loader.less | 0 .../src/components/Loader/package.json | 0 .../webpack/src/components/Page/Page.js | 2 +- .../webpack/src/components/Page/Page.less | 0 .../webpack/src/components/Page/package.json | 0 .../webpack/src/components/ScrollBar/index.js | 0 .../src/components/ScrollBar/index.less | 0 .../templates/webpack/src/components/index.js | 3 +- .../templates/webpack/src/entry.tsx | 5 +- .../webpack/src}/layouts/BaseLayout.js | 6 +- .../webpack/src/layouts/BaseLayout.less | 0 .../webpack/src/layouts/PrimaryLayout.less | 0 .../webpack/src/layouts/PrimaryLayout.tsx | 2 +- .../webpack/src/layouts/PublicLayout.js | 0 .../templates/webpack/src/layouts/index.js | 4 +- .../webpack/src/locales/en/messages.js | 0 .../webpack/src/locales/pt-br/messages.js | 0 .../webpack/src/locales/zh/messages.js | 0 .../templates/webpack/src/models/app-model.ts | 2 +- .../templates/webpack/src/pages/404.jsx | 2 +- .../templates/webpack/src/pages/404.less | 0 .../src/pages/dashboard/components/index.js | 6 + .../pages/dashboard/components/numberCard.js | 5 +- .../dashboard/components/numberCard.less | 0 .../src/pages/dashboard/components/quote.js | 2 +- .../src/pages/dashboard/components/quote.less | 0 .../src/pages/dashboard/components/sales.js | 2 +- .../src/pages/dashboard/components/sales.less | 0 .../src/pages/dashboard/components/weather.js | 2 +- .../pages/dashboard/components/weather.less | 0 .../webpack/src/pages/dashboard/index.less | 0 .../webpack/src/pages/dashboard/index.tsx | 14 +- .../webpack/src}/pages/dashboard/model.ts | 8 +- .../src/pages/dashboard/services/dashboard.js | 0 .../src/pages/dashboard/services/weather.js | 0 .../templates/webpack/src/pages/index.js | 2 +- .../templates/webpack/src/pages/routes.js | 5 +- .../src/pages/user/components/Filter.js | 2 +- .../src/pages/user/components/Filter.less | 0 .../webpack/src/pages/user/components/List.js | 5 +- .../src/pages/user/components/List.less | 0 .../src/pages/user/components/Modal.js | 2 +- .../webpack/src/pages/user/id/index.js | 2 +- .../webpack/src/pages/user/id/index.less | 0 .../src/pages/user/id/models/detail.js | 0 .../webpack/src/pages/user/index.tsx | 2 +- .../webpack/src}/pages/user/model.ts | 2 +- .../templates/webpack/src/plugins/onError.js | 0 .../templates/webpack/src/services/api.js | 0 .../templates/webpack/src/services/index.js | 0 .../templates/webpack/src/themes/default.less | 0 .../templates/webpack/src/themes/index.less | 0 .../templates/webpack/src/themes/mixin.less | 0 .../templates/webpack/src/themes/vars.less | 0 .../templates/webpack/src/utils/city.js | 0 .../templates/webpack/src/utils/config.js | 3 - .../templates/webpack/src/utils/constant.js | 0 .../templates/webpack/src/utils/iconMap.jsx | 2 +- .../templates/webpack/src/utils/index.js | 6 +- .../templates/webpack/src/utils/index.test.js | 0 .../templates/webpack/src/utils/intl.js | 2 +- .../templates/webpack/src/utils/request.js | 0 .../templates/webpack/src/utils/theme.js | 0 .../templates/webpack/tsconfig.json | 0 .../templates/webpack/webpack/devServer.js | 2 +- .../templates/webpack/webpack/mockServer.js | 0 .../webpack/webpack/webpack.basic.js | 4 +- .../templates/webpack/webpack/webpack.dev.js | 0 .../templates/webpack/webpack/webpack.prod.js | 3 +- .../lib/generators/InulaJS-antd/meta.json | 3 - .../templates/vite/mock/dashboard.js | 142 ---- .../templates/vite/public/america.svg | 63 -- .../templates/vite/public/china.svg | 23 - .../templates/vite/public/portugal.svg | 40 - .../templates/vite/src/admin/assets/react.svg | 1 - .../src/admin/components/Editor/Editor.js | 17 - .../components/Editor/Editor.module.less | 106 --- .../src/admin/components/Editor/package.json | 6 - .../src/admin/components/Layout/Header.js | 116 --- .../pages/dashboard/components/browser.js | 43 -- .../dashboard/components/browser.module.less | 7 - .../pages/dashboard/components/comments.js | 63 -- .../dashboard/components/comments.module.less | 43 -- .../pages/dashboard/components/completed.js | 86 --- .../components/completed.module.less | 49 -- .../admin/pages/dashboard/components/cpu.js | 58 -- .../dashboard/components/cpu.module.less | 40 - .../admin/pages/dashboard/components/index.js | 12 - .../pages/dashboard/components/recentSales.js | 60 -- .../components/recentSales.module.less | 8 - .../dashboard/components/user-background.png | Bin 51198 -> 0 bytes .../admin/pages/dashboard/components/user.js | 55 -- .../dashboard/components/user.module.less | 88 --- .../templates/vite/src/admin/utils/theme.js | 29 - .../templates/webpack/mock/dashboard.js | 131 ---- .../templates/webpack/public/america.svg | 63 -- .../templates/webpack/public/china.svg | 23 - .../templates/webpack/public/portugal.svg | 40 - .../webpack/src/components/Editor/Editor.js | 17 - .../webpack/src/components/Editor/Editor.less | 106 --- .../src/components/Editor/package.json | 6 - .../webpack/src/components/Layout/Header.js | 125 --- .../src/pages/dashboard/components/browser.js | 43 -- .../pages/dashboard/components/browser.less | 7 - .../pages/dashboard/components/comments.js | 63 -- .../pages/dashboard/components/comments.less | 43 -- .../pages/dashboard/components/completed.js | 86 --- .../pages/dashboard/components/completed.less | 49 -- .../src/pages/dashboard/components/cpu.js | 58 -- .../src/pages/dashboard/components/cpu.less | 40 - .../src/pages/dashboard/components/index.js | 12 - .../pages/dashboard/components/recentSales.js | 60 -- .../dashboard/components/recentSales.less | 8 - .../dashboard/components/user-background.png | Bin 51198 -> 0 bytes .../src/pages/dashboard/components/user.js | 55 -- .../src/pages/dashboard/components/user.less | 88 --- .../lib/generators/Simple-app/index.js | 1 - .../Simple-app/templates/vite/package.json | 6 +- .../Simple-app/templates/vite/src/index.jsx | 6 +- .../Simple-app/templates/vite/vite.config.js | 6 +- .../Simple-app/templates/webpack/package.json | 4 +- .../Simple-app/templates/webpack/src/App.js | 12 +- .../Simple-app/templates/webpack/src/index.js | 2 +- .../templates/webpack/webpack.config.js | 4 +- packages/create-inula/package.json | 16 +- packages/inula-cli/.eslintrc.cjs | 50 ++ packages/inula-cli/.prettierignore | 3 + packages/inula-cli/.prettierrc.js | 15 + packages/inula-cli/bin/start.js | 5 + .../builtInPlugins/command/build/build.d.ts | 2 + .../lib/builtInPlugins/command/build/build.js | 49 ++ .../builtInPlugins/command/dev/buildDev.d.ts | 3 + .../builtInPlugins/command/dev/buildDev.js | 72 ++ .../command/generate/generate.d.ts | 3 + .../command/generate/generate.js | 100 +++ .../lib/builtInPlugins/command/help/help.d.ts | 2 + .../lib/builtInPlugins/command/help/help.js | 31 + .../command/mock/webpack_mock.d.ts | 2 + .../command/mock/webpack_mock.js | 24 + .../builtInPlugins/command/proxy/proxy.d.ts | 2 + .../lib/builtInPlugins/command/proxy/proxy.js | 53 ++ .../lib/builtInPlugins/command/test/test.d.ts | 3 + .../lib/builtInPlugins/command/test/test.js | 19 + .../command/version/version.d.ts | 3 + .../builtInPlugins/command/version/version.js | 21 + packages/inula-cli/lib/cli/cli.d.ts | 1 + packages/inula-cli/lib/cli/cli.js | 74 ++ packages/inula-cli/lib/config/Config.d.ts | 20 + packages/inula-cli/lib/config/Config.js | 96 +++ packages/inula-cli/lib/core/Hub.d.ts | 49 ++ packages/inula-cli/lib/core/Hub.js | 188 +++++ packages/inula-cli/lib/enum/enum.d.ts | 14 + packages/inula-cli/lib/enum/enum.js | 16 + packages/inula-cli/lib/plugin/Plugin.d.ts | 43 ++ packages/inula-cli/lib/plugin/Plugin.js | 116 +++ packages/inula-cli/lib/plugin/PluginAPI.d.ts | 20 + packages/inula-cli/lib/plugin/PluginAPI.js | 50 ++ packages/inula-cli/lib/types/types.d.ts | 128 +++ packages/inula-cli/lib/types/types.js | 3 + packages/inula-cli/lib/utils/build.d.ts | 2 + packages/inula-cli/lib/utils/build.js | 61 ++ .../inula-cli/lib/utils/dynamicImport.d.ts | 1 + packages/inula-cli/lib/utils/dynamicImport.js | 16 + .../inula-cli/lib/utils/initializeEnv.d.ts | 1 + packages/inula-cli/lib/utils/initializeEnv.js | 19 + packages/inula-cli/lib/utils/loadModule.d.ts | 1 + packages/inula-cli/lib/utils/loadModule.js | 59 ++ packages/inula-cli/lib/utils/loadPkg.d.ts | 2 + packages/inula-cli/lib/utils/loadPkg.js | 6 + packages/inula-cli/lib/utils/logger.d.ts | 14 + packages/inula-cli/lib/utils/logger.js | 37 + packages/inula-cli/lib/utils/mockServer.d.ts | 6 + packages/inula-cli/lib/utils/mockServer.js | 102 +++ .../inula-cli/lib/utils/readDirectory.d.ts | 1 + packages/inula-cli/lib/utils/readDirectory.js | 26 + packages/inula-cli/lib/utils/setupProxy.d.ts | 3 + packages/inula-cli/lib/utils/setupProxy.js | 11 + packages/inula-cli/lib/utils/util.d.ts | 4 + packages/inula-cli/lib/utils/util.js | 52 ++ packages/inula-cli/package.json | 67 ++ .../src/builtInPlugins/command/build/build.ts | 37 + .../builtInPlugins/command/dev/buildDev.ts | 65 ++ .../command/generate/generate.ts | 104 +++ .../src/builtInPlugins/command/help/help.ts | 36 + .../command/mock/webpack_mock.ts | 16 + .../src/builtInPlugins/command/proxy/proxy.ts | 44 ++ .../src/builtInPlugins/command/test/test.ts | 13 + .../builtInPlugins/command/version/version.ts | 31 + packages/inula-cli/src/cli/cli.ts | 73 ++ packages/inula-cli/src/config/Config.ts | 108 +++ packages/inula-cli/src/core/Hub.ts | 220 ++++++ packages/inula-cli/src/enum/enum.ts | 15 + packages/inula-cli/src/plugin/Plugin.ts | 152 ++++ packages/inula-cli/src/plugin/PluginAPI.ts | 60 ++ .../src/template/test/cjs/jest.config.js | 6 + .../inula-cli/src/template/test/cjs/sum.js | 5 + .../src/template/test/cjs/sum.test.js | 7 + .../src/template/test/mjs/jest.config.js | 6 + .../inula-cli/src/template/test/mjs/sum.js | 5 + .../src/template/test/mjs/sum.test.js | 7 + .../src/template/test/ts/jest.config.ts | 7 + .../src/template/test/ts/sum.test.ts | 7 + .../inula-cli/src/template/test/ts/sum.ts | 5 + packages/inula-cli/src/types/types.ts | 153 ++++ packages/inula-cli/src/utils/build.ts | 62 ++ packages/inula-cli/src/utils/dynamicImport.ts | 6 + packages/inula-cli/src/utils/initializeEnv.ts | 21 + packages/inula-cli/src/utils/loadModule.ts | 57 ++ packages/inula-cli/src/utils/loadPkg.ts | 8 + packages/inula-cli/src/utils/logger.ts | 42 + packages/inula-cli/src/utils/mockServer.ts | 130 ++++ packages/inula-cli/src/utils/readDirectory.ts | 28 + packages/inula-cli/src/utils/setupProxy.ts | 13 + packages/inula-cli/src/utils/util.ts | 60 ++ .../template/test/cjs/jest.config.js | 6 + packages/inula-cli/template/test/cjs/sum.js | 5 + .../inula-cli/template/test/cjs/sum.test.js | 7 + .../template/test/mjs/jest.config.js | 6 + packages/inula-cli/template/test/mjs/sum.js | 5 + .../inula-cli/template/test/mjs/sum.test.js | 7 + .../inula-cli/template/test/ts/jest.config.ts | 7 + .../inula-cli/template/test/ts/sum.test.ts | 7 + packages/inula-cli/template/test/ts/sum.ts | 5 + packages/inula-cli/tsconfig.json | 19 + packages/inula-intl/README.md | 726 +++++++++++++++++- packages/inula-intl/babel.config.js | 2 +- packages/inula-intl/example/App.tsx | 2 +- .../example/components/Example1.tsx | 2 +- .../example/components/Example2.tsx | 2 +- .../example/components/Example3.tsx | 2 +- .../example/components/Example4.tsx | 2 +- .../example/components/Example5.tsx | 2 +- .../example/components/Example6.tsx | 2 +- packages/inula-intl/example/index.tsx | 2 +- packages/inula-intl/example/locale/en.ts | 10 +- packages/inula-intl/index.ts | 14 + packages/inula-intl/package.json | 8 +- packages/inula-intl/rollup.config.js | 14 +- packages/inula-intl/src/constants/index.ts | 18 +- .../src/core/components/FormattedMessage.tsx | 2 +- .../src/core/components/I18nProvider.tsx | 8 +- .../src/core/components/InjectI18n.tsx | 2 +- packages/inula-intl/src/core/createI18n.ts | 6 +- packages/inula-intl/src/core/hook/useI18n.ts | 11 +- packages/inula-intl/src/format/Translation.ts | 2 +- .../src/format/generateFormatters.ts | 131 ++-- .../inula-intl/src/format/getFormatMessage.ts | 2 +- packages/inula-intl/src/types/interfaces.ts | 9 +- packages/inula-intl/src/types/types.ts | 21 +- .../inula-intl/src/utils/copyStaticProps.ts | 14 +- .../inula-intl/src/utils/parseRuleUtils.ts | 16 +- packages/inula-intl/src/utils/utils.ts | 2 +- .../tests/format/Translation.test.ts | 8 +- .../inula-intl/tests/format/compile.test.ts | 6 + .../tests/format/getFormatMessage.test.ts | 51 +- .../tests/utils/getTokenAST.test.ts | 2 +- .../inula-intl/tests/utils/ruleUtils.test.ts | 16 +- packages/inula-intl/webpack.config.js | 6 +- packages/inula-request/README.md | 26 +- packages/inula-request/babel.config.js | 8 +- .../examples/request/downloadTest.html | 4 +- .../examples/server/serverTest.mjs | 2 +- .../inula-request/examples/useIR/App .jsx | 4 +- .../inula-request/examples/useIR/index.html | 2 +- .../inula-request/examples/useIR/index.jsx | 2 +- packages/inula-request/index.ts | 4 +- packages/inula-request/package.json | 14 +- packages/inula-request/src/core/IrHeaders.ts | 2 +- .../inula-request/src/core/useIR/useIR.ts | 2 +- packages/inula-request/src/inulaRequest.ts | 2 - .../inula-request/src/types/interfaces.ts | 13 +- packages/inula-request/src/types/types.ts | 3 + .../inula-request/webpack.useIR.config.js | 8 +- packages/inula-router/README.md | 698 +++++++++++++++-- packages/inula-router/babel.config.js | 4 +- packages/inula-router/build-types.js | 65 ++ packages/inula-router/build.js | 9 +- packages/inula-router/package.json | 23 +- .../inula-router/src/configs/package.json | 2 +- .../src/connect-router/actions.ts | 4 +- .../src/connect-router/connectedRouter.tsx | 17 +- .../inula-router/src/router/BrowserRouter.tsx | 6 +- .../inula-router/src/router/HashRouter.tsx | 4 +- packages/inula-router/src/router/Link.tsx | 18 +- packages/inula-router/src/router/NavLink.tsx | 4 +- packages/inula-router/src/router/Prompt.tsx | 6 +- packages/inula-router/src/router/Redirect.tsx | 4 +- packages/inula-router/src/router/Route.tsx | 16 +- packages/inula-router/src/router/Router.tsx | 6 +- packages/inula-router/src/router/Switch.tsx | 10 +- .../src/router/__tests__/router.test.tsx | 2 +- packages/inula-router/src/router/context.tsx | 2 +- packages/inula-router/src/router/hooks.ts | 2 +- packages/inula-router/src/router/index2.ts | 2 +- .../inula-router/src/router/lifeCycleHook.ts | 2 +- .../inula-router/src/router/matcher/parser.ts | 2 +- .../inula-router/src/router/withRouter.tsx | 6 +- packages/inula-router/tsconfig.build.json | 15 + packages/inula-router/tsconfig.cbuild.json | 15 + packages/inula-router/tsconfig.json | 7 +- packages/inula/.gitignore | 3 +- packages/inula/npm/index.js | 4 +- packages/inula/package.json | 12 +- packages/inula/scripts/rollup/build-types.js | 65 ++ .../inula/scripts/rollup/rollup.config.js | 8 +- packages/inula/src/EventTypes.ts | 27 + packages/inula/src/dom/DOMExternal.ts | 22 +- packages/inula/src/dom/DOMOperator.ts | 21 +- .../DOMPropertiesHandler.ts | 4 +- .../inula/src/dom/SelectionRangeHandler.ts | 21 +- packages/inula/src/dom/utils/Common.ts | 2 +- .../src/dom/validators/PropertiesData.ts | 6 +- .../dom/valueHandler/SelectValueHandler.ts | 2 +- .../dom/valueHandler/TextareaValueHandler.ts | 2 +- packages/inula/src/event/ListenerGetter.ts | 6 +- packages/inula/src/event/MouseEvent.ts | 2 +- packages/inula/src/external/ChildrenUtil.ts | 22 +- packages/inula/src/external/InulaIs.ts | 17 +- packages/inula/src/external/JSXElement.ts | 3 +- packages/inula/src/external/JSXElementType.ts | 10 +- packages/inula/src/external/devtools.ts | 6 +- packages/inula/src/index.ts | 16 +- packages/inula/src/inulax/CommonUtils.ts | 6 +- packages/inula/src/inulax/adapters/redux.ts | 4 +- .../inula/src/inulax/adapters/reduxReact.ts | 28 +- packages/inula/src/inulax/devtools/index.ts | 16 +- packages/inula/src/inulax/proxy/Observer.ts | 8 +- .../proxy/handlers/ArrayProxyHandler.ts | 4 +- .../src/inulax/proxy/handlers/MapProxy.ts | 28 +- .../proxy/handlers/ObjectProxyHandler.ts | 8 +- .../src/inulax/proxy/handlers/SetProxy.ts | 22 +- .../src/inulax/proxy/handlers/WeakMapProxy.ts | 13 +- .../src/inulax/proxy/handlers/WeakSetProxy.ts | 10 +- .../inula/src/inulax/proxy/readonlyProxy.ts | 2 +- .../inula/src/inulax/store/StoreHandler.ts | 10 +- .../inula/src/inulax/{types.d.ts => types.ts} | 2 +- packages/inula/src/renderer/ErrorHandler.ts | 4 +- packages/inula/src/renderer/Renderer.ts | 4 +- packages/inula/src/renderer/TreeBuilder.ts | 12 +- packages/inula/src/renderer/Types.ts | 1 + packages/inula/src/renderer/UpdateHandler.ts | 2 +- .../renderer/components/BaseClassComponent.ts | 35 +- .../src/renderer/components/CreatePortal.ts | 8 +- .../src/renderer/components/CreateRef.ts | 4 +- .../src/renderer/components/ForwardRef.ts | 8 +- .../inula/src/renderer/components/Lazy.ts | 6 +- .../inula/src/renderer/components/Memo.ts | 11 +- .../components/context/CreateContext.ts | 4 +- .../src/renderer/diff/nodeDiffComparator.ts | 6 +- packages/inula/src/renderer/hooks/BaseHook.ts | 14 +- .../{EffectConstant.js => EffectConstant.ts} | 0 .../inula/src/renderer/hooks/HookExternal.ts | 76 +- packages/inula/src/renderer/hooks/HookMain.ts | 2 +- packages/inula/src/renderer/hooks/HookType.ts | 14 +- .../src/renderer/hooks/UseCallbackHook.ts | 3 +- .../inula/src/renderer/hooks/UseEffectHook.ts | 15 +- .../src/renderer/hooks/UseImperativeHook.ts | 10 +- .../inula/src/renderer/hooks/UseMemoHook.ts | 3 +- .../inula/src/renderer/hooks/UseRefHook.ts | 4 +- .../inula/src/renderer/hooks/UseStateHook.ts | 11 +- .../src/renderer/render/ClassComponent.ts | 8 +- packages/inula/src/renderer/render/DomText.ts | 1 - .../src/renderer/render/LazyComponent.ts | 2 +- .../src/renderer/render/MemoComponent.ts | 4 +- .../src/renderer/render/SuspenseComponent.ts | 38 +- .../render/class/ClassLifeCycleProcessor.ts | 19 +- .../src/renderer/submit/HookEffectHandler.ts | 6 +- .../src/renderer/submit/LifeCycleHandler.ts | 6 +- packages/inula/src/renderer/submit/Submit.ts | 2 +- .../src/renderer/taskExecutor/BrowserAsync.ts | 8 +- .../src/renderer/taskExecutor/TaskQueue.ts | 1 + packages/inula/src/renderer/vnode/VNode.ts | 1 + .../inula/src/renderer/vnode/VNodeCreator.ts | 6 +- packages/inula/src/types.ts | 440 +++++++++++ packages/inula/tsconfig.build.json | 11 + 532 files changed, 6772 insertions(+), 3242 deletions(-) create mode 100644 packages/create-inula/.prettierrc.js rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/index.js (96%) create mode 100644 packages/create-inula/lib/generators/Inula-antd/meta.json rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/.gitignore (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/index.html (90%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/mock/_utils.js (51%) create mode 100644 packages/create-inula/lib/generators/Inula-antd/templates/vite/mock/dashboard.js rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/mock/route.js (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/mock/user.js (57%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/package.json (95%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/public/favicon.ico (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/public/logo.svg (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/public/logo/logo@128.png (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/public/logo/logo@144.png (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/public/logo/logo@152.png (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/public/logo/logo@192.png (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/public/logo/logo@384.png (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/public/logo/logo@512.png (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/public/logo/logo@72.png (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/public/logo/logo@96.png (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/public/vite.svg (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/components/DropOption/DropOption.js (95%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/components/DropOption/package.json (100%) rename packages/create-inula/lib/generators/{InulaJS-antd/templates/webpack/src => Inula-antd/templates/vite/src/admin}/components/Ellipsis/index.d.ts (93%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/components/Ellipsis/index.js (99%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/components/Ellipsis/index.md (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/components/Ellipsis/index.module.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/components/Ellipsis/index.test.js (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/components/FilterItem/FilterItem.js (94%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/components/FilterItem/FilterItem.module.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/components/FilterItem/package.json (100%) rename packages/create-inula/lib/generators/{InulaJS-antd/templates/webpack/src => Inula-antd/templates/vite/src/admin}/components/GlobalFooter/index.d.ts (89%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/components/GlobalFooter/index.js (94%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/components/GlobalFooter/index.md (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/components/GlobalFooter/index.module.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/components/Layout/Bread.js (96%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/components/Layout/Bread.module.less (100%) create mode 100644 packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Layout/Header.js rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/components/Layout/Header.module.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/components/Layout/Sider.js (97%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/components/Layout/Sider.module.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/components/Layout/SiderMenu.tsx (97%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/components/Layout/index.js (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/components/Loader/Loader.js (93%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/components/Loader/Loader.module.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/components/Loader/package.json (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/components/Page/Page.js (93%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/components/Page/Page.module.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/components/Page/package.json (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/components/ScrollBar/index.js (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/components/ScrollBar/index.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/components/index.js (68%) rename packages/create-inula/lib/generators/{InulaJS-antd/templates/webpack/src => Inula-antd/templates/vite/src/admin}/layouts/BaseLayout.js (78%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/layouts/BaseLayout.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/layouts/PrimaryLayout.module.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/layouts/PrimaryLayout.tsx (97%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/layouts/PublicLayout.js (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/layouts/index.js (94%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/locales/en/messages.js (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/locales/pt-br/messages.js (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/locales/zh/messages.js (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/main.jsx (68%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/models/app-model.ts (93%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/pages/404.jsx (88%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/pages/404.module.less (100%) create mode 100644 packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/dashboard/components/index.js rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/pages/dashboard/components/numberCard.js (74%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/pages/dashboard/components/numberCard.module.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/pages/dashboard/components/quote.js (94%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/pages/dashboard/components/quote.module.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/pages/dashboard/components/sales.js (98%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/pages/dashboard/components/sales.module.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/pages/dashboard/components/weather.js (96%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/pages/dashboard/components/weather.module.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/pages/dashboard/index.module.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/pages/dashboard/index.tsx (92%) rename packages/create-inula/lib/generators/{InulaJS-antd/templates/webpack/src => Inula-antd/templates/vite/src/admin}/pages/dashboard/model.ts (97%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/pages/dashboard/services/dashboard.js (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/pages/dashboard/services/weather.js (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/pages/index.js (77%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/pages/routes.js (93%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/pages/user/components/Filter.js (98%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/pages/user/components/Filter.module.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/pages/user/components/List.js (98%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/pages/user/components/List.module.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/pages/user/components/Modal.js (98%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/pages/user/id/index.js (92%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/pages/user/id/index.module.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/pages/user/id/models/detail.js (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/pages/user/index.tsx (98%) rename packages/create-inula/lib/generators/{InulaJS-antd/templates/webpack/src => Inula-antd/templates/vite/src/admin}/pages/user/model.ts (97%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/plugins/onError.js (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/services/api.js (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/services/index.js (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/themes/default.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/themes/index.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/themes/mixin.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/themes/vars.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/utils/city.js (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/utils/config.js (90%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/utils/constant.js (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/utils/iconMap.jsx (94%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/utils/index.js (98%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/utils/index.test.js (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/utils/intl.js (97%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/src/admin/utils/request.js (100%) create mode 100644 packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/utils/theme.js rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/vite/vite.config.js (86%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/.editorconfig (100%) create mode 100644 packages/create-inula/lib/generators/Inula-antd/templates/webpack/.env rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/.eslintignore (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/.eslintrc.js (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/.gitignore (100%) create mode 100644 packages/create-inula/lib/generators/Inula-antd/templates/webpack/.horizon.ts rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/.prettierignore (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/.prettierrc.js (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/README.md (60%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/babel.config.js (89%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/mock/_utils.js (53%) create mode 100644 packages/create-inula/lib/generators/Inula-antd/templates/webpack/mock/dashboard.js rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/mock/route.js (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/mock/user.js (76%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/package.json (91%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/public/favicon.ico (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/public/logo.svg (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/public/logo/logo@128.png (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/public/logo/logo@144.png (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/public/logo/logo@152.png (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/public/logo/logo@192.png (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/public/logo/logo@384.png (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/public/logo/logo@512.png (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/public/logo/logo@72.png (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/public/logo/logo@96.png (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/components/DropOption/DropOption.js (95%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/components/DropOption/package.json (100%) rename packages/create-inula/lib/generators/{InulaJS-antd/templates/vite/src/admin => Inula-antd/templates/webpack/src}/components/Ellipsis/index.d.ts (93%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/components/Ellipsis/index.js (99%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/components/Ellipsis/index.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/components/Ellipsis/index.md (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/components/Ellipsis/index.test.js (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/components/FilterItem/FilterItem.js (94%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/components/FilterItem/FilterItem.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/components/FilterItem/package.json (100%) rename packages/create-inula/lib/generators/{InulaJS-antd/templates/vite/src/admin => Inula-antd/templates/webpack/src}/components/GlobalFooter/index.d.ts (80%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/components/GlobalFooter/index.js (94%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/components/GlobalFooter/index.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/components/GlobalFooter/index.md (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/components/Layout/Bread.js (96%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/components/Layout/Bread.less (100%) create mode 100644 packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Layout/Header.js rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/components/Layout/Header.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/components/Layout/Sider.js (97%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/components/Layout/Sider.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/components/Layout/SiderMenu.tsx (97%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/components/Layout/index.js (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/components/Loader/Loader.js (93%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/components/Loader/Loader.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/components/Loader/package.json (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/components/Page/Page.js (93%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/components/Page/Page.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/components/Page/package.json (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/components/ScrollBar/index.js (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/components/ScrollBar/index.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/components/index.js (68%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/entry.tsx (67%) rename packages/create-inula/lib/generators/{InulaJS-antd/templates/vite/src/admin => Inula-antd/templates/webpack/src}/layouts/BaseLayout.js (78%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/layouts/BaseLayout.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/layouts/PrimaryLayout.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/layouts/PrimaryLayout.tsx (97%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/layouts/PublicLayout.js (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/layouts/index.js (93%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/locales/en/messages.js (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/locales/pt-br/messages.js (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/locales/zh/messages.js (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/models/app-model.ts (98%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/pages/404.jsx (88%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/pages/404.less (100%) create mode 100644 packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/dashboard/components/index.js rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/pages/dashboard/components/numberCard.js (80%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/pages/dashboard/components/numberCard.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/pages/dashboard/components/quote.js (94%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/pages/dashboard/components/quote.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/pages/dashboard/components/sales.js (98%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/pages/dashboard/components/sales.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/pages/dashboard/components/weather.js (96%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/pages/dashboard/components/weather.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/pages/dashboard/index.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/pages/dashboard/index.tsx (81%) rename packages/create-inula/lib/generators/{InulaJS-antd/templates/vite/src/admin => Inula-antd/templates/webpack/src}/pages/dashboard/model.ts (89%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/pages/dashboard/services/dashboard.js (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/pages/dashboard/services/weather.js (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/pages/index.js (77%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/pages/routes.js (86%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/pages/user/components/Filter.js (98%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/pages/user/components/Filter.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/pages/user/components/List.js (94%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/pages/user/components/List.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/pages/user/components/Modal.js (98%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/pages/user/id/index.js (92%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/pages/user/id/index.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/pages/user/id/models/detail.js (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/pages/user/index.tsx (98%) rename packages/create-inula/lib/generators/{InulaJS-antd/templates/vite/src/admin => Inula-antd/templates/webpack/src}/pages/user/model.ts (97%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/plugins/onError.js (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/services/api.js (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/services/index.js (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/themes/default.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/themes/index.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/themes/mixin.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/themes/vars.less (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/utils/city.js (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/utils/config.js (90%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/utils/constant.js (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/utils/iconMap.jsx (94%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/utils/index.js (98%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/utils/index.test.js (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/utils/intl.js (97%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/utils/request.js (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/src/utils/theme.js (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/tsconfig.json (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/webpack/devServer.js (96%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/webpack/mockServer.js (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/webpack/webpack.basic.js (94%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/webpack/webpack.dev.js (100%) rename packages/create-inula/lib/generators/{InulaJS-antd => Inula-antd}/templates/webpack/webpack/webpack.prod.js (90%) delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/meta.json delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/vite/mock/dashboard.js delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/vite/public/america.svg delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/vite/public/china.svg delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/vite/public/portugal.svg delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/assets/react.svg delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Editor/Editor.js delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Editor/Editor.module.less delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Editor/package.json delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Layout/Header.js delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/browser.js delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/browser.module.less delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/comments.js delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/comments.module.less delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/completed.js delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/completed.module.less delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/cpu.js delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/cpu.module.less delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/index.js delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/recentSales.js delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/recentSales.module.less delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/user-background.png delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/user.js delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/user.module.less delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/utils/theme.js delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/mock/dashboard.js delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/public/america.svg delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/public/china.svg delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/public/portugal.svg delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Editor/Editor.js delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Editor/Editor.less delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Editor/package.json delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Layout/Header.js delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/browser.js delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/browser.less delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/comments.js delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/comments.less delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/completed.js delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/completed.less delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/cpu.js delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/cpu.less delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/index.js delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/recentSales.js delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/recentSales.less delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/user-background.png delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/user.js delete mode 100644 packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/user.less create mode 100644 packages/inula-cli/.eslintrc.cjs create mode 100644 packages/inula-cli/.prettierignore create mode 100644 packages/inula-cli/.prettierrc.js create mode 100644 packages/inula-cli/bin/start.js create mode 100644 packages/inula-cli/lib/builtInPlugins/command/build/build.d.ts create mode 100644 packages/inula-cli/lib/builtInPlugins/command/build/build.js create mode 100644 packages/inula-cli/lib/builtInPlugins/command/dev/buildDev.d.ts create mode 100644 packages/inula-cli/lib/builtInPlugins/command/dev/buildDev.js create mode 100644 packages/inula-cli/lib/builtInPlugins/command/generate/generate.d.ts create mode 100644 packages/inula-cli/lib/builtInPlugins/command/generate/generate.js create mode 100644 packages/inula-cli/lib/builtInPlugins/command/help/help.d.ts create mode 100644 packages/inula-cli/lib/builtInPlugins/command/help/help.js create mode 100644 packages/inula-cli/lib/builtInPlugins/command/mock/webpack_mock.d.ts create mode 100644 packages/inula-cli/lib/builtInPlugins/command/mock/webpack_mock.js create mode 100644 packages/inula-cli/lib/builtInPlugins/command/proxy/proxy.d.ts create mode 100644 packages/inula-cli/lib/builtInPlugins/command/proxy/proxy.js create mode 100644 packages/inula-cli/lib/builtInPlugins/command/test/test.d.ts create mode 100644 packages/inula-cli/lib/builtInPlugins/command/test/test.js create mode 100644 packages/inula-cli/lib/builtInPlugins/command/version/version.d.ts create mode 100644 packages/inula-cli/lib/builtInPlugins/command/version/version.js create mode 100644 packages/inula-cli/lib/cli/cli.d.ts create mode 100644 packages/inula-cli/lib/cli/cli.js create mode 100644 packages/inula-cli/lib/config/Config.d.ts create mode 100644 packages/inula-cli/lib/config/Config.js create mode 100644 packages/inula-cli/lib/core/Hub.d.ts create mode 100644 packages/inula-cli/lib/core/Hub.js create mode 100644 packages/inula-cli/lib/enum/enum.d.ts create mode 100644 packages/inula-cli/lib/enum/enum.js create mode 100644 packages/inula-cli/lib/plugin/Plugin.d.ts create mode 100644 packages/inula-cli/lib/plugin/Plugin.js create mode 100644 packages/inula-cli/lib/plugin/PluginAPI.d.ts create mode 100644 packages/inula-cli/lib/plugin/PluginAPI.js create mode 100644 packages/inula-cli/lib/types/types.d.ts create mode 100644 packages/inula-cli/lib/types/types.js create mode 100644 packages/inula-cli/lib/utils/build.d.ts create mode 100644 packages/inula-cli/lib/utils/build.js create mode 100644 packages/inula-cli/lib/utils/dynamicImport.d.ts create mode 100644 packages/inula-cli/lib/utils/dynamicImport.js create mode 100644 packages/inula-cli/lib/utils/initializeEnv.d.ts create mode 100644 packages/inula-cli/lib/utils/initializeEnv.js create mode 100644 packages/inula-cli/lib/utils/loadModule.d.ts create mode 100644 packages/inula-cli/lib/utils/loadModule.js create mode 100644 packages/inula-cli/lib/utils/loadPkg.d.ts create mode 100644 packages/inula-cli/lib/utils/loadPkg.js create mode 100644 packages/inula-cli/lib/utils/logger.d.ts create mode 100644 packages/inula-cli/lib/utils/logger.js create mode 100644 packages/inula-cli/lib/utils/mockServer.d.ts create mode 100644 packages/inula-cli/lib/utils/mockServer.js create mode 100644 packages/inula-cli/lib/utils/readDirectory.d.ts create mode 100644 packages/inula-cli/lib/utils/readDirectory.js create mode 100644 packages/inula-cli/lib/utils/setupProxy.d.ts create mode 100644 packages/inula-cli/lib/utils/setupProxy.js create mode 100644 packages/inula-cli/lib/utils/util.d.ts create mode 100644 packages/inula-cli/lib/utils/util.js create mode 100644 packages/inula-cli/package.json create mode 100644 packages/inula-cli/src/builtInPlugins/command/build/build.ts create mode 100644 packages/inula-cli/src/builtInPlugins/command/dev/buildDev.ts create mode 100644 packages/inula-cli/src/builtInPlugins/command/generate/generate.ts create mode 100644 packages/inula-cli/src/builtInPlugins/command/help/help.ts create mode 100644 packages/inula-cli/src/builtInPlugins/command/mock/webpack_mock.ts create mode 100644 packages/inula-cli/src/builtInPlugins/command/proxy/proxy.ts create mode 100644 packages/inula-cli/src/builtInPlugins/command/test/test.ts create mode 100644 packages/inula-cli/src/builtInPlugins/command/version/version.ts create mode 100644 packages/inula-cli/src/cli/cli.ts create mode 100644 packages/inula-cli/src/config/Config.ts create mode 100644 packages/inula-cli/src/core/Hub.ts create mode 100644 packages/inula-cli/src/enum/enum.ts create mode 100644 packages/inula-cli/src/plugin/Plugin.ts create mode 100644 packages/inula-cli/src/plugin/PluginAPI.ts create mode 100644 packages/inula-cli/src/template/test/cjs/jest.config.js create mode 100644 packages/inula-cli/src/template/test/cjs/sum.js create mode 100644 packages/inula-cli/src/template/test/cjs/sum.test.js create mode 100644 packages/inula-cli/src/template/test/mjs/jest.config.js create mode 100644 packages/inula-cli/src/template/test/mjs/sum.js create mode 100644 packages/inula-cli/src/template/test/mjs/sum.test.js create mode 100644 packages/inula-cli/src/template/test/ts/jest.config.ts create mode 100644 packages/inula-cli/src/template/test/ts/sum.test.ts create mode 100644 packages/inula-cli/src/template/test/ts/sum.ts create mode 100644 packages/inula-cli/src/types/types.ts create mode 100644 packages/inula-cli/src/utils/build.ts create mode 100644 packages/inula-cli/src/utils/dynamicImport.ts create mode 100644 packages/inula-cli/src/utils/initializeEnv.ts create mode 100644 packages/inula-cli/src/utils/loadModule.ts create mode 100644 packages/inula-cli/src/utils/loadPkg.ts create mode 100644 packages/inula-cli/src/utils/logger.ts create mode 100644 packages/inula-cli/src/utils/mockServer.ts create mode 100644 packages/inula-cli/src/utils/readDirectory.ts create mode 100644 packages/inula-cli/src/utils/setupProxy.ts create mode 100644 packages/inula-cli/src/utils/util.ts create mode 100644 packages/inula-cli/template/test/cjs/jest.config.js create mode 100644 packages/inula-cli/template/test/cjs/sum.js create mode 100644 packages/inula-cli/template/test/cjs/sum.test.js create mode 100644 packages/inula-cli/template/test/mjs/jest.config.js create mode 100644 packages/inula-cli/template/test/mjs/sum.js create mode 100644 packages/inula-cli/template/test/mjs/sum.test.js create mode 100644 packages/inula-cli/template/test/ts/jest.config.ts create mode 100644 packages/inula-cli/template/test/ts/sum.test.ts create mode 100644 packages/inula-cli/template/test/ts/sum.ts create mode 100644 packages/inula-cli/tsconfig.json create mode 100644 packages/inula-router/build-types.js create mode 100644 packages/inula-router/tsconfig.build.json create mode 100644 packages/inula-router/tsconfig.cbuild.json create mode 100644 packages/inula/scripts/rollup/build-types.js create mode 100644 packages/inula/src/EventTypes.ts rename packages/inula/src/inulax/{types.d.ts => types.ts} (96%) rename packages/inula/src/renderer/hooks/{EffectConstant.js => EffectConstant.ts} (100%) create mode 100644 packages/inula/src/types.ts create mode 100644 packages/inula/tsconfig.build.json diff --git a/packages/create-inula/.prettierrc.js b/packages/create-inula/.prettierrc.js new file mode 100644 index 00000000..da8f33e7 --- /dev/null +++ b/packages/create-inula/.prettierrc.js @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * + * InulaJS is licensed under Mulan PSL v2. + * You can use this software according to the terms and conditions of the Mulan PSL v2. + * You may obtain a copy of Mulan PSL v2 at: + * + * http://license.coscl.org.cn/MulanPSL2 + * + * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, + * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, + * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + * See the Mulan PSL v2 for more details. + */ + +'use strict'; + +module.exports = { + printWidth: 120, // 一行120字符数,如果超过会进行换行 + tabWidth: 2, // tab等2个空格 + useTabs: false, // 用空格缩进行 + semi: true, // 行尾使用分号 + singleQuote: true, // 字符串使用单引号 + quoteProps: 'as-needed', // 仅在需要时在对象属性添加引号 + jsxSingleQuote: false, // 在JSX中使用双引号 + trailingComma: 'es5', // 使用尾逗号(对象、数组等) + bracketSpacing: true, // 对象的括号间增加空格 + bracketSameLine: false, // 将多行JSX元素的>放在最后一行的末尾 + arrowParens: 'avoid', // 在唯一的arrow函数参数周围省略括号 + vueIndentScriptAndStyle: false, // 不缩进Vue文件中的 diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/mock/_utils.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/mock/_utils.js similarity index 51% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/mock/_utils.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/mock/_utils.js index 1a1e2358..e1b2c368 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/mock/_utils.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/mock/_utils.js @@ -12,31 +12,6 @@ export function queryArray(array, key, value) { return array.filter(_ => _[key] === value); } -export function randomNumber(min, max) { - return Math.floor(Math.random() * (max - min) + min); -} - -export function randomAvatar() { - const avatarList = [ - 'photo-1549492864-2ec7d66ffb04.jpeg', - 'photo-1480535339474-e083439a320d.jpeg', - 'photo-1523419409543-a5e549c1faa8.jpeg', - 'photo-1519648023493-d82b5f8d7b8a.jpeg', - 'photo-1523307730650-594bc63f9d67.jpeg', - 'photo-1522962506050-a2f0267e4895.jpeg', - 'photo-1489779162738-f81aed9b0a25.jpeg', - 'photo-1534308143481-c55f00be8bd7.jpeg', - 'photo-1519336555923-59661f41bb45.jpeg', - 'photo-1551438632-e8c7d9a5d1b7.jpeg', - 'photo-1525879000488-bff3b1c387cf.jpeg', - 'photo-1487412720507-e7ab37603c6f.jpeg', - 'photo-1510227272981-87123e259b17.jpeg', - ]; - return `//image.zuiidea.com/${ - avatarList[randomNumber(0, avatarList.length - 1)] - }?imageView2/1/w/200/h/200/format/webp/q/75|imageslim`; -} - export const Constant = { ApiPrefix: '/api/v1', NotFound: { diff --git a/packages/create-inula/lib/generators/Inula-antd/templates/vite/mock/dashboard.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/mock/dashboard.js new file mode 100644 index 00000000..983bcdee --- /dev/null +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/mock/dashboard.js @@ -0,0 +1,58 @@ +import { Constant } from './_utils'; +import Mock from 'mockjs'; + +const { ApiPrefix, Color } = Constant; + +const Dashboard = Mock.mock({ + 'sales|8': [ + { + 'name|+1': 2008, + 'Clothes|200-500': 1, + 'Food|180-400': 1, + 'Electronics|300-550': 1, + }, + ], + quote: { + name: 'Joho Doe', + title: 'Graphic Designer', + content: + "I'm selfish, impatient and a little insecure. I make mistakes, I am out of control and at times hard to handle. But if you can't handle me at my worst, then you sure as hell don't deserve me at my best.", + avatar: '//cdn.antd-admin.zuiidea.com/bc442cf0cc6f7940dcc567e465048d1a8d634493198c4-sPx5BR_fw236', + }, + numbers: [ + { + icon: 'pay-circle-o', + color: Color.green, + title: 'Online Review', + number: 2781, + }, + { + icon: 'team', + color: Color.blue, + title: 'New Customers', + number: 3241, + }, + { + icon: 'message', + color: Color.purple, + title: 'Active Projects', + number: 253, + }, + { + icon: 'shopping-cart', + color: Color.red, + title: 'Referrals', + number: 4324, + }, + ], +}); + +export default [ + { + url: `${ApiPrefix}/dashboard`, + method: 'get', + response: () => { + return Dashboard; + }, + }, +]; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/mock/route.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/mock/route.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/mock/route.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/mock/route.js diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/mock/user.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/mock/user.js similarity index 57% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/mock/user.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/mock/user.js index a0756109..986da934 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/mock/user.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/mock/user.js @@ -1,22 +1,21 @@ -import { Constant } from './_utils'; -import Mock from 'mockjs'; -import { randomAvatar } from './_utils'; -import url from 'url'; +import { Constant } from "./_utils"; +import Mock from "mockjs"; +import url from "url"; const { ApiPrefix } = Constant; let usersListData = Mock.mock({ - 'data|80-100': [ + "data|80-100": [ { - id: '@id', - name: '@name', - nickName: '@last', + id: "@id", + name: "@name", + nickName: "@last", phone: /^1[34578]\d{9}$/, - 'age|11-99': 1, - address: '@county(true)', - isMale: '@boolean', - email: '@email', - createTime: '@datetime', + "age|11-99": 1, + address: "@county(true)", + isMale: "@boolean", + email: "@email", + createTime: "@datetime", }, ], }); @@ -24,14 +23,14 @@ let usersListData = Mock.mock({ let database = usersListData.data; const EnumRoleType = { - ADMIN: 'admin', - DEFAULT: 'guest', - DEVELOPER: 'developer', + ADMIN: "admin", + DEFAULT: "guest", + DEVELOPER: "developer", }; const userPermission = { DEFAULT: { - visit: ['1', '2', '21', '7', '5', '51', '52', '53'], + visit: ["1", "2", "21", "7", "5", "51", "52", "53"], role: EnumRoleType.DEFAULT, }, ADMIN: { @@ -45,28 +44,13 @@ const userPermission = { const adminUsers = [ { id: 0, - username: 'admin', - password: 'admin', + username: "admin", + password: "admin", permissions: userPermission.ADMIN, - avatar: randomAvatar(), - }, - { - id: 1, - username: 'guest', - password: 'guest', - permissions: userPermission.DEFAULT, - avatar: randomAvatar(), - }, - { - id: 2, - username: '吴彦祖', - password: '123456', - permissions: userPermission.DEVELOPER, - avatar: randomAvatar(), }, ]; -const queryArray = (array, key, keyAlias = 'key') => { +const queryArray = (array, key, keyAlias = "key") => { if (!(array instanceof Array)) { return null; } @@ -86,14 +70,14 @@ const queryArray = (array, key, keyAlias = 'key') => { }; const NOTFOUND = { - message: 'Not Found', - documentation_url: 'http://localhost:8000/request', + message: "Not Found", + documentation_url: "http://localhost:8000/request", }; export default [ { url: `${ApiPrefix}/user`, - method: 'get', + method: "get", response: () => { return { success: true, @@ -103,29 +87,29 @@ export default [ }, { url: `${ApiPrefix}/users`, - method: 'get', - response: req => { + method: "get", + response: (req) => { const { query } = url.parse(req.url, true); let { pageSize, page, ...other } = query; - if (other['address[]']) { - other['address'] = other['address[]']; - delete other['address[]']; + if (other["address[]"]) { + other["address"] = other["address[]"]; + delete(other["address[]"]); } pageSize = pageSize || 10; page = page || 1; let newData = database; for (let key in other) { - newData = newData.filter(item => { + newData = newData.filter((item) => { if ({}.hasOwnProperty.call(item, key)) { - if (key === 'address') { + if (key === "address") { for (const addr of other[key]) { if (item[key].indexOf(addr) === -1) { return false; } } return true; - } else if (key === 'createTime') { + } else if (key === "createTime") { const start = new Date(other[key][0]).getTime(); const end = new Date(other[key][1]).getTime(); const now = new Date(item[key]).getTime(); @@ -135,7 +119,10 @@ export default [ } return true; } - return String(item[key]).trim().indexOf(decodeURI(other[key]).trim()) > -1; + return ( + String(item[key]).trim().indexOf(decodeURI(other[key]).trim()) > + -1 + ); } return false; }); @@ -148,10 +135,10 @@ export default [ }, { url: `${ApiPrefix}/users/delete`, - method: 'post', - response: req => { + method: "post", + response: (req) => { const { ids = [] } = req.body; - database = database.filter(item => !ids.some(_ => _ === item.id)); + database = database.filter((item) => !ids.some((_) => _ === item.id)); }, }, {}, diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/package.json b/packages/create-inula/lib/generators/Inula-antd/templates/vite/package.json similarity index 95% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/package.json rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/package.json index 56545b79..246bdcf4 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/package.json +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/package.json @@ -1,5 +1,5 @@ { - "name": "my-react-app", + "name": "inula-vite-app", "private": true, "version": "0.0.0", "type": "module", @@ -12,22 +12,20 @@ "@babel/plugin-proposal-export-default-from": "^7.18.6", "@babel/plugin-transform-react-jsx": "^7.21.0", "@babel/runtime": "7.6.2", - "inulajs": "^0.0.8", "antd": "^4.0.0", "axios": "^0.21.0", "classnames": "^2.2.6", "echarts": "^5.0.0", "history": "^5.3.0", + "@cloudsop/horizon": "^0.0.58", "lodash": "^4.17.11", "moment": "2.24.0", "nprogress": "^0.2.0", "path-to-regexp": "^6.1.0", "prop-types": "^15.7.0", "qs": "^6.10.0", - "react-countup": "^4.2.0", "react-dom": "17.0.2", "react-draft-wysiwyg": "^1.13.0", - "react-helmet": "^6.0.0", "react-intl": "^6.3.2", "react-perfect-scrollbar": "^1.5.0", "react-router": "^6.10.0", diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/public/favicon.ico b/packages/create-inula/lib/generators/Inula-antd/templates/vite/public/favicon.ico similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/public/favicon.ico rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/public/favicon.ico diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/public/logo.svg b/packages/create-inula/lib/generators/Inula-antd/templates/vite/public/logo.svg similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/public/logo.svg rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/public/logo.svg diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/public/logo/logo@128.png b/packages/create-inula/lib/generators/Inula-antd/templates/vite/public/logo/logo@128.png similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/public/logo/logo@128.png rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/public/logo/logo@128.png diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/public/logo/logo@144.png b/packages/create-inula/lib/generators/Inula-antd/templates/vite/public/logo/logo@144.png similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/public/logo/logo@144.png rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/public/logo/logo@144.png diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/public/logo/logo@152.png b/packages/create-inula/lib/generators/Inula-antd/templates/vite/public/logo/logo@152.png similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/public/logo/logo@152.png rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/public/logo/logo@152.png diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/public/logo/logo@192.png b/packages/create-inula/lib/generators/Inula-antd/templates/vite/public/logo/logo@192.png similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/public/logo/logo@192.png rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/public/logo/logo@192.png diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/public/logo/logo@384.png b/packages/create-inula/lib/generators/Inula-antd/templates/vite/public/logo/logo@384.png similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/public/logo/logo@384.png rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/public/logo/logo@384.png diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/public/logo/logo@512.png b/packages/create-inula/lib/generators/Inula-antd/templates/vite/public/logo/logo@512.png similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/public/logo/logo@512.png rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/public/logo/logo@512.png diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/public/logo/logo@72.png b/packages/create-inula/lib/generators/Inula-antd/templates/vite/public/logo/logo@72.png similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/public/logo/logo@72.png rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/public/logo/logo@72.png diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/public/logo/logo@96.png b/packages/create-inula/lib/generators/Inula-antd/templates/vite/public/logo/logo@96.png similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/public/logo/logo@96.png rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/public/logo/logo@96.png diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/public/vite.svg b/packages/create-inula/lib/generators/Inula-antd/templates/vite/public/vite.svg similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/public/vite.svg rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/public/vite.svg diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/DropOption/DropOption.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/DropOption/DropOption.js similarity index 95% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/DropOption/DropOption.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/DropOption/DropOption.js index 345e231a..4b6691ef 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/DropOption/DropOption.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/DropOption/DropOption.js @@ -1,4 +1,4 @@ -import Inula from 'inulajs'; +import Inula from '@cloudsop/horizon'; import PropTypes from 'prop-types'; import { BarsOutlined, DownOutlined } from '@ant-design/icons'; import { Dropdown, Button, Menu } from 'antd'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/DropOption/package.json b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/DropOption/package.json similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/DropOption/package.json rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/DropOption/package.json diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Ellipsis/index.d.ts b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Ellipsis/index.d.ts similarity index 93% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Ellipsis/index.d.ts rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Ellipsis/index.d.ts index 57fc2b2d..c0a21953 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Ellipsis/index.d.ts +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Ellipsis/index.d.ts @@ -1,4 +1,4 @@ -import Inula from 'inulajs'; +import Inula from '@cloudsop/horizon'; import { TooltipProps } from 'antd/lib/tooltip'; export interface EllipsisTooltipProps extends TooltipProps { diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Ellipsis/index.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Ellipsis/index.js similarity index 99% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Ellipsis/index.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Ellipsis/index.js index 99ba6fb8..aa3849a8 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Ellipsis/index.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Ellipsis/index.js @@ -1,4 +1,4 @@ -import Inula, { Component } from 'inulajs'; +import Inula, { Component } from '@cloudsop/horizon'; import { Tooltip } from 'antd'; import classNames from 'classnames'; import styles from './index.module.less'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Ellipsis/index.md b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Ellipsis/index.md similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Ellipsis/index.md rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Ellipsis/index.md diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Ellipsis/index.module.less b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Ellipsis/index.module.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Ellipsis/index.module.less rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Ellipsis/index.module.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Ellipsis/index.test.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Ellipsis/index.test.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Ellipsis/index.test.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Ellipsis/index.test.js diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/FilterItem/FilterItem.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/FilterItem/FilterItem.js similarity index 94% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/FilterItem/FilterItem.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/FilterItem/FilterItem.js index 03bbb0d8..c53d5a80 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/FilterItem/FilterItem.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/FilterItem/FilterItem.js @@ -1,4 +1,4 @@ -import Inula from 'inulajs'; +import Inula from '@cloudsop/horizon'; import PropTypes from 'prop-types'; import styles from './FilterItem.module.less'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/FilterItem/FilterItem.module.less b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/FilterItem/FilterItem.module.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/FilterItem/FilterItem.module.less rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/FilterItem/FilterItem.module.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/FilterItem/package.json b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/FilterItem/package.json similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/FilterItem/package.json rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/FilterItem/package.json diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/GlobalFooter/index.d.ts b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/GlobalFooter/index.d.ts similarity index 89% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/GlobalFooter/index.d.ts rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/GlobalFooter/index.d.ts index 5fb3a1cd..6411c837 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/GlobalFooter/index.d.ts +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/GlobalFooter/index.d.ts @@ -1,4 +1,4 @@ -import Inula from 'inulajs'; +import Inula from '@cloudsop/horizon'; export interface GlobalFooterProps { links?: Array<{ key?: string; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/GlobalFooter/index.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/GlobalFooter/index.js similarity index 94% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/GlobalFooter/index.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/GlobalFooter/index.js index ee2176af..88bfaf9d 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/GlobalFooter/index.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/GlobalFooter/index.js @@ -1,4 +1,4 @@ -import Inula from 'inulajs'; +import Inula from '@cloudsop/horizon'; import classNames from 'classnames'; import styles from './index.module.less'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/GlobalFooter/index.md b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/GlobalFooter/index.md similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/GlobalFooter/index.md rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/GlobalFooter/index.md diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/GlobalFooter/index.module.less b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/GlobalFooter/index.module.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/GlobalFooter/index.module.less rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/GlobalFooter/index.module.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Layout/Bread.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Layout/Bread.js similarity index 96% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Layout/Bread.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Layout/Bread.js index 4d27ceff..bce14abb 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Layout/Bread.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Layout/Bread.js @@ -1,4 +1,4 @@ -import Inula, { Fragment } from 'inulajs'; +import Inula, { Fragment } from '@cloudsop/horizon'; import { Breadcrumb } from 'antd'; import { Link } from 'react-router-dom'; import { t } from 'utils/intl'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Layout/Bread.module.less b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Layout/Bread.module.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Layout/Bread.module.less rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Layout/Bread.module.less diff --git a/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Layout/Header.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Layout/Header.js new file mode 100644 index 00000000..81e3d4e5 --- /dev/null +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Layout/Header.js @@ -0,0 +1,63 @@ +import Inula from '@cloudsop/horizon'; +import { Menu, Layout } from 'antd'; +import { MenuFoldOutlined, MenuUnfoldOutlined } from '@ant-design/icons'; +import { Trans } from 'utils/intl'; +import { getLocale, setLocale } from 'utils'; +import classnames from 'classnames'; +import config from 'config'; +import styles from './Header.module.less'; + +const { SubMenu } = Menu; + +function Header({ fixed, username, collapsed, notifications, onCollapseChange, onAllNotificationsRead }) { + const rightContent = [ +
+ + Hi, + + {username} +
+ ]; + + if (config.i18n) { + const { languages } = config.i18n; + const language = getLocale(); + const currentLanguage = languages.find(item => item.key === language); + + rightContent.unshift( + { + setLocale(data.key); + }} + mode="horizontal" + > + + {languages.map(item => ( + + {item.title} + + ))} + + + ); + } + + return ( + +
+ {collapsed ? : } +
+
{rightContent}
+
+ ); +} + +export default Header; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Layout/Header.module.less b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Layout/Header.module.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Layout/Header.module.less rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Layout/Header.module.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Layout/Sider.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Layout/Sider.js similarity index 97% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Layout/Sider.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Layout/Sider.js index 766b52ac..8ef27de0 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Layout/Sider.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Layout/Sider.js @@ -1,4 +1,4 @@ -import Inula from 'inulajs'; +import Inula from '@cloudsop/horizon'; import { Switch, Layout } from 'antd'; import { t } from 'utils/intl'; import { Trans } from 'utils/intl'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Layout/Sider.module.less b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Layout/Sider.module.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Layout/Sider.module.less rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Layout/Sider.module.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Layout/SiderMenu.tsx b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Layout/SiderMenu.tsx similarity index 97% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Layout/SiderMenu.tsx rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Layout/SiderMenu.tsx index 7df130a3..03789dda 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Layout/SiderMenu.tsx +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Layout/SiderMenu.tsx @@ -1,4 +1,4 @@ -import Inula, { useState, Fragment } from 'inulajs'; +import Inula, { useState, Fragment } from '@cloudsop/horizon'; import PropTypes from 'prop-types'; import { Menu } from 'antd'; import { NavLink } from 'react-router-dom'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Layout/index.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Layout/index.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Layout/index.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Layout/index.js diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Loader/Loader.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Loader/Loader.js similarity index 93% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Loader/Loader.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Loader/Loader.js index cbd7ccf8..3edf71ae 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Loader/Loader.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Loader/Loader.js @@ -1,4 +1,4 @@ -import Inula from 'inulajs'; +import Inula from '@cloudsop/horizon'; import PropTypes from 'prop-types'; import classNames from 'classnames'; import styles from './Loader.module.less'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Loader/Loader.module.less b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Loader/Loader.module.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Loader/Loader.module.less rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Loader/Loader.module.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Loader/package.json b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Loader/package.json similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Loader/package.json rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Loader/package.json diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Page/Page.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Page/Page.js similarity index 93% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Page/Page.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Page/Page.js index 5c6926a1..e605c083 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Page/Page.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Page/Page.js @@ -1,4 +1,4 @@ -import Inula, { Component } from 'inulajs'; +import Inula, { Component } from '@cloudsop/horizon'; import PropTypes from 'prop-types'; import classnames from 'classnames'; import Loader from '../Loader'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Page/Page.module.less b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Page/Page.module.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Page/Page.module.less rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Page/Page.module.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Page/package.json b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Page/package.json similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Page/package.json rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/Page/package.json diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/ScrollBar/index.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/ScrollBar/index.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/ScrollBar/index.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/ScrollBar/index.js diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/ScrollBar/index.less b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/ScrollBar/index.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/ScrollBar/index.less rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/ScrollBar/index.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/index.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/index.js similarity index 68% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/index.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/index.js index 81a96eb2..f94f4ef5 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/index.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/components/index.js @@ -1,4 +1,3 @@ -import Editor from './Editor'; import FilterItem from './FilterItem'; import DropOption from './DropOption'; import Loader from './Loader'; @@ -8,4 +7,4 @@ import Ellipsis from './Ellipsis'; import * as MyLayout from './Layout'; import Page from './Page'; -export { MyLayout, Editor, GlobalFooter, Ellipsis, FilterItem, DropOption, Loader, Page, ScrollBar }; +export { MyLayout, GlobalFooter, Ellipsis, FilterItem, DropOption, Loader, Page, ScrollBar }; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/layouts/BaseLayout.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/layouts/BaseLayout.js similarity index 78% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/layouts/BaseLayout.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/layouts/BaseLayout.js index 415adce5..59dd1b0d 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/layouts/BaseLayout.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/layouts/BaseLayout.js @@ -1,5 +1,4 @@ -import Inula, { Fragment } from 'inulajs'; -import { Helmet } from 'react-helmet'; +import Inula, { Fragment } from '@cloudsop/horizon'; import { queryLayout } from 'utils'; import config from 'utils/config'; @@ -18,9 +17,6 @@ function BaseLayout({ children, location }) { return ( - - {config.siteName} - {children} ); diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/layouts/BaseLayout.less b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/layouts/BaseLayout.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/layouts/BaseLayout.less rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/layouts/BaseLayout.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/layouts/PrimaryLayout.module.less b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/layouts/PrimaryLayout.module.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/layouts/PrimaryLayout.module.less rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/layouts/PrimaryLayout.module.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/layouts/PrimaryLayout.tsx b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/layouts/PrimaryLayout.tsx similarity index 97% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/layouts/PrimaryLayout.tsx rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/layouts/PrimaryLayout.tsx index 13fdca1f..89e4c07c 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/layouts/PrimaryLayout.tsx +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/layouts/PrimaryLayout.tsx @@ -1,4 +1,4 @@ -import Inula, { useEffect, Fragment } from 'inulajs'; +import Inula, { useEffect, Fragment } from '@cloudsop/horizon'; import PropTypes from 'prop-types'; import { MyLayout, GlobalFooter } from '../components'; import { BackTop, Layout, Drawer } from 'antd'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/layouts/PublicLayout.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/layouts/PublicLayout.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/layouts/PublicLayout.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/layouts/PublicLayout.js diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/layouts/index.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/layouts/index.js similarity index 94% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/layouts/index.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/layouts/index.js index 6d9f4a15..f39188bc 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/layouts/index.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/layouts/index.js @@ -1,4 +1,4 @@ -import Inula, { Suspense } from 'inulajs'; +import Inula, { Suspense } from '@cloudsop/horizon'; import { ConfigProvider } from 'antd'; import { IntlProvider } from 'react-intl'; import { getLocale } from '../utils'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/locales/en/messages.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/locales/en/messages.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/locales/en/messages.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/locales/en/messages.js diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/locales/pt-br/messages.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/locales/pt-br/messages.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/locales/pt-br/messages.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/locales/pt-br/messages.js diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/locales/zh/messages.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/locales/zh/messages.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/locales/zh/messages.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/locales/zh/messages.js diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/main.jsx b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/main.jsx similarity index 68% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/main.jsx rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/main.jsx index bac2925a..5a3462d6 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/main.jsx +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/main.jsx @@ -1,10 +1,12 @@ -import Inula from 'inulajs'; +import Inula from '@cloudsop/horizon'; import { BrowserRouter } from 'react-router-dom'; - +import config from './utils/config'; import 'antd/dist/antd.css'; import Layout from './layouts'; +document.title = config.siteName; + Inula.render( diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/models/app-model.ts b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/models/app-model.ts similarity index 93% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/models/app-model.ts rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/models/app-model.ts index 012ef5ca..f58d11e6 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/models/app-model.ts +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/models/app-model.ts @@ -1,14 +1,11 @@ -import { stringify } from 'qs'; import store from 'store'; import { pathToRegexp } from 'path-to-regexp'; import { ROLE_TYPE } from '../utils/constant'; -import { queryLayout } from '../utils'; import api from '../services'; -import config from '../utils/config'; // @ts-ignore const { queryRouteList, queryUserInfo } = api; -import { createStore } from 'inulajs'; +import { createStore } from '@cloudsop/horizon'; const goDashboard = history => { if (pathToRegexp(['/', '/login']).exec(window.location.pathname)) { diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/404.jsx b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/404.jsx similarity index 88% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/404.jsx rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/404.jsx index 4c13bb00..e6a31acd 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/404.jsx +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/404.jsx @@ -1,4 +1,4 @@ -import Inula from 'inulajs'; +import Inula from '@cloudsop/horizon'; import { FrownOutlined } from '@ant-design/icons'; import { Page } from 'components'; import styles from './404.module.less'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/404.module.less b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/404.module.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/404.module.less rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/404.module.less diff --git a/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/dashboard/components/index.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/dashboard/components/index.js new file mode 100644 index 00000000..36274900 --- /dev/null +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/dashboard/components/index.js @@ -0,0 +1,6 @@ +import NumberCard from './numberCard'; +import Quote from './quote'; +import Sales from './sales'; +import Weather from './weather'; + +export { NumberCard, Quote, Sales, Weather }; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/numberCard.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/dashboard/components/numberCard.js similarity index 74% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/numberCard.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/dashboard/components/numberCard.js index aaa08a57..ff7b83f3 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/numberCard.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/dashboard/components/numberCard.js @@ -1,11 +1,10 @@ -import Inula from 'inulajs'; +import Inula from '@cloudsop/horizon'; import PropTypes from 'prop-types'; import { Card } from 'antd'; -import CountUp from 'react-countup'; import iconMap from 'utils/iconMap'; import styles from './numberCard.module.less'; -function NumberCard({ icon, color, title, number, countUp }) { +function NumberCard({ icon, color, title, number }) { return ( @@ -14,7 +13,7 @@ function NumberCard({ icon, color, title, number, countUp }) {

{title || 'No Title'}

- + {number}

diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/numberCard.module.less b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/dashboard/components/numberCard.module.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/numberCard.module.less rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/dashboard/components/numberCard.module.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/quote.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/dashboard/components/quote.js similarity index 94% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/quote.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/dashboard/components/quote.js index 6427e999..6e9ad8b8 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/quote.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/dashboard/components/quote.js @@ -1,4 +1,4 @@ -import Inula from 'inulajs'; +import Inula from '@cloudsop/horizon'; import PropTypes from 'prop-types'; import styles from './quote.module.less'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/quote.module.less b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/dashboard/components/quote.module.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/quote.module.less rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/dashboard/components/quote.module.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/sales.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/dashboard/components/sales.js similarity index 98% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/sales.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/dashboard/components/sales.js index fe8c7732..be66ecff 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/sales.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/dashboard/components/sales.js @@ -1,4 +1,4 @@ -import Inula from 'inulajs'; +import Inula from '@cloudsop/horizon'; import PropTypes from 'prop-types'; import classnames from 'classnames'; import Color from '../../../utils/theme'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/sales.module.less b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/dashboard/components/sales.module.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/sales.module.less rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/dashboard/components/sales.module.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/weather.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/dashboard/components/weather.js similarity index 96% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/weather.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/dashboard/components/weather.js index c674e572..845f83a2 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/weather.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/dashboard/components/weather.js @@ -1,4 +1,4 @@ -import Inula from 'inulajs'; +import Inula from '@cloudsop/horizon'; import PropTypes from 'prop-types'; import { Spin } from 'antd'; import styles from './weather.module.less'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/weather.module.less b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/dashboard/components/weather.module.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/weather.module.less rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/dashboard/components/weather.module.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/index.module.less b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/dashboard/index.module.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/index.module.less rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/dashboard/index.module.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/index.tsx b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/dashboard/index.tsx similarity index 92% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/index.tsx rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/dashboard/index.tsx index 3db32ea3..85fc05b6 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/index.tsx +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/dashboard/index.tsx @@ -1,10 +1,9 @@ -import Inula, { useEffect } from 'inulajs'; +import Inula, { useEffect } from '@cloudsop/horizon'; import { Row, Col, Card } from 'antd'; import Color from '../../utils/theme'; import { Page, ScrollBar } from '../../components'; import { NumberCard, Quote, Sales, Weather } from './components'; import styles from './index.module.less'; -import store from 'store'; import { getStore } from './model'; const bodyStyle = { @@ -21,9 +20,6 @@ function Dashboard() { st.query(); }, []); - const userDetail = store.get('user'); - const { avatar, username } = userDetail; - const weather = st.weather; const sales = st.sales; const quote = st.quote; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/model.ts b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/dashboard/model.ts similarity index 97% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/model.ts rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/dashboard/model.ts index df35178b..4ad463f9 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/model.ts +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/dashboard/model.ts @@ -1,6 +1,6 @@ import { parse } from 'qs'; import api from '../../services'; -import { createStore } from 'inulajs'; +import { createStore } from '@cloudsop/horizon'; const { queryDashboard, queryWeather } = api; const avatar = '//cdn.antd-admin.zuiidea.com/bc442cf0cc6f7940dcc567e465048d1a8d634493198c4-sPx5BR_fw236.jpeg'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/services/dashboard.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/dashboard/services/dashboard.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/services/dashboard.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/dashboard/services/dashboard.js diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/services/weather.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/dashboard/services/weather.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/services/weather.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/dashboard/services/weather.js diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/index.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/index.js similarity index 77% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/index.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/index.js index 4005019e..9135bf8c 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/index.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/index.js @@ -1,4 +1,4 @@ -import Inula from 'inulajs'; +import Inula from '@cloudsop/horizon'; import { Redirect } from 'react-router-dom'; function Index() { diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/routes.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/routes.js similarity index 93% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/routes.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/routes.js index 6be8211f..801702ca 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/routes.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/routes.js @@ -1,4 +1,4 @@ -import Inula, { lazy } from 'inulajs'; +import Inula, { lazy } from '@cloudsop/horizon'; export function getRoutes() { const routes = [ diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/user/components/Filter.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/user/components/Filter.js similarity index 98% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/user/components/Filter.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/user/components/Filter.js index 41d34da1..6c8e5015 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/user/components/Filter.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/user/components/Filter.js @@ -1,4 +1,4 @@ -import Inula, { useRef } from 'inulajs'; +import Inula, { useRef } from '@cloudsop/horizon'; import moment from 'moment'; import { FilterItem } from 'components'; import { Button, Row, Col, DatePicker, Form, Input, Cascader } from 'antd'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/user/components/Filter.module.less b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/user/components/Filter.module.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/user/components/Filter.module.less rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/user/components/Filter.module.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/user/components/List.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/user/components/List.js similarity index 98% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/user/components/List.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/user/components/List.js index 412774ae..a6a2743a 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/user/components/List.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/user/components/List.js @@ -1,4 +1,4 @@ -import Inula from 'inulajs'; +import Inula from '@cloudsop/horizon'; import { Table, Modal } from 'antd'; import { DropOption } from 'components'; import { t } from 'utils/intl'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/user/components/List.module.less b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/user/components/List.module.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/user/components/List.module.less rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/user/components/List.module.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/user/components/Modal.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/user/components/Modal.js similarity index 98% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/user/components/Modal.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/user/components/Modal.js index e7969575..d85cdcf8 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/user/components/Modal.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/user/components/Modal.js @@ -1,4 +1,4 @@ -import Inula, { useRef } from 'inulajs'; +import Inula, { useRef } from '@cloudsop/horizon'; import { Form, Input, InputNumber, Radio, Modal, Cascader } from 'antd'; import { t, Trans } from 'utils/intl'; import city from 'utils/city'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/user/id/index.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/user/id/index.js similarity index 92% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/user/id/index.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/user/id/index.js index 9b3a862f..b72f59f7 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/user/id/index.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/user/id/index.js @@ -1,4 +1,4 @@ -import Inula, { PureComponent } from 'inulajs'; +import Inula, { PureComponent } from '@cloudsop/horizon'; import PropTypes from 'prop-types'; import { Page } from 'components'; import styles from './index.module.less'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/user/id/index.module.less b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/user/id/index.module.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/user/id/index.module.less rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/user/id/index.module.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/user/id/models/detail.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/user/id/models/detail.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/user/id/models/detail.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/user/id/models/detail.js diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/user/index.tsx b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/user/index.tsx similarity index 98% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/user/index.tsx rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/user/index.tsx index e2461885..8b936316 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/user/index.tsx +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/user/index.tsx @@ -1,4 +1,4 @@ -import Inula, { useEffect } from 'inulajs'; +import Inula, { useEffect } from '@cloudsop/horizon'; import { Row, Col, Button, Popconfirm } from 'antd'; import { Page } from '../../components'; import { stringify } from 'qs'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/user/model.ts b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/user/model.ts similarity index 97% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/user/model.ts rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/user/model.ts index fd2b883c..9c4552f1 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/user/model.ts +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/pages/user/model.ts @@ -1,5 +1,5 @@ import api from '../../services'; -import { createStore } from 'inulajs'; +import { createStore } from '@cloudsop/horizon'; const { queryUserList, createUser, removeUser, updateUser, removeUserList } = api; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/plugins/onError.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/plugins/onError.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/plugins/onError.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/plugins/onError.js diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/services/api.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/services/api.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/services/api.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/services/api.js diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/services/index.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/services/index.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/services/index.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/services/index.js diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/themes/default.less b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/themes/default.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/themes/default.less rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/themes/default.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/themes/index.less b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/themes/index.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/themes/index.less rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/themes/index.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/themes/mixin.less b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/themes/mixin.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/themes/mixin.less rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/themes/mixin.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/themes/vars.less b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/themes/vars.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/themes/vars.less rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/themes/vars.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/utils/city.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/utils/city.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/utils/city.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/utils/city.js diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/utils/config.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/utils/config.js similarity index 90% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/utils/config.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/utils/config.js index 24f8d999..f92e7975 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/utils/config.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/utils/config.js @@ -21,17 +21,14 @@ const config = { { key: 'pt-br', title: 'Português', - flag: '/portugal.svg', }, { key: 'en', title: 'English', - flag: '/america.svg', }, { key: 'zh', title: '中文', - flag: '/china.svg', }, ], defaultLanguage: 'en', diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/utils/constant.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/utils/constant.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/utils/constant.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/utils/constant.js diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/utils/iconMap.jsx b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/utils/iconMap.jsx similarity index 94% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/utils/iconMap.jsx rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/utils/iconMap.jsx index 58f29731..69ab35c0 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/utils/iconMap.jsx +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/utils/iconMap.jsx @@ -1,4 +1,4 @@ -import Inula from 'inulajs'; +import Inula from '@cloudsop/horizon'; import { PayCircleOutlined, ShoppingCartOutlined, diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/utils/index.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/utils/index.js similarity index 98% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/utils/index.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/utils/index.js index f6cf888b..278fd352 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/utils/index.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/utils/index.js @@ -164,14 +164,14 @@ export function setLocale(language) { export function parseSearch(search) { const searchObj = {}; search.replace(/([^?&=]+)=([^&]+)/g, (_, k, v) => { - if (k === 'address') { + if (k === "address") { if (searchObj[k]) { searchObj[k].push(decodeURI(v)); } else { - searchObj[k] = [decodeURI(v)]; + searchObj[k] = [decodeURI(v)] } } else { - searchObj[k] = decodeURI(v); + searchObj[k] = decodeURI(v) } }); return searchObj; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/utils/index.test.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/utils/index.test.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/utils/index.test.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/utils/index.test.js diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/utils/intl.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/utils/intl.js similarity index 97% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/utils/intl.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/utils/intl.js index ba3aea47..20eefdd9 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/utils/intl.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/utils/intl.js @@ -2,7 +2,7 @@ * 国际化,支持按需加载 */ -import Inula from 'inulajs'; +import Inula from '@cloudsop/horizon'; import { createIntl, createIntlCache, FormattedMessage } from 'react-intl'; import zhCN from 'antd/lib/locale-provider/zh_CN'; import enUS from 'antd/lib/locale-provider/en_US'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/utils/request.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/utils/request.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/utils/request.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/utils/request.js diff --git a/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/utils/theme.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/utils/theme.js new file mode 100644 index 00000000..86d7280b --- /dev/null +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/src/admin/utils/theme.js @@ -0,0 +1,14 @@ +const Color = { + green: '#64ea91', + blue: '#8fc9fb', + purple: '#d897eb', + red: '#f69899', + yellow: '#f8c82e', + peach: '#f797d6', + borderBase: '#e5e5e5', + borderSplit: '#f4f4f4', + grass: '#d6fbb5', + sky: '#c1e0fc', +}; + +export default Color; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/vite.config.js b/packages/create-inula/lib/generators/Inula-antd/templates/vite/vite.config.js similarity index 86% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/vite.config.js rename to packages/create-inula/lib/generators/Inula-antd/templates/vite/vite.config.js index efc62a17..57005e78 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/vite.config.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/vite/vite.config.js @@ -11,9 +11,9 @@ let alias = { config: path.resolve('src/admin/utils/config'), themes: path.resolve('src/admin/themes'), utils: path.resolve('src/admin/utils'), - react: 'inulajs', // 新增 - 'react-dom': 'inulajs', // 新增 - 'react/jsx-dev-runtime': 'inulajs/jsx-dev-runtime', + react: '@cloudsop/horizon', // 新增 + 'react-dom': '@cloudsop/horizon', // 新增 + 'react/jsx-dev-runtime': '@cloudsop/horizon/jsx-dev-runtime', }; // https://vitejs.dev/config/ @@ -26,7 +26,7 @@ export default defineConfig({ "@babel/plugin-transform-react-jsx", { "runtime": "automatic", // 新增 - "importSource": "inulajs" // 新增 + "importSource": "@cloudsop/horizon" // 新增 } ], '@babel/plugin-proposal-class-properties', diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/.editorconfig b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/.editorconfig similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/.editorconfig rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/.editorconfig diff --git a/packages/create-inula/lib/generators/Inula-antd/templates/webpack/.env b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/.env new file mode 100644 index 00000000..6c5aec02 --- /dev/null +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/.env @@ -0,0 +1,4 @@ +PROJECT_NAME=my-app +COMPILE_MODE=webpack +BUILD_PATH=./webpack/webpack.dev.js +DEBUG=true \ No newline at end of file diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/.eslintignore b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/.eslintignore similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/.eslintignore rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/.eslintignore diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/.eslintrc.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/.eslintrc.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/.eslintrc.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/.eslintrc.js diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/.gitignore b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/.gitignore similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/.gitignore rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/.gitignore diff --git a/packages/create-inula/lib/generators/Inula-antd/templates/webpack/.horizon.ts b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/.horizon.ts new file mode 100644 index 00000000..7f3bb9ea --- /dev/null +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/.horizon.ts @@ -0,0 +1,4 @@ +export default { + enableMock: true, + mockPath: './mock', +}; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/.prettierignore b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/.prettierignore similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/.prettierignore rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/.prettierignore diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/.prettierrc.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/.prettierrc.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/.prettierrc.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/.prettierrc.js diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/README.md b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/README.md similarity index 60% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/README.md rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/README.md index 7d2b9d75..346b1237 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/README.md +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/README.md @@ -1,4 +1,4 @@ -[inula-antd](https://codehub-y.huawei.com/c00486778/inula-antd/files?ref=master)项目是借鉴[AntD Admin](https://github.com/zuiidea/antd-admin)的一个中控台项目。主要特点是使用了[inula](https://open.codehub.huawei.com/innersource/shanhai/wutong/inula/inula-core/wiki/view/doc/695491)框架,并且使用HorizonX实现状态管理。 +[inula-antd](https://codehub-y.huawei.com/c00486778/horizon-antd/files?ref=master)项目是借鉴[AntD Admin](https://github.com/zuiidea/antd-admin)的一个中控台项目。主要特点是使用了[horizon](https://open.codehub.huawei.com/innersource/shanhai/wutong/horizon/horizon-core/wiki/view/doc/695491)框架,并且使用HorizonX实现状态管理。 界面如: @@ -6,13 +6,13 @@ ## 代码特点: -1、使用了`inula`开发框架,兼容React的所有接口。 +1、使用了`horizon`开发框架,兼容React的所有接口。 2、使用`函数式组件`进行开发。 3、使用TS语言(待完成)。 -4、使用了`inulaX的状态管理`能力,每个page都会有一个store,这样可以保证每个store体积较小,使用方便,性能也更好一些。 +4、使用了`horizonX的状态管理`能力,每个page都会有一个store,这样可以保证每个store体积较小,使用方便,性能也更好一些。 5、使用了`React-router-dom`作为路由,利用Lazy动态加载组件。 @@ -38,7 +38,7 @@ ## 使用方式: -1、克隆ssh://git@codehub-dg-y.huawei.com:2222/c00486778/inula-antd.git +1、克隆ssh://git@codehub-dg-y.huawei.com:2222/c00486778/horizon-antd.git 2、执行 `npm i -f` , 如果@cloudsop/horizon无法下载,请在`.npmrc`配置 @cloudsop:registry=https://cmc.centralrepo.rnd.huawei.com/artifactory/api/npm/product_npm diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/babel.config.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/babel.config.js similarity index 89% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/babel.config.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/babel.config.js index 776576e2..6e3cfb45 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/babel.config.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/babel.config.js @@ -12,7 +12,7 @@ module.exports = { '@babel/preset-react', { runtime: 'automatic', // 新增 - importSource: 'inulajs', // 新增 + importSource: '@cloudsop/horizon', // 新增 }, ], ], diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/mock/_utils.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/mock/_utils.js similarity index 53% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/mock/_utils.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/mock/_utils.js index 483ad199..27b11221 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/mock/_utils.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/mock/_utils.js @@ -12,31 +12,6 @@ function queryArray(array, key, value) { return array.filter(_ => _[key] === value); } -function randomNumber(min, max) { - return Math.floor(Math.random() * (max - min) + min); -} - -function randomAvatar() { - const avatarList = [ - 'photo-1549492864-2ec7d66ffb04.jpeg', - 'photo-1480535339474-e083439a320d.jpeg', - 'photo-1523419409543-a5e549c1faa8.jpeg', - 'photo-1519648023493-d82b5f8d7b8a.jpeg', - 'photo-1523307730650-594bc63f9d67.jpeg', - 'photo-1522962506050-a2f0267e4895.jpeg', - 'photo-1489779162738-f81aed9b0a25.jpeg', - 'photo-1534308143481-c55f00be8bd7.jpeg', - 'photo-1519336555923-59661f41bb45.jpeg', - 'photo-1551438632-e8c7d9a5d1b7.jpeg', - 'photo-1525879000488-bff3b1c387cf.jpeg', - 'photo-1487412720507-e7ab37603c6f.jpeg', - 'photo-1510227272981-87123e259b17.jpeg', - ]; - return `//image.zuiidea.com/${ - avatarList[randomNumber(0, avatarList.length - 1)] - }?imageView2/1/w/200/h/200/format/webp/q/75|imageslim`; -} - const Constant = { ApiPrefix: '/api/v1', NotFound: { @@ -62,8 +37,6 @@ const qs = require('qs'); module.exports = { queryArray, - randomNumber, - randomAvatar, Constant, Mock, qs, diff --git a/packages/create-inula/lib/generators/Inula-antd/templates/webpack/mock/dashboard.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/mock/dashboard.js new file mode 100644 index 00000000..7a527087 --- /dev/null +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/mock/dashboard.js @@ -0,0 +1,53 @@ +const { Mock, Constant } = require('./_utils'); + +const { ApiPrefix, Color } = Constant; + +const Dashboard = Mock.mock({ + 'sales|8': [ + { + 'name|+1': 2008, + 'Clothes|200-500': 1, + 'Food|180-400': 1, + 'Electronics|300-550': 1, + }, + ], + quote: { + name: 'Joho Doe', + title: 'Graphic Designer', + content: + "I'm selfish, impatient and a little insecure. I make mistakes, I am out of control and at times hard to handle. But if you can't handle me at my worst, then you sure as hell don't deserve me at my best.", + avatar: '//cdn.antd-admin.zuiidea.com/bc442cf0cc6f7940dcc567e465048d1a8d634493198c4-sPx5BR_fw236', + }, + numbers: [ + { + icon: 'pay-circle-o', + color: Color.green, + title: 'Online Review', + number: 2781, + }, + { + icon: 'team', + color: Color.blue, + title: 'New Customers', + number: 3241, + }, + { + icon: 'message', + color: Color.purple, + title: 'Active Projects', + number: 253, + }, + { + icon: 'shopping-cart', + color: Color.red, + title: 'Referrals', + number: 4324, + }, + ], +}); + +module.exports = { + [`get ${ApiPrefix}/dashboard`](req, res) { + res.json(Dashboard); + }, +}; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/mock/route.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/mock/route.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/mock/route.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/mock/route.js diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/mock/user.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/mock/user.js similarity index 76% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/mock/user.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/mock/user.js index 12e0d969..f2e34964 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/mock/user.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/mock/user.js @@ -1,4 +1,4 @@ -const { Mock, Constant, randomAvatar } = require('./_utils'); +const { Mock, Constant } = require('./_utils'); const qs = require('qs'); const { ApiPrefix } = Constant; @@ -15,9 +15,6 @@ let usersListData = Mock.mock({ isMale: '@boolean', email: '@email', createTime: '@datetime', - avatar() { - return randomAvatar(); - }, }, ], }); @@ -49,21 +46,6 @@ const adminUsers = [ username: 'admin', password: 'admin', permissions: userPermission.ADMIN, - avatar: randomAvatar(), - }, - { - id: 1, - username: 'guest', - password: 'guest', - permissions: userPermission.DEFAULT, - avatar: randomAvatar(), - }, - { - id: 2, - username: '吴彦祖', - password: '123456', - permissions: userPermission.DEVELOPER, - avatar: randomAvatar(), }, ]; @@ -115,29 +97,31 @@ module.exports = { let { pageSize, page, ...other } = query; pageSize = pageSize || 10; page = page || 1; - let newData = database; for (let key in other) { - if ({}.hasOwnProperty.call(other, key)) { - newData = newData.filter(item => { - if ({}.hasOwnProperty.call(item, key)) { - if (key === 'address') { - return other[key].every(iitem => item[key].indexOf(iitem) > -1); - } else if (key === 'createTime') { - const start = new Date(other[key][0]).getTime(); - const end = new Date(other[key][1]).getTime(); - const now = new Date(item[key]).getTime(); - - if (start && end) { - return now >= start && now <= end; + newData = newData.filter(item => { + if ({}.hasOwnProperty.call(item, key)) { + if (key === 'address') { + for (const addr of other[key]) { + if (item[key].indexOf(addr) === -1) { + return false; } - return true; } - return String(item[key]).trim().indexOf(decodeURI(other[key]).trim()) > -1; + return true; + } else if (key === 'createTime') { + const start = new Date(other[key][0]).getTime(); + const end = new Date(other[key][1]).getTime(); + const now = new Date(item[key]).getTime(); + + if (start && end) { + return now >= start && now <= end; + } + return true; } - return true; - }); - } + return String(item[key]).trim().indexOf(decodeURI(other[key]).trim()) > -1; + } + return false; + }); } res.status(200).json({ diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/package.json b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/package.json similarity index 91% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/package.json rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/package.json index 03479cd6..0e920a55 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/package.json +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/package.json @@ -1,5 +1,5 @@ { - "name": "inula-antd-fun", + "name": "horizon-antd-fun", "version": "1.0.0", "description": "", "main": "index.js", @@ -42,7 +42,7 @@ "dependencies": { "@ant-design/icons": "^5.1.4", "@babel/plugin-proposal-export-default-from": "^7.18.6", - "inulajs": "^0.0.8", + "@cloudsop/horizon": "^0.0.58", "antd": "^4.0.0", "axios": "^1.4.0", "classnames": "^2.2.6", @@ -54,10 +54,6 @@ "path-to-regexp": "^6.1.0", "prop-types": "^15.7.0", "qs": "^6.10.0", - "react-countup": "^4.2.0", - "react-dom": "^18.2.0", - "react-draft-wysiwyg": "^1.13.0", - "react-helmet": "^6.0.0", "react-intl": "^6.4.4", "react-perfect-scrollbar": "^1.5.0", "react-router": "^6.12.1", diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/public/favicon.ico b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/public/favicon.ico similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/public/favicon.ico rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/public/favicon.ico diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/public/logo.svg b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/public/logo.svg similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/public/logo.svg rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/public/logo.svg diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/public/logo/logo@128.png b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/public/logo/logo@128.png similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/public/logo/logo@128.png rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/public/logo/logo@128.png diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/public/logo/logo@144.png b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/public/logo/logo@144.png similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/public/logo/logo@144.png rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/public/logo/logo@144.png diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/public/logo/logo@152.png b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/public/logo/logo@152.png similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/public/logo/logo@152.png rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/public/logo/logo@152.png diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/public/logo/logo@192.png b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/public/logo/logo@192.png similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/public/logo/logo@192.png rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/public/logo/logo@192.png diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/public/logo/logo@384.png b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/public/logo/logo@384.png similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/public/logo/logo@384.png rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/public/logo/logo@384.png diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/public/logo/logo@512.png b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/public/logo/logo@512.png similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/public/logo/logo@512.png rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/public/logo/logo@512.png diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/public/logo/logo@72.png b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/public/logo/logo@72.png similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/public/logo/logo@72.png rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/public/logo/logo@72.png diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/public/logo/logo@96.png b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/public/logo/logo@96.png similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/public/logo/logo@96.png rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/public/logo/logo@96.png diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/DropOption/DropOption.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/DropOption/DropOption.js similarity index 95% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/DropOption/DropOption.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/DropOption/DropOption.js index 345e231a..8c1fa9a5 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/DropOption/DropOption.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/DropOption/DropOption.js @@ -1,4 +1,4 @@ -import Inula from 'inulajs'; +import Inula from '@cloudsop/Inula'; import PropTypes from 'prop-types'; import { BarsOutlined, DownOutlined } from '@ant-design/icons'; import { Dropdown, Button, Menu } from 'antd'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/DropOption/package.json b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/DropOption/package.json similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/DropOption/package.json rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/DropOption/package.json diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Ellipsis/index.d.ts b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Ellipsis/index.d.ts similarity index 93% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Ellipsis/index.d.ts rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Ellipsis/index.d.ts index 57fc2b2d..c0a21953 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Ellipsis/index.d.ts +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Ellipsis/index.d.ts @@ -1,4 +1,4 @@ -import Inula from 'inulajs'; +import Inula from '@cloudsop/horizon'; import { TooltipProps } from 'antd/lib/tooltip'; export interface EllipsisTooltipProps extends TooltipProps { diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Ellipsis/index.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Ellipsis/index.js similarity index 99% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Ellipsis/index.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Ellipsis/index.js index 565adcfc..1264e1a7 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Ellipsis/index.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Ellipsis/index.js @@ -1,4 +1,4 @@ -import Inula, { Component } from 'inulajs'; +import Inula, { Component } from '@cloudsop/horizon'; import { Tooltip } from 'antd'; import classNames from 'classnames'; import styles from './index.less'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Ellipsis/index.less b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Ellipsis/index.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Ellipsis/index.less rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Ellipsis/index.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Ellipsis/index.md b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Ellipsis/index.md similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Ellipsis/index.md rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Ellipsis/index.md diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Ellipsis/index.test.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Ellipsis/index.test.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Ellipsis/index.test.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Ellipsis/index.test.js diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/FilterItem/FilterItem.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/FilterItem/FilterItem.js similarity index 94% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/FilterItem/FilterItem.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/FilterItem/FilterItem.js index 9a21e5c8..f5e33bef 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/FilterItem/FilterItem.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/FilterItem/FilterItem.js @@ -1,4 +1,4 @@ -import Inula from 'inulajs'; +import Inula from '@cloudsop/horizon'; import PropTypes from 'prop-types'; import styles from './FilterItem.less'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/FilterItem/FilterItem.less b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/FilterItem/FilterItem.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/FilterItem/FilterItem.less rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/FilterItem/FilterItem.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/FilterItem/package.json b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/FilterItem/package.json similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/FilterItem/package.json rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/FilterItem/package.json diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/GlobalFooter/index.d.ts b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/GlobalFooter/index.d.ts similarity index 80% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/GlobalFooter/index.d.ts rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/GlobalFooter/index.d.ts index 5fb3a1cd..6af035cc 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/GlobalFooter/index.d.ts +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/GlobalFooter/index.d.ts @@ -1,4 +1,4 @@ -import Inula from 'inulajs'; +import Inula from '@cloudsop/horizon'; export interface GlobalFooterProps { links?: Array<{ key?: string; @@ -6,7 +6,7 @@ export interface GlobalFooterProps { href: string; blankTarget?: boolean; }>; - copyright?: Inula.ReactNode; + copyright?: Inula.InulaNode; style?: Inula.CSSProperties; className?: string; } diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/GlobalFooter/index.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/GlobalFooter/index.js similarity index 94% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/GlobalFooter/index.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/GlobalFooter/index.js index a75f1345..2dec57ff 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/GlobalFooter/index.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/GlobalFooter/index.js @@ -1,4 +1,4 @@ -import Inula from 'inulajs'; +import Inula from '@cloudsop/horizon'; import classNames from 'classnames'; import styles from './index.less'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/GlobalFooter/index.less b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/GlobalFooter/index.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/GlobalFooter/index.less rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/GlobalFooter/index.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/GlobalFooter/index.md b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/GlobalFooter/index.md similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/GlobalFooter/index.md rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/GlobalFooter/index.md diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Layout/Bread.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Layout/Bread.js similarity index 96% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Layout/Bread.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Layout/Bread.js index ce40bd32..01dfef74 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Layout/Bread.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Layout/Bread.js @@ -1,4 +1,4 @@ -import Inula, { Fragment } from 'inulajs'; +import Inula, { Fragment } from '@cloudsop/horizon'; import { Breadcrumb } from 'antd'; import { Link } from 'react-router-dom'; import { t } from 'utils/intl'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Layout/Bread.less b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Layout/Bread.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Layout/Bread.less rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Layout/Bread.less diff --git a/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Layout/Header.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Layout/Header.js new file mode 100644 index 00000000..18995ced --- /dev/null +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Layout/Header.js @@ -0,0 +1,71 @@ +import Inula from '@cloudsop/horizon'; +import { Menu, Layout } from 'antd'; +import { MenuFoldOutlined, MenuUnfoldOutlined } from '@ant-design/icons'; +import { Trans } from 'utils/intl'; +import { getLocale, setLocale } from 'utils'; +import classnames from 'classnames'; +import config from 'config'; +import styles from './Header.less'; + +const { SubMenu } = Menu; + +function Header({ + fixed, + username, + collapsed, + notifications, + onCollapseChange, + onAllNotificationsRead, +}) { + + const rightContent = [ +
+ + Hi, + + {username} +
+ ]; + + if (config.i18n) { + const { languages } = config.i18n; + const language = getLocale(); + const currentLanguage = languages.find(item => item.key === language); + + rightContent.unshift( + { + setLocale(data.key); + }} + mode="horizontal" + > + + {languages.map(item => ( + + {item.title} + + ))} + + + ); + } + + return ( + +
+ {collapsed ? : } +
+
{rightContent}
+
+ ); +} + +export default Header; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Layout/Header.less b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Layout/Header.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Layout/Header.less rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Layout/Header.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Layout/Sider.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Layout/Sider.js similarity index 97% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Layout/Sider.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Layout/Sider.js index b46a0261..9bd02d0c 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Layout/Sider.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Layout/Sider.js @@ -1,4 +1,4 @@ -import Inula from 'inulajs'; +import Inula from '@cloudsop/horizon'; import { Switch, Layout } from 'antd'; import { t } from 'utils/intl'; import { Trans } from 'utils/intl'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Layout/Sider.less b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Layout/Sider.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Layout/Sider.less rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Layout/Sider.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Layout/SiderMenu.tsx b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Layout/SiderMenu.tsx similarity index 97% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Layout/SiderMenu.tsx rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Layout/SiderMenu.tsx index 7df130a3..03789dda 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Layout/SiderMenu.tsx +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Layout/SiderMenu.tsx @@ -1,4 +1,4 @@ -import Inula, { useState, Fragment } from 'inulajs'; +import Inula, { useState, Fragment } from '@cloudsop/horizon'; import PropTypes from 'prop-types'; import { Menu } from 'antd'; import { NavLink } from 'react-router-dom'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Layout/index.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Layout/index.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Layout/index.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Layout/index.js diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Loader/Loader.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Loader/Loader.js similarity index 93% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Loader/Loader.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Loader/Loader.js index b52180df..053acd24 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Loader/Loader.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Loader/Loader.js @@ -1,4 +1,4 @@ -import Inula from 'inulajs'; +import Inula from '@cloudsop/horizon'; import PropTypes from 'prop-types'; import classNames from 'classnames'; import styles from './Loader.less'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Loader/Loader.less b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Loader/Loader.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Loader/Loader.less rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Loader/Loader.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Loader/package.json b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Loader/package.json similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Loader/package.json rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Loader/package.json diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Page/Page.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Page/Page.js similarity index 93% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Page/Page.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Page/Page.js index 3680f2e5..0d704681 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Page/Page.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Page/Page.js @@ -1,4 +1,4 @@ -import Inula, { Component } from 'inulajs'; +import Inula, { Component } from '@cloudsop/horizon'; import PropTypes from 'prop-types'; import classnames from 'classnames'; import Loader from '../Loader'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Page/Page.less b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Page/Page.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Page/Page.less rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Page/Page.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Page/package.json b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Page/package.json similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Page/package.json rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/Page/package.json diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/ScrollBar/index.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/ScrollBar/index.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/ScrollBar/index.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/ScrollBar/index.js diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/ScrollBar/index.less b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/ScrollBar/index.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/ScrollBar/index.less rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/ScrollBar/index.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/index.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/index.js similarity index 68% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/index.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/index.js index 81a96eb2..f94f4ef5 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/index.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/components/index.js @@ -1,4 +1,3 @@ -import Editor from './Editor'; import FilterItem from './FilterItem'; import DropOption from './DropOption'; import Loader from './Loader'; @@ -8,4 +7,4 @@ import Ellipsis from './Ellipsis'; import * as MyLayout from './Layout'; import Page from './Page'; -export { MyLayout, Editor, GlobalFooter, Ellipsis, FilterItem, DropOption, Loader, Page, ScrollBar }; +export { MyLayout, GlobalFooter, Ellipsis, FilterItem, DropOption, Loader, Page, ScrollBar }; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/entry.tsx b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/entry.tsx similarity index 67% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/entry.tsx rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/entry.tsx index bac2925a..36130533 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/entry.tsx +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/entry.tsx @@ -1,10 +1,13 @@ -import Inula from 'inulajs'; +import Inula from '@cloudsop/horizon'; import { BrowserRouter } from 'react-router-dom'; +import config from './utils/config'; import 'antd/dist/antd.css'; import Layout from './layouts'; +document.title = config.siteName; + Inula.render( diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/layouts/BaseLayout.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/layouts/BaseLayout.js similarity index 78% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/layouts/BaseLayout.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/layouts/BaseLayout.js index 415adce5..59dd1b0d 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/layouts/BaseLayout.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/layouts/BaseLayout.js @@ -1,5 +1,4 @@ -import Inula, { Fragment } from 'inulajs'; -import { Helmet } from 'react-helmet'; +import Inula, { Fragment } from '@cloudsop/horizon'; import { queryLayout } from 'utils'; import config from 'utils/config'; @@ -18,9 +17,6 @@ function BaseLayout({ children, location }) { return ( - - {config.siteName} - {children} ); diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/layouts/BaseLayout.less b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/layouts/BaseLayout.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/layouts/BaseLayout.less rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/layouts/BaseLayout.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/layouts/PrimaryLayout.less b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/layouts/PrimaryLayout.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/layouts/PrimaryLayout.less rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/layouts/PrimaryLayout.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/layouts/PrimaryLayout.tsx b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/layouts/PrimaryLayout.tsx similarity index 97% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/layouts/PrimaryLayout.tsx rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/layouts/PrimaryLayout.tsx index c4d87a18..11630d08 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/layouts/PrimaryLayout.tsx +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/layouts/PrimaryLayout.tsx @@ -1,4 +1,4 @@ -import Inula, { useEffect, Fragment } from 'inulajs'; +import Inula, { useEffect, Fragment } from '@cloudsop/horizon'; import { MyLayout, GlobalFooter } from '../components'; import { BackTop, Layout } from 'antd'; import { pathToRegexp } from 'path-to-regexp'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/layouts/PublicLayout.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/layouts/PublicLayout.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/layouts/PublicLayout.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/layouts/PublicLayout.js diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/layouts/index.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/layouts/index.js similarity index 93% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/layouts/index.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/layouts/index.js index 6d9f4a15..39d71f37 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/layouts/index.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/layouts/index.js @@ -1,4 +1,4 @@ -import Inula, { Suspense } from 'inulajs'; +import Inula, { Suspense } from '@cloudsop/horizon'; import { ConfigProvider } from 'antd'; import { IntlProvider } from 'react-intl'; import { getLocale } from '../utils'; @@ -21,7 +21,7 @@ function Layout() { {routes[0].childRoutes.map(item => { - return ; + return ; })} diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/locales/en/messages.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/locales/en/messages.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/locales/en/messages.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/locales/en/messages.js diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/locales/pt-br/messages.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/locales/pt-br/messages.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/locales/pt-br/messages.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/locales/pt-br/messages.js diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/locales/zh/messages.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/locales/zh/messages.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/locales/zh/messages.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/locales/zh/messages.js diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/models/app-model.ts b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/models/app-model.ts similarity index 98% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/models/app-model.ts rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/models/app-model.ts index 12193e0c..68d110d6 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/models/app-model.ts +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/models/app-model.ts @@ -5,7 +5,7 @@ import api from '../services'; // @ts-ignore const { queryRouteList, logoutUser, queryUserInfo } = api; -import { createStore } from 'inulajs'; +import { createStore } from '@cloudsop/horizon'; const goDashboard = history => { if (pathToRegexp(['/', '/login']).exec(window.location.pathname)) { diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/404.jsx b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/404.jsx similarity index 88% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/404.jsx rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/404.jsx index 9022fe7d..2ef5f315 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/404.jsx +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/404.jsx @@ -1,4 +1,4 @@ -import Inula from 'inulajs'; +import Inula from '@cloudsop/horizon'; import { FrownOutlined } from '@ant-design/icons'; import { Page } from 'components'; import styles from './404.less'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/404.less b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/404.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/404.less rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/404.less diff --git a/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/dashboard/components/index.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/dashboard/components/index.js new file mode 100644 index 00000000..2bbc46c1 --- /dev/null +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/dashboard/components/index.js @@ -0,0 +1,6 @@ +import NumberCard from './numberCard'; +import Quote from './quote'; +import Sales from './sales'; +import Weather from './weather'; + +export { NumberCard, Quote, Sales, Weather}; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/numberCard.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/dashboard/components/numberCard.js similarity index 80% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/numberCard.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/dashboard/components/numberCard.js index 08dd5ec7..8e523e65 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/numberCard.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/dashboard/components/numberCard.js @@ -1,7 +1,6 @@ -import Inula from 'inulajs'; +import Inula from '@cloudsop/horizon'; import PropTypes from 'prop-types'; import { Card } from 'antd'; -import CountUp from 'react-countup'; import iconMap from 'utils/iconMap'; import styles from './numberCard.less'; @@ -14,7 +13,7 @@ function NumberCard({ icon, color, title, number, countUp }) {

{title || 'No Title'}

- + {number}

diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/numberCard.less b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/dashboard/components/numberCard.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/numberCard.less rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/dashboard/components/numberCard.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/quote.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/dashboard/components/quote.js similarity index 94% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/quote.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/dashboard/components/quote.js index 71932083..0c6ac94b 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/quote.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/dashboard/components/quote.js @@ -1,4 +1,4 @@ -import Inula from 'inulajs'; +import Inula from '@cloudsop/horizon'; import PropTypes from 'prop-types'; import styles from './quote.less'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/quote.less b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/dashboard/components/quote.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/quote.less rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/dashboard/components/quote.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/sales.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/dashboard/components/sales.js similarity index 98% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/sales.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/dashboard/components/sales.js index 6bd4404d..3765308f 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/sales.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/dashboard/components/sales.js @@ -1,4 +1,4 @@ -import Inula from 'inulajs'; +import Inula from '@cloudsop/horizon'; import PropTypes from 'prop-types'; import classnames from 'classnames'; import { Color } from 'utils'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/sales.less b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/dashboard/components/sales.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/sales.less rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/dashboard/components/sales.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/weather.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/dashboard/components/weather.js similarity index 96% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/weather.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/dashboard/components/weather.js index 221fc30c..2a257ce5 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/weather.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/dashboard/components/weather.js @@ -1,4 +1,4 @@ -import Inula from 'inulajs'; +import Inula from '@cloudsop/horizon'; import PropTypes from 'prop-types'; import { Spin } from 'antd'; import styles from './weather.less'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/weather.less b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/dashboard/components/weather.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/weather.less rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/dashboard/components/weather.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/index.less b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/dashboard/index.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/index.less rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/dashboard/index.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/index.tsx b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/dashboard/index.tsx similarity index 81% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/index.tsx rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/dashboard/index.tsx index e9727dc9..3688a5b6 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/index.tsx +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/dashboard/index.tsx @@ -1,10 +1,9 @@ -import Inula, { useEffect } from 'inulajs'; +import Inula, { useEffect } from '@cloudsop/horizon'; import { Row, Col, Card } from 'antd'; import { Color } from '../../utils'; import { Page, ScrollBar } from '../../components'; -import { NumberCard, Quote, Sales, Weather, RecentSales, Comments, Completed, Browser, Cpu, User } from './components'; +import { NumberCard, Quote, Sales, Weather} from './components'; import styles from './index.less'; -import store from 'store'; import { getStore } from './model'; const bodyStyle = { @@ -21,19 +20,10 @@ function Dashboard() { st.query(); }, []); - const userDetail = store.get('user'); - const { avatar, username } = userDetail; - const weather = st.weather; const sales = st.sales; const quote = st.quote; const numbers = st.numbers; - const recentSales = st.recentSales; - const comments = st.comments; - const completed = st.completed; - const browser = st.browser; - const cpu = st.cpu; - const user = st.user; const numberCards = numbers.map((item, key) => ( diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/model.ts b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/dashboard/model.ts similarity index 89% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/model.ts rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/dashboard/model.ts index 8a007500..02cb7082 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/model.ts +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/dashboard/model.ts @@ -1,8 +1,6 @@ import { parse } from 'qs'; import api from '../../services'; - -import { pathToRegexp } from 'path-to-regexp'; -import { createStore } from 'inulajs'; +import { createStore } from '@cloudsop/horizon'; const { queryDashboard, queryWeather } = api; const avatar = '//cdn.antd-admin.zuiidea.com/bc442cf0cc6f7940dcc567e465048d1a8d634493198c4-sPx5BR_fw236.jpeg'; @@ -25,8 +23,6 @@ export const getStore = createStore({ recentSales: [], comments: [], completed: [], - browser: [], - cpu: {}, user: { avatar, }, @@ -38,10 +34,8 @@ export const getStore = createStore({ const data = await queryDashboard(parse(payload)); state.loading = false; - state.browser = data.browser; state.comments = data.comments; state.completed = data.completed; - state.cpu = data.cpu; state.message = data.message; state.numbers = data.numbers; state.quote = data.quote; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/services/dashboard.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/dashboard/services/dashboard.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/services/dashboard.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/dashboard/services/dashboard.js diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/services/weather.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/dashboard/services/weather.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/services/weather.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/dashboard/services/weather.js diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/index.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/index.js similarity index 77% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/index.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/index.js index 4005019e..9135bf8c 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/index.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/index.js @@ -1,4 +1,4 @@ -import Inula from 'inulajs'; +import Inula from '@cloudsop/horizon'; import { Redirect } from 'react-router-dom'; function Index() { diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/routes.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/routes.js similarity index 86% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/routes.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/routes.js index 2d0391de..4e9d9cb1 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/routes.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/routes.js @@ -1,10 +1,11 @@ -import Inula, { lazy } from 'inulajs'; +import Inula, { lazy } from '@cloudsop/horizon'; export function getRoutes() { const routes = [ { path: '/', component: lazy(() => import(/* webpackChunkName: 'layouts__index' */ '@/layouts/index.js')), + title: 'Inula Antd', childRoutes: [ { path: '/404', @@ -13,10 +14,12 @@ export function getRoutes() { { path: '/dashboard', component: lazy(() => import(/* webpackChunkName: 'p__dashboard__index' */ './dashboard/index.tsx')), + title: 'Inula Antd', }, { path: '/user', component: lazy(() => import(/* webpackChunkName: 'p__user__index' */ '@/pages/user/index.tsx')), + title: 'Inula Antd', }, { path: '/user/:id', diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/user/components/Filter.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/user/components/Filter.js similarity index 98% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/user/components/Filter.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/user/components/Filter.js index e0caa778..50c29c47 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/user/components/Filter.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/user/components/Filter.js @@ -1,4 +1,4 @@ -import Inula, { useRef } from 'inulajs'; +import Inula, { useRef } from '@cloudsop/horizon'; import moment from 'moment'; import { FilterItem } from 'components'; import { Button, Row, Col, DatePicker, Form, Input, Cascader } from 'antd'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/user/components/Filter.less b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/user/components/Filter.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/user/components/Filter.less rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/user/components/Filter.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/user/components/List.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/user/components/List.js similarity index 94% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/user/components/List.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/user/components/List.js index 110ea00e..1b0ca5f8 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/user/components/List.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/user/components/List.js @@ -1,9 +1,8 @@ -import Inula from 'inulajs'; -import { Table, Modal, Avatar } from 'antd'; +import Inula from '@cloudsop/horizon'; +import { Table, Modal } from 'antd'; import { DropOption } from 'components'; import { t } from 'utils/intl'; import { Trans } from 'utils/intl'; -import { Link } from 'react-router-dom'; import styles from './List.less'; const { confirm } = Modal; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/user/components/List.less b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/user/components/List.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/user/components/List.less rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/user/components/List.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/user/components/Modal.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/user/components/Modal.js similarity index 98% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/user/components/Modal.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/user/components/Modal.js index 3d98a86b..15dfd689 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/user/components/Modal.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/user/components/Modal.js @@ -1,4 +1,4 @@ -import Inula, { useRef } from 'inulajs'; +import Inula, { useRef } from '@cloudsop/horizon'; import { Form, Input, InputNumber, Radio, Modal, Cascader } from 'antd'; import { t, Trans } from 'utils/intl'; import city from 'utils/city'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/user/id/index.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/user/id/index.js similarity index 92% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/user/id/index.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/user/id/index.js index d270fbc5..afdc3405 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/user/id/index.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/user/id/index.js @@ -1,4 +1,4 @@ -import Inula, { PureComponent } from 'inulajs'; +import Inula, { PureComponent } from '@cloudsop/horizon'; import PropTypes from 'prop-types'; import { Page } from 'components'; import styles from './index.less'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/user/id/index.less b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/user/id/index.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/user/id/index.less rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/user/id/index.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/user/id/models/detail.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/user/id/models/detail.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/user/id/models/detail.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/user/id/models/detail.js diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/user/index.tsx b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/user/index.tsx similarity index 98% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/user/index.tsx rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/user/index.tsx index 92d5caee..8e6e49b9 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/user/index.tsx +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/user/index.tsx @@ -1,4 +1,4 @@ -import Inula, { useEffect } from 'inulajs'; +import Inula, { useEffect } from '@cloudsop/horizon'; import { Row, Col, Button, Popconfirm } from 'antd'; import { Page } from '../../components'; import { stringify } from 'qs'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/user/model.ts b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/user/model.ts similarity index 97% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/user/model.ts rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/user/model.ts index fd2b883c..9c4552f1 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/user/model.ts +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/pages/user/model.ts @@ -1,5 +1,5 @@ import api from '../../services'; -import { createStore } from 'inulajs'; +import { createStore } from '@cloudsop/horizon'; const { queryUserList, createUser, removeUser, updateUser, removeUserList } = api; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/plugins/onError.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/plugins/onError.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/plugins/onError.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/plugins/onError.js diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/services/api.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/services/api.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/services/api.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/services/api.js diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/services/index.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/services/index.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/services/index.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/services/index.js diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/themes/default.less b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/themes/default.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/themes/default.less rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/themes/default.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/themes/index.less b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/themes/index.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/themes/index.less rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/themes/index.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/themes/mixin.less b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/themes/mixin.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/themes/mixin.less rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/themes/mixin.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/themes/vars.less b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/themes/vars.less similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/themes/vars.less rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/themes/vars.less diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/utils/city.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/utils/city.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/utils/city.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/utils/city.js diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/utils/config.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/utils/config.js similarity index 90% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/utils/config.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/utils/config.js index 5e79dbbd..4977f047 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/utils/config.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/utils/config.js @@ -21,17 +21,14 @@ module.exports = { { key: 'pt-br', title: 'Português', - flag: '/portugal.svg', }, { key: 'en', title: 'English', - flag: '/america.svg', }, { key: 'zh', title: '中文', - flag: '/china.svg', }, ], defaultLanguage: 'en', diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/utils/constant.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/utils/constant.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/utils/constant.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/utils/constant.js diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/utils/iconMap.jsx b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/utils/iconMap.jsx similarity index 94% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/utils/iconMap.jsx rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/utils/iconMap.jsx index 58f29731..69ab35c0 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/utils/iconMap.jsx +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/utils/iconMap.jsx @@ -1,4 +1,4 @@ -import Inula from 'inulajs'; +import Inula from '@cloudsop/horizon'; import { PayCircleOutlined, ShoppingCartOutlined, diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/utils/index.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/utils/index.js similarity index 98% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/utils/index.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/utils/index.js index 45518f15..6c87d5ec 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/utils/index.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/utils/index.js @@ -164,14 +164,14 @@ export function setLocale(language) { export function parseSearch(search) { const searchObj = {}; search.replace(/([^?&=]+)=([^&]+)/g, (_, k, v) => { - if (k === 'address') { + if (k === "address") { if (searchObj[k]) { searchObj[k].push(decodeURI(v)); } else { - searchObj[k] = [decodeURI(v)]; + searchObj[k] = [decodeURI(v)] } } else { - searchObj[k] = decodeURI(v); + searchObj[k] = decodeURI(v) } }); return searchObj; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/utils/index.test.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/utils/index.test.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/utils/index.test.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/utils/index.test.js diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/utils/intl.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/utils/intl.js similarity index 97% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/utils/intl.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/utils/intl.js index ba3aea47..20eefdd9 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/utils/intl.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/utils/intl.js @@ -2,7 +2,7 @@ * 国际化,支持按需加载 */ -import Inula from 'inulajs'; +import Inula from '@cloudsop/horizon'; import { createIntl, createIntlCache, FormattedMessage } from 'react-intl'; import zhCN from 'antd/lib/locale-provider/zh_CN'; import enUS from 'antd/lib/locale-provider/en_US'; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/utils/request.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/utils/request.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/utils/request.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/utils/request.js diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/utils/theme.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/utils/theme.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/utils/theme.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/src/utils/theme.js diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/tsconfig.json b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/tsconfig.json similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/tsconfig.json rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/tsconfig.json diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/webpack/devServer.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/webpack/devServer.js similarity index 96% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/webpack/devServer.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/webpack/devServer.js index 982d9a19..bab197c7 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/webpack/devServer.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/webpack/devServer.js @@ -17,7 +17,7 @@ const devServerOptions = { overlay: { errors: true, warnings: false, - runtimeErrors: error => { + runtimeErrors: (error) => { if (error.message.indexOf('ResizeObserver') !== -1) { return false; } diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/webpack/mockServer.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/webpack/mockServer.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/webpack/mockServer.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/webpack/mockServer.js diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/webpack/webpack.basic.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/webpack/webpack.basic.js similarity index 94% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/webpack/webpack.basic.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/webpack/webpack.basic.js index d6f3c62f..2abcd6df 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/webpack/webpack.basic.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/webpack/webpack.basic.js @@ -14,8 +14,8 @@ module.exports = { themes: path.resolve('src/themes'), utils: path.resolve('src/utils'), - react: 'inulajs', // 新增 - 'react-dom': 'inulajs', // 新增 + react: '@cloudsop/horizon', // 新增 + 'react-dom': '@cloudsop/horizon', // 新增 }, }, rules: [ diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/webpack/webpack.dev.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/webpack/webpack.dev.js similarity index 100% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/webpack/webpack.dev.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/webpack/webpack.dev.js diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/webpack/webpack.prod.js b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/webpack/webpack.prod.js similarity index 90% rename from packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/webpack/webpack.prod.js rename to packages/create-inula/lib/generators/Inula-antd/templates/webpack/webpack/webpack.prod.js index b2e249cb..b0798cd9 100644 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/webpack/webpack.prod.js +++ b/packages/create-inula/lib/generators/Inula-antd/templates/webpack/webpack/webpack.prod.js @@ -5,9 +5,8 @@ const MiniCssExtractPlugin = require('mini-css-extract-plugin'); const { CleanWebpackPlugin } = require('clean-webpack-plugin'); const { rules, resolve } = require('./webpack.basic'); -const appName = 'admin'; const app_main_path = path.resolve(_ROOTPATH, `./src/entry.tsx`); -const buildOutPath = path.resolve(_ROOTPATH, `./build/${appName}`); +const buildOutPath = path.resolve(_ROOTPATH, `./dist`); const appConfig = { mode: 'production', diff --git a/packages/create-inula/lib/generators/InulaJS-antd/meta.json b/packages/create-inula/lib/generators/InulaJS-antd/meta.json deleted file mode 100644 index 40f5e08d..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/meta.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "description": "inula-antd template." -} diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/mock/dashboard.js b/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/mock/dashboard.js deleted file mode 100644 index 36135aea..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/mock/dashboard.js +++ /dev/null @@ -1,142 +0,0 @@ -import { Constant } from './_utils'; -import Mock from 'mockjs'; - -const { ApiPrefix, Color } = Constant; - -const Dashboard = Mock.mock({ - 'sales|8': [ - { - 'name|+1': 2008, - 'Clothes|200-500': 1, - 'Food|180-400': 1, - 'Electronics|300-550': 1, - }, - ], - cpu: { - 'usage|50-600': 1, - space: 825, - 'cpu|40-90': 1, - 'data|20': [ - { - 'cpu|20-80': 1, - }, - ], - }, - browser: [ - { - name: 'Google Chrome', - percent: 43.3, - status: 1, - }, - { - name: 'Mozilla Firefox', - percent: 33.4, - status: 2, - }, - { - name: 'Apple Safari', - percent: 34.6, - status: 3, - }, - { - name: 'Internet Explorer', - percent: 12.3, - status: 4, - }, - { - name: 'Opera Mini', - percent: 3.3, - status: 1, - }, - { - name: 'Chromium', - percent: 2.53, - status: 1, - }, - ], - user: { - name: 'github', - sales: 3241, - sold: 3556, - }, - 'completed|12': [ - { - 'name|+1': 2008, - 'Task complete|200-1000': 1, - 'Cards Complete|200-1000': 1, - }, - ], - 'comments|5': [ - { - name: '@last', - 'status|1-3': 1, - content: '@sentence', - avatar() { - return Mock.Random.image('48x48', Mock.Random.color(), '#757575', 'png', this.name.substr(0, 1)); - }, - date() { - return `2016-${Mock.Random.date('MM-dd')} ${Mock.Random.time('HH:mm:ss')}`; - }, - }, - ], - 'recentSales|36': [ - { - 'id|+1': 1, - name: '@last', - 'status|1-4': 1, - date() { - return `${Mock.Random.integer(2015, 2016)}-${Mock.Random.date('MM-dd')} ${Mock.Random.time('HH:mm:ss')}`; - }, - 'price|10-200.1-2': 1, - }, - ], - quote: { - name: 'Joho Doe', - title: 'Graphic Designer', - content: - "I'm selfish, impatient and a little insecure. I make mistakes, I am out of control and at times hard to handle. But if you can't handle me at my worst, then you sure as hell don't deserve me at my best.", - avatar: '//cdn.antd-admin.zuiidea.com/bc442cf0cc6f7940dcc567e465048d1a8d634493198c4-sPx5BR_fw236', - }, - numbers: [ - { - icon: 'pay-circle-o', - color: Color.green, - title: 'Online Review', - number: 2781, - }, - { - icon: 'team', - color: Color.blue, - title: 'New Customers', - number: 3241, - }, - { - icon: 'message', - color: Color.purple, - title: 'Active Projects', - number: 253, - }, - { - icon: 'shopping-cart', - color: Color.red, - title: 'Referrals', - number: 4324, - }, - ], -}); - -// module.exports = { -// [`get ${ApiPrefix}/dashboard`](req, res) { -// res.json(Dashboard); -// }, -// }; - -export default [ - { - url: `${ApiPrefix}/dashboard`, - method: 'get', - response: () => { - return Dashboard; - }, - }, -]; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/public/america.svg b/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/public/america.svg deleted file mode 100644 index 8cab835c..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/public/america.svg +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/public/china.svg b/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/public/china.svg deleted file mode 100644 index 4e3dbbfe..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/public/china.svg +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/public/portugal.svg b/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/public/portugal.svg deleted file mode 100644 index a535e696..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/public/portugal.svg +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/assets/react.svg b/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/assets/react.svg deleted file mode 100644 index 6c87de9b..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/assets/react.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Editor/Editor.js b/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Editor/Editor.js deleted file mode 100644 index 1b333aa7..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Editor/Editor.js +++ /dev/null @@ -1,17 +0,0 @@ -import Inula from 'inulajs'; -import { Editor } from 'react-draft-wysiwyg'; -import 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css'; -import styles from './Editor.module.less'; - -const DraftEditor = props => { - return ( - - ); -}; - -export default DraftEditor; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Editor/Editor.module.less b/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Editor/Editor.module.less deleted file mode 100644 index 2cea380a..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Editor/Editor.module.less +++ /dev/null @@ -1,106 +0,0 @@ -.wrapper { - height: 500px; - - :global { - .rdw-dropdownoption-default { - padding: 6px; - } - - .rdw-dropdown-optionwrapper { - box-sizing: content-box; - width: 100%; - border-radius: 0 0 2px 2px; - &:hover { - box-shadow: none; - } - } - - .rdw-inline-wrapper { - flex-wrap: wrap; - margin-bottom: 0; - - .rdw-option-wrapper { - margin-bottom: 6px; - } - } - - .rdw-option-active { - box-shadow: 1px 1px 0 #e8e8e8 inset; - } - - .rdw-colorpicker-option { - box-shadow: none; - } - - .rdw-colorpicker-modal, - .rdw-embedded-modal, - .rdw-emoji-modal, - .rdw-image-modal, - .rdw-link-modal { - box-shadow: 4px 4px 40px rgba(0, 0, 0, 0.05); - } - - .rdw-colorpicker-modal, - .rdw-embedded-modal, - .rdw-link-modal { - height: auto; - } - - .rdw-emoji-modal { - width: 214px; - } - - .rdw-colorpicker-modal { - width: auto; - } - - .rdw-embedded-modal-btn, - .rdw-image-modal-btn, - .rdw-link-modal-btn { - height: 32px; - margin-top: 12px; - } - - .rdw-embedded-modal-input, - .rdw-embedded-modal-size-input, - .rdw-link-modal-input { - padding: 2px 6px; - height: 32px; - } - - .rdw-dropdown-selectedtext { - color: #000; - } - - .rdw-dropdown-wrapper, - .rdw-option-wrapper { - min-width: 36px; - transition: all 0.2s ease; - height: 30px; - - &:active { - box-shadow: 1px 1px 0 #e8e8e8 inset; - } - - &:hover { - box-shadow: 1px 1px 0 #e8e8e8; - } - } - - .rdw-dropdown-wrapper { - min-width: 60px; - } - - .rdw-editor-main { - box-sizing: border-box; - } - } - - .editor { - border: 1px solid #f1f1f1; - padding: 5px; - border-radius: 2px; - height: auto; - min-height: 200px; - } -} diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Editor/package.json b/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Editor/package.json deleted file mode 100644 index 3ea063e3..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Editor/package.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "Editor", - "version": "0.0.0", - "private": true, - "main": "Editor.js" -} diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Layout/Header.js b/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Layout/Header.js deleted file mode 100644 index b00db379..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/components/Layout/Header.js +++ /dev/null @@ -1,116 +0,0 @@ -import Inula, { Fragment } from 'inulajs'; -import { Menu, Layout, Avatar, Popover, List } from 'antd'; -import { Ellipsis } from 'components'; -import { RightOutlined, MenuFoldOutlined, MenuUnfoldOutlined } from '@ant-design/icons'; -import { Trans } from 'utils/intl'; -import { getLocale, setLocale } from 'utils'; -import moment from 'moment'; -import classnames from 'classnames'; -import config from 'config'; -import styles from './Header.module.less'; - -const { SubMenu } = Menu; - -function Header({ fixed, avatar, username, collapsed, notifications, onCollapseChange, onAllNotificationsRead }) { - const rightContent = [ - - - - Hi, - - {username} - - - } - > - , - ]; - - if (config.i18n) { - const { languages } = config.i18n; - const language = getLocale(); - const currentLanguage = languages.find(item => item.key === language); - - rightContent.unshift( - { - setLocale(data.key); - }} - mode="horizontal" - > - }> - {languages.map(item => ( - - - {item.title} - - ))} - - - ); - } - - rightContent.unshift( - document.querySelector('#primaryLayout')} - content={ -
- You have viewed all notifications., - }} - renderItem={item => ( - - - {item.title} - - } - description={moment(item.date).fromNow()} - /> - - - )} - /> - {notifications.length ? ( -
- Clear notifications -
- ) : null} -
- } - > - {/* - - */} -
- ); - - return ( - -
- {collapsed ? : } -
-
{rightContent}
-
- ); -} - -export default Header; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/browser.js b/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/browser.js deleted file mode 100644 index 9a90e2f8..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/browser.js +++ /dev/null @@ -1,43 +0,0 @@ -import Inula from 'inulajs'; -import PropTypes from 'prop-types'; -import { Table, Tag } from 'antd'; -import Color from 'utils/theme'; -import styles from './browser.module.less'; - -const status = { - 1: { - color: Color.green, - }, - 2: { - color: Color.red, - }, - 3: { - color: Color.blue, - }, - 4: { - color: Color.yellow, - }, -}; - -function Browser({ data }) { - const columns = [ - { - title: 'name', - dataIndex: 'name', - className: styles.name, - }, - { - title: 'percent', - dataIndex: 'percent', - className: styles.percent, - render: (text, it) => {text}%, - }, - ]; - return ; -} - -Browser.propTypes = { - data: PropTypes.array, -}; - -export default Browser; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/browser.module.less b/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/browser.module.less deleted file mode 100644 index 631ad64f..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/browser.module.less +++ /dev/null @@ -1,7 +0,0 @@ -.percent { - text-align: right !important; -} - -.name { - text-align: left !important; -} diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/comments.js b/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/comments.js deleted file mode 100644 index 409cb3f5..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/comments.js +++ /dev/null @@ -1,63 +0,0 @@ -import Inula from 'inulajs'; -import PropTypes from 'prop-types'; -import { Table, Tag } from 'antd'; -import Color from '../../../utils/theme'; -import styles from './comments.module.less'; - -const status = { - 1: { - color: Color.green, - text: 'APPROVED', - }, - 2: { - color: Color.yellow, - text: 'PENDING', - }, - 3: { - color: Color.red, - text: 'REJECTED', - }, -}; - -function Comments({ data }) { - const columns = [ - { - title: 'avatar', - dataIndex: 'avatar', - width: 48, - className: styles.avatarcolumn, - render: text => , - }, - { - title: 'content', - dataIndex: 'content', - render: (text, it) => ( -
-
{it.name}
-

{it.content}

-
- {status[it.status].text} - {it.date} -
-
- ), - }, - ]; - return ( -
-
key < 3)} - /> - - ); -} - -Comments.propTypes = { - data: PropTypes.array, -}; - -export default Comments; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/comments.module.less b/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/comments.module.less deleted file mode 100644 index f6fa2dec..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/comments.module.less +++ /dev/null @@ -1,43 +0,0 @@ -@import '../../../themes/vars.less'; - -.comments { - :global .ant-table-thead > tr > th { - background: #fff; - border-bottom: solid 1px @border-color-base; - } - - .avatar { - width: 48px; - height: 48px; - background-position: center; - background-size: cover; - border-radius: 50%; - background: #f8f8f8; - display: inline-block; - } - - .content { - text-align: left; - color: #757575; - } - - .date { - color: #a3a3a3; - line-height: 30px; - } - - .daterow { - display: flex; - justify-content: space-between; - } - - .name { - font-size: 14px; - color: #474747; - text-align: left; - } - - .avatarcolumn { - vertical-align: top; - } -} diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/completed.js b/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/completed.js deleted file mode 100644 index 881b9791..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/completed.js +++ /dev/null @@ -1,86 +0,0 @@ -import Inula from 'inulajs'; -import PropTypes from 'prop-types'; -import classnames from 'classnames'; -import Color from 'utils/theme'; -import { AreaChart, Area, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer } from 'recharts'; -import styles from './completed.module.less'; - -function Completed({ data }) { - return ( -
-
TEAM TOTAL COMPLETED
- - - { - const { payload } = prop; - return ( -
    - {payload.map((item, key) => ( -
  • - - {item.value} -
  • - ))} -
- ); - }} - /> - - - - { - const list = content.payload.map((item, key) => ( -
  • - - {`${item.name}:${item.value}`} -
  • - )); - return ( -
    -

    {content.label}

    - {content.payload &&
      {list}
    } -
    - ); - }} - /> - - -
    -
    -
    - ); -} - -Completed.propTypes = { - data: PropTypes.array, -}; - -export default Completed; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/completed.module.less b/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/completed.module.less deleted file mode 100644 index 4dc79a16..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/completed.module.less +++ /dev/null @@ -1,49 +0,0 @@ -@import '../../../themes/vars.less'; - -.sales { - .title { - margin-left: 32px; - font-size: 16px; - } -} - -.radiusdot { - width: 12px; - height: 12px; - margin-right: 8px; - border-radius: 50%; - display: inline-block; -} - -.legend { - text-align: right; - color: #999; - font-size: 14px; - - li { - height: 48px; - line-height: 48px; - display: inline-block; - - & + li { - margin-left: 24px; - } - } -} - -.tooltip { - background: #fff; - padding: 20px; - font-size: 14px; - - .tiptitle { - font-weight: 700; - font-size: 16px; - margin-bottom: 8px; - } - - .tipitem { - height: 32px; - line-height: 32px; - } -} diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/cpu.js b/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/cpu.js deleted file mode 100644 index dc1e7f5e..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/cpu.js +++ /dev/null @@ -1,58 +0,0 @@ -import Inula from 'inulajs'; -import PropTypes from 'prop-types'; -import Color from 'utils/theme'; -import CountUp from 'react-countup'; -import { LineChart, Line, XAxis, YAxis, CartesianGrid, ResponsiveContainer } from 'recharts'; -import styles from './cpu.module.less'; - -const countUpProps = { - start: 0, - duration: 2.75, - useEasing: true, - useGrouping: true, - separator: ',', -}; - -function Cpu({ usage = 0, space = 0, cpu = 0, data }) { - return ( -
    -
    -
    -

    usage

    -

    - -

    -
    -
    -

    space

    -

    - -

    -
    -
    -

    cpu

    -

    - -

    -
    -
    - - - - - - - - -
    - ); -} - -Cpu.propTypes = { - data: PropTypes.array, - usage: PropTypes.number, - space: PropTypes.number, - cpu: PropTypes.number, -}; - -export default Cpu; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/cpu.module.less b/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/cpu.module.less deleted file mode 100644 index d23163b1..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/cpu.module.less +++ /dev/null @@ -1,40 +0,0 @@ -.cpu { - .number { - display: flex; - height: 64px; - justify-content: space-between; - margin-bottom: 32px; - - .item { - text-align: center; - height: 64px; - width: 100%; - position: relative; - - & + .item { - &::before { - content: ''; - display: block; - width: 1px; - height: 40px; - position: absolute; - background: #f5f5f5; - top: 12px; - } - } - - p { - color: #757575; - - &:first-child { - font-size: 16px; - } - - &:last-child { - font-size: 20px; - font-weight: 700; - } - } - } - } -} diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/index.js b/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/index.js deleted file mode 100644 index f52fc524..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/index.js +++ /dev/null @@ -1,12 +0,0 @@ -import NumberCard from './numberCard'; -import Quote from './quote'; -import Sales from './sales'; -import Weather from './weather'; -import RecentSales from './recentSales'; -import Comments from './comments'; -import Completed from './completed'; -import Browser from './browser'; -import Cpu from './cpu'; -import User from './user'; - -export { NumberCard, Quote, Sales, Weather, RecentSales, Comments, Completed, Browser, Cpu, User }; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/recentSales.js b/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/recentSales.js deleted file mode 100644 index b2774358..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/recentSales.js +++ /dev/null @@ -1,60 +0,0 @@ -import Inula from 'inulajs'; -import moment from 'moment'; -import PropTypes from 'prop-types'; -import { Table, Tag } from 'antd'; -import Color from '../../../utils/theme'; -import styles from './recentSales.module.less'; - -const status = { - 1: { - color: Color.green, - text: 'SALE', - }, - 2: { - color: Color.yellow, - text: 'REJECT', - }, - 3: { - color: Color.red, - text: 'TAX', - }, - 4: { - color: Color.blue, - text: 'EXTENDED', - }, -}; - -function RecentSales({ data }) { - const columns = [ - { - title: 'NAME', - dataIndex: 'name', - }, - { - title: 'STATUS', - dataIndex: 'status', - render: text => {status[text].text}, - }, - { - title: 'DATE', - dataIndex: 'date', - render: text => moment(text).format('YYYY-MM-DD'), - }, - { - title: 'PRICE', - dataIndex: 'price', - render: (text, it) => ${text}, - }, - ]; - return ( -
    -
    key < 5)} /> - - ); -} - -RecentSales.propTypes = { - data: PropTypes.array, -}; - -export default RecentSales; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/recentSales.module.less b/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/recentSales.module.less deleted file mode 100644 index ac9aea34..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/recentSales.module.less +++ /dev/null @@ -1,8 +0,0 @@ -@import '../../../themes/vars'; - -.recentsales { - :global .ant-table-thead > tr > th { - background: #fff; - border-bottom: solid 1px @border-color-base; - } -} diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/user-background.png b/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/user-background.png deleted file mode 100644 index 5f99e137361588575fe0ac2dde3a5eae17724e90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51198 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≧K=IIG4<4OR<&-+69qZ z6gWMH%OcG%^G`esLD8)XTs)l`J?v|F)D$0#lv(tp4h54tKlsQJS*(t2N;@w03oLvQ zkt*j{*$z-OM4B@AVLLjC`CMIgP7Ni3wi4hF4^y4rPK{J#nt7Attt! z4tu`ekPCWI-;udtc6D_(o(!W7QxM#_h+uu*)38 za*55m<~a3aZaZiff+{F^zB@!Raq3f*3a$lw0W46IFW_+TI{a%mo^ znwBzk^OCil)<+~2CNEYB6DJc|ka`@SR80O8l!%E9=`gVQlq1>AgB*v4$gKii5U**hy-1PfT>*+ zfAjqA0U95wJmr%$kC~?gLe?YdzD2?0-ru7LCwJjJbh@dh)I_lfc%&xJVNVPjV@7`4 zSyxlxV)m(XID+5T0^*|iQh-tqOpRkjaxF{r8GqVVun+e zKGe&t205M2v1tI;IV>G0V$!)7tba!TT z{N&zn_~YQzm?$IBhHah)Iu!kieVotld=Fc~tH00xHLOLoI-^wjuR;$)LyG&D_{t6)!;tjXcM}PRKXQ{y6a+%%A5kw(? z=*Dfbf7ONK5*!wnO2uukiY5`fM65&JdCa^2O)bpR<7@G)n(D9hvc zghmpsx6L5+x%4>E=-zk&i*Ax3`#Mr#Muyu>p(S%bn}WvqT9;r9)M3KV)6`|$)iXN} z@kw6P7(MziWTvaYR_RaUuydLrJn800>r3}q2=Mp_Pq}?EyZ))JVaxdKaiU*`HyHr{ zS?>c6J|asAq3;s;?N)aASV+fmi+J~U5UWezwx(!f(Q6=2!Sj%L`m=MoPxi?}pUqTm zP^QGj{!ZbqQOPdwUL74W>s@@q$UM^JAa^$!3Z;sHcKg(M7@)UIwW0~Ju~WRpvvXr` zW3AuVfyhNT_rd@W2Cv;SeNt!vwn&}-MilzlcF||wFTnWb>R|TL6h#Sap$^|J{KZ#tzMp)gf(wtjE5qMptGpgBS9ZQ)|OJPh2XbK&RG9{8mCV zD=<1hI&_jhV$^TA>bN*q?0nZY0TGXsa88lywZo+vQ%H81-*6ggLNULn=gDMVwJ`C_ zl}R&xOT2pwo@8$#e7*E|O^#-Bh>qmREU5*?lKx+I_)RulXOg}{LuEpIg z*Cb`ZmPW%^G*SC+Vq$k2o8jS*Ni2YNaUTgeX=KO>7n+#hY8(;3^Y(mE27bYo@%8;x z)0M*6$kQa2j}pRk&XJN`j-=-{iV(OH$?IKm(!LNMymOjN_!oL$_@B?9MG9q4XY2>k zOv2CK#dl6b3;XrB)FQrmBbfRGBqR*mD{+6Hc~4F{RVqgH?a<r!$GNXeW>3_2(P)O9pB9EL_s> zu%O;j*I|@*alMJ~wqX~vL4ztiG7OMJPn79HP+gDR^dZ!T(po{nl6f0D-sIJE&3(J z^cnaH$1nIox`wS-))M4NhtayNiLo#3rg#9k?S>Gg;Go3m zb7}UJwlqo!)9sb*V^|!3Ld~&Ncvq+28h8PS#^AKUyK)Z}2l6Kh(I#+>I*0SATi`mq z@~frbg}B-*B)pm3mrO?d+&PWb63PZdYpVsf00hiSXV?2;@fSh_dez1=2r6$g@oHZZ znnIo9eVNdpbigxqYi1~p1*<~Va(d>AZofo3PlL(i z6kVM&zpOe$`KuMky+F3wggv01{C4`XNhY-SbG8bw6 z<=&V6D}1d!7E)ZUwQd}j93ZKguA#>L0G_WoXGGI`CECBgT4~f+)B}m#Wv>wbNZc! zo;cs4a-Bj><#C%fUx+{3;MIgOcHM%tVbNf&jzxW-zv;hOti67#;+aeGZ6aU;h%7wx z&mGL*iFbJ**hCv$s`t<@?JVA0uMOrCXGNOqm^8DQ&&4bPNv4qE~ z&SZIlEOsvkmk6bcl#Hu+z#%bp&+^rz(L}5y&2s_#QT~z_zv=W04$)&#&2=I(jANN* zi4@n%^6o%O;b2tv8$-f@Us!3uV4yF1mEv7OrfE}XvbUjet`jgnJ|9!v+P<33#2ypa zj^^hIlr~AC9DHvbafOBrEa0FbfXu(vAC)$@q(xJ`Zwy#UY z(H#d01BhWb01h3Q?=)W~`d_2uA{xPN_+RUK1bAc*i>^l;l$Xu(BhAuH?_ht8#uEA% zfeB8dob@B2*VdPVx@jZ*!JC1iA95fx0q&N2bSTIcjc4TX)lLNVmd%lZyiunR@H)n~ z?NUPm3z>d{NrCQB*P{?7)|!Klz8VFyknYmTJwMm`D`QNFhH&m7)vRwpp=k{dvi1Gg zBo2BFvzaYbL7=JsG&UJ2m+ElSMtSs3|^P;eY!P*ziDxyPs48fF8pC&nshXjOOw3! zaxKzn%`H!WqKq;n@qCk@lwZWi3Vu9`5fgYo(!OB`H;MSof8fYRMkq!5alEo3mDl3? zmV4#W<}u`|Clk>V_p42W7@-S-f;+C^a^DSBO|=}Nd{)PK<`yx&#r1uQ?-&s~LRXt{ z21^+GF6jh>6|z(C0GNRQ%+n6Ppqd+BHeA-LQoKB@SR=6%p8ERE`;DjciB8{sDKYLR zjo7hr_ZALo_@HNXVCiHxoWZq2ANr}0(a^x|(sfQGg1SlPihst&Z)GhAE*3YqJfA6V zwQnJ4!qkjPBO_w9xPHhrrg1mEkY0X7EIalJs_~N|dL6BkmYFNUwI6{2X<;aH)1A7} znjIZL96dX$h(%N?xpS#w=6{Ia2973C8YPXyM2ZJgSI&g^j35y80^@qdTr(d{s`nrF zfk))_0)SX=&&Mz``x`^O^o2EF_Gjut@_36_e1Jvdc*3t6CgGs|(p3Iy_xGIMnYz7~ zu{?39OiIz``%5j$x^-B7;mmAF3t2-v(HDvygXP5O!_?WQ*7V_MB6vhV^28#qwio={ z^#{{l&m_7f3DgR1HK@j4t$Xb!Q37rmJ)7K)&I_qO7tk}>O1*6UF7IlpEBn8FAW@o9 zzmL64rb#!V>Ju^13qd5TW|J#K2#9R5%FyoMy^^<#VzeZ3{7~HwiEf8@<>@G+bNtqs z1FIvO*NUFoxRoUv`8Ye2{;X!^$;OILfr1{~rolX63IGoC_-meh38RsZ;GNES^Homp z8xo;rk?JpVaP~dX7gUpbUt5j#+UKFnKviJ8`?beT__|N|*wUFR_hVVSZ9E_G;B7$S zbR=W~tRG#SkwW+48w4;mV}PStWJ*G&kSZPD9BnO%+5?ORA65{uI3TNjS&-^L7a&f3`KifWb9~soihx_Jso!QJ&J3e?nlWTh;~O`=*NJH zWVjn~cmy&6UC)ba457|WAXt|fmi0U?!Ql)XCNL}yAudw}2xd6(`(Y_N4i3p;IlOxB zZ|Ups2WX=4nYB5yR7u{SkBPA%_b#2gQHEo7xQ9oqH&3uT^dVA`57Wi9=jSkJ)Di%yk+Xtsm$YspVbW_GW07jwY znwQr<>WoL6jiA-(n~JT^tzti~7R9wbpy_5cU^ym_<>ZB%z>};P`NFF8FO!7;G45bi zVGXIyqZDfzd6G`D5WEFM!Ib1C7KY06n_C5uW6p@!=%Z#VG0vLr+?Q3WH(j3$wA3 zTbdB8n@Ejk0S+N4i5h?`8hjBE#&?E+roJ|j?jlw+{;`naQnpljWooMBuCO}ju*uu1 zBJbVT7fqbp2qN3F6OCGxOb`h*I)J;{rRJ01uGo@0UK_|yy0Hy3RFNsM>pnfKvdgU^ z-F>?KCJaXm{Z%SAEbcY%Vn;f5)}3I6&Acn3b25i^pjT4z6FwuJ&)2@DrLWXkV$<0?1+eAL&L6?EADN+>sikpUssxkZB+p?z~AE=tlBUL#Rl5Gh)m zw8~Zb-=}@I3Ef!wznu@yTEJ`^1^Mc0msY?0XUp*Oh7^K|XwPvny71>TN>MY&uRNZI z734t4SWoyH#_3X52#QpGmza=L-@I6Cq5@WG%BMNaAzQ|XMiH}`BUvp+L&gE}j_5oZ z7-z$tf1Hbm71G+3OC|uEK810WMV(Y?yJF>bLy=*KF184@IUkEDOlIRE#xV#(MNBtU z{K#V*!>*a5Z2&L7XBQoHLIwKELPl(TY$IV#uPF0k*X>0^`&Q#qq(JvZFSH=iY-MC& zFp5ceAEmhV36B`6>y-Xf!C4rbg=6wah_KH*Q7hZ&byKxWWJLarbtJJ=r@c{ata3UP z8~a^D%^fu-2K^FlG5UaTE0+EGuS};%E-=m`<^FH&@k*2BV1z95XmNkOn!w-A$oODd zsflO_+GO(O(QL*MBQR`ew(svGOaV;l+KhJT=*L0=ZQDj z+IcKWiZX=0<^0P5t(&C<-W4v35s`QV8?P4^o4xw`C~h5ZGvh+H#vvE zUf@1P&BKi*4q4G6LSQ77J0E+Ca~frNTPN=uz&D)oOQO>guN?f4sEx3$HDqWM%#4)i zejLdJ)sZL$2h*G4Y^-xCQ)TSEk58lXCd&1*!t-PDJ)$W-RzR_#9FgQm`@iRx z)Z9&3(FrTaOSh?ZcY$(h`*RsRAdt~m^V27Jw+V&7syLKyfjKV5?}I(y!?y`3(j#)J z^BnDuqKs9P9!KMoFD!|^TzZl1pj**#c(UH9qXZ_EhfnqH^2px*5ZLGD%dq|!k1Yu3p@#U@XknY~Yi|RA0A4;q!1$;Ow3pZ&xm zEguu#u-N-fqwb@Jz&Y0!7jVhs@P4PbClGOaZU=6A?i0OQ z4j339*26WnSIry@Tuh(`JLIZdR5+X{f1nJ;UB*80vRR!MO5co*Ik2LaPKHCDyDu>_ z3*>y188{$tXMRVwx{xs{wRhRJBKQvk984syM%~pQ{E-?5;&bf4yNtB`m)rb_&$;#- z=O03Ttpfl}`Xy-}{fIv5V`_KQ%jfn~a@)9EsQ%2eSryN-3n>AtNl+t+ytK<6X?YP5 zYSzjyp+zrb%H^oA#f-0f%ZPYMOX^&!QPW2U$5Nmh4h;SrF59v7{Nse3ar*`ZI9W1} ztkXf3-WmR=Xuv#vHS+gPF_`pt#5kUuu8aH+%yEOWN`MRVFmh042NRZm)rI0)xqp;+ z)mb*F8Ub`}v*PsTB+L(rvGYfz2$=54*9mDJy`KdF{@1-Q9X)?I-P0q+SyvM?HZ7 z{q6MLCZgff8Ng8{XDhMBYT>Iua8=T4i&z-<0U>b6m?-|a^BZ{HD!lWXwdB3qZ-aoe zDv9Jd`ClAxQ_v z614%@3SUGLiJGIiRuujo0GGB<@fq>CT9>35ciYcWe-O`4Igfq2nX9NEyre))!1H6n zIXHEx4+QR0IrE#NU{Iy}XZOQ;W*)MHF%5uj`2apQ)zR7lOt994hj)lNU_hOx99s@3 zcwrP}o@o0GM{*sBK%}^EoZ9J3va= zaDD?22HQ1z8UqyTS2DCH(6i#sdB%i30~@`o2MQg27_P4L12nEAxt;1X>XRSvx1ck9 zl`X%ALF=#*j*!4!znm%i&SJ+w!p3EMDk1KJ3-~g!{|k45$cXRPUzk}*LqQI0Dt-(Q zuw7WyhX4(M#s)f^U)+?`|2X{#!TkMQnq|ubc)diaes8)`4phCd7HTa2K|qxl0|~eG z+tET*d}7Jn2LoQfGe4+JED>KzbI=Vd#eC!EjtYaP4^;uuN-)!WK0sso!LE+@x{;ET z^o0Su7c%GhHLu8HLArV}(;@{h8o3cs#y|MzCOACYCi%HTJ1IkN%kiqHa9+7|)6|9d zAJ?ygnJQd?gJTy$AvSrKq}Na2H*Hkt^g6iM@61?;W20~MtDx=qnA~shMm5Y;#|~ls zWNm{t$5J(e#;-{+CZr04poR?i4s=ievE|wST}+;DVVF@nnm^FgacEoiDV7=Q$+ef9 z^q(t0lH9jopc#xw2jw_qgUw3@sKHB6j7g^*Mz-SacZVUP$%v{C-Bdunp2pAMN*Vy@ zr#udT6$X0Y)D&Ju=pwJ*$?f#paAe^T9`>^WU$3|#oaY5Fy_l?Q)P-JFfsAj?DQ-$A z_cQ^5_jrG|?fi2x38AQ7zuT*n+N#FFj{+p=yBd3yR+O5PYvYaE$?Z>|GffHfH`j{NMsEw7 zco~Q*SU(quUw%-tf1_d(5o}@-k01w_lCaEVi73#RY!Uk#vx_9*IuoxVW!SQ9G*VkRf?4@X}Yr&VLngJ+>yO`;cD5Nc=s> zl+i-o-^5jCoH$l(i(uktS_ENRHR~vR1ebIGkooc(!^Ifw()2dNG%xn>=bXBqZQr$M zvHWxVR<*K6@InW67pG{KLd8Wf4;pxMkt!eh0MCVckPm8Ad`cG>z7W!`l2t05&}I;O zpe0-v^8|-+7%X;46ZC{s2aH@2ag2osPm4c`9Wp4|uE+=2`Y{f>9T$vl9cctS&CDuH zCsP>sJ;l`z<&1kQ+=t8=@&t@IB37!6CeH~d7gp})xxneq30(Tp^}s*Y0tR52OoVS- znNPGUtN2Mlnfb8;&_e)lf70Iask*LhrYwND)QUq5_}MqWG-JfdO2%p9R^1);L#aL^urT+n}jT22xme17D#`FYg=@~$QH`9-D%E-SsOXB#rwE@}hS zg_*RhBUVmXkFmnlSX(5yE$u1;h6DH3VI;pQW3D=!1B;0ky(`k;muUhRTresLb~6j7 z!?dM1NyG5ZX4p>X{6=j}VFnoxHr%gxWyL)1E{&JJ;gyA+xRm^l?kPRN2W13x2v%J^ zSl%=EK4%0?KUX-G`7rl%k+PVUNC$n(1u#@{#`5{VX#h2iT(S-+9HS;*xz&JP^#4K( zz=7kEXY#R0BJrItA8lrE9>7xlGTfF={Q}pxWfpbkd>+RKO6k3kv0TUIY^BOOp4Lk0 zT5-ZiK%1$3Nd)@`3W4zUP0`-W8BIbUm2mA=?N+K26#6-D7TDukbKjFbN9R6r2N-~9 z@vWk}IBkf0G1FrbY+;bO*YgS^dce;d|*9%q010PJUp zrIB`|O_#|7g_d-TtTz?t>F{(_towu51mqjnBW~qO0bCouQ`HoY4|p`J z^dSDDzGpvLoTI4m*cEX@?=l+!endZ@Ml4hLaxkEo9rj|gunw-l;raW@B>+wZl<`N< zL=K?$k={@;tIcpQ<`p0|>i;GY!N2*)vM(7)txso2Y_swn{3$PIDK{{G5^qy*!>3Eb zCgXI0y>^Iyakfgg>n05#621U7wHR^|DTxEJRH2HURC7#vduuIS;bCr*lEXFn(qY$3 zIl!ezEGrR~!m26~uV=6R&P@4f%Hyk|n2XSux(px?DJ65NaeH0|?@EG|vf6rVj1a5> zDBPE(3fKA5iSZ0+QX<$nJy218lS$|*=YYjun7oLn=rQBwNkXrZw5jw!jmdk)$rs<} zmUVq)`bQTTn}kF!CZ=%~PCRC$i&}Bt$&hKxFPr6xesM|#gve2vCxHFm>5AWXK|urF z%`;pAs}sC5#k!1id8hl{TL_fBHSRtn+1MoTHt`A#4d1@}u3le*(-MWP#)mY#Z``16 z#NDv5`nEGz@{l9kmMPv2|F-+e}{<AH~pRkX_0`S_Qb8;`S%x%+0u>NJlsU=k6(DDjrPblC|Zbf8Ht z-S}+#friq>sxD|Q|jx2&0yy{>VE{Ns*k5~9s4kbcAcEDeB2uq5VYIUNQNK#R93NWeoZEJ zL$HZYif=}(YnmAlYaP`7xleeV;qc_YbKh`gW72B(m(-NL%d!R4(|WcbBIv|yUS5P= zpW~$5;u52YWgkN638>7G{ambf)A}|HX6`>%;;ib1P(b+an8DRpG6Bo$h?p- z*2Q}9-Rasd`wgZKTq0I8?NGvS0Qn%1Bo{iXOy7vT6q}i z-tp9N&X=4zbVW@7gU;sq=aloGyv~ngD3R&}^$nmIT&WIfmGHx^3m}9v#idxGTeRvy zwA8T7;l}iZlUm)i@69R|;kt82Ka?K$yJ^rwjvi}KqB*!`x%9Wx!lR1oh%HgokBGzg ziDmck6utoSyL!STX3$8+ceL6A&D|C}2J`0ZCq#!|h^ngxF)Bg%4DNCK&*%4a&?-9_ zI9uY%iQ=OI#Kw*z|DKjkOb4sWlz<-YahoUZb%7!09=y1`yGP7EYel8XKKR;rNZXAl z%d^?_Z@rAt$&o)?LVu;ucT4ssT`rmXk~*F<%R{r0E~MoYwU`xTWjzg<24eN;X3iyH z#cg?Y>l*DH!7^Tbj>!(Q!-^i9yk&CjqXlCvK!ZfALQrB7=94+Uc>nN?ce_wY9<6I} zfGLQL1jD7<2^Cg5n4{+2Tz3l5fsb9#WBj-ys9uRoNHTo6dQSEr;N>A4a=f?RL!``Y zJ%OFyj3&VSa%>!1BMFGX1UmKR8pC^(61!&5R-6~b%FHU8Rhb7>^F0IpvQzRwQgE1Tlfa=oe>{g4?%tmR{vkS$jjWbarkPw`4a z$C>@CNv)^a#BcVcJ6o^XB6v%R(=6fz%AM_(0(Shm&RNEFY*n7FTUd`N2>|B=gV1>9 zbL%xfx*SReH~rnEo=)uzM7E2qjM{E2$AJMc|`0|6X1&K5IV~%en4$I4k);`{^o}a(o(SYx79UHV(%XZkxpuEZ4Y| z6*x7|I12OsQ3>~co7ngS!P}Z*--MV_Lj|ae?k`fHF&*YGR~(t|W`_rXlTKLT$?!+M zds~}9^}Bs-wI^F^KMhH%C)=m#f~)0(1*e^Nj-_*p{;LJKD}k=QlyP$!C^TxyoQ8oN z`+3v}lR_!gJQvG7J^H}P;z5%0n6mzw)9yX%b0w(k(Pn?I`)%i0A`mk)3`q9Nxu&CN(Ae}-RR8d9vh?7*M>pDBQ<9JBP1 z+41b|SAd!9)H3m^r`%RcR84(ptNl#R)0*65{5=`gvG=^B1M+S6*ddHhu$dhCzK)KA zmt$Rh>!|x!@89f|2K2*Zm!9y+`LkBIH!a4q%sI6%bJQ}9`+`;#A~y$SPL3(}=)31L zfb510-wdLrjutfBcbHbW1>Gx%oPf!k2Ce_PN2j(6Mz2rL_MaXwwVgZnR$R&(7x88c z#F5(8Q_yiZvi|QF+gU#V^WK^Xvj!dS{a(j)L_UtH+utgSO{g1L1&JT*`|sL9X%~;D zW^Anhci4yF;7ItpzY?9Ipz!_h=w3t0u$;yQ|0hgrbUllr1&0k=P5Dv7-WW?s&h$~$ z3!_`by@H{#RhSY?JESbVX7pY%49Df#ReR#U+rV2z_C*Tp`@T0014-ykxZsp;G=@7! zC_B#(TXYS0E{4(1kwiHo1KJ_a-CWuz>9oLZv*rNp-U8KX7#PfL8pLql6?qls>)Pj3 zf+Cm?5)idWOIQgOlvwUAzz!}zKv`IEESw3us{t>bb?paTZ&+yX9`g&u*+eSZ2=bj= zK8@z@c4<>^ay#F!^)1`@E4ZL6C~)Yw&0;Lajh$zT4y4ufwhV&H8UKhm`0KhluOCv2 z-&WX|YZ9m$h9*)ds~J4TBZglIRx$ztLo7W^2Rtrpw!hyDF%Dr>umxhLQV0{-?dg-5?eJjZDY!y7%a6Aw7hS5GnYw5!-zILm}) znW@bAY1Q9i?~o#`RgXwXqJTF@CuDCC^TjD7iZ2*fLr~-w$}Q^KqG z$s`^Ks@G`Eas)WxFEHYP2dywUVVN1xiF?XMzi(oOKPFw$zl8U9!%-JdZOE&ZxUsUd z3ojvi$U3JP*`4W_4ikMvB9+TvS1{I>u`E`11b0>4uQXulPv%56U1%umJc4&zLgRX7 zR*8c56BZ2A)0vQ8*3UOon%sT-xmfZx8OS6Oz)Tu zy?R4h_oLHVaBy|=z-!7F$Y!bMNzci{#o~=k@7r9K4A>IiWi%RcYwm`?1%pe81OwE} zeBb&>u#)Rh(DX1!Br`thRsygWK@EhNR;_IHPxcB~r0jPl?x?Y*MN7=iM+$riQ!eG{*kj%U_NIRey~mi3b#v@>qEUt#G( zX@}L16bjOFR}R)+kOINF9+{Rz61t*qxNK6MoWkY3rgPhMmw3lO@=?MrT8+w8S&mlQ z$#Ao}AylNCim_7a&z#&01YJkunCl>Dd_QswDde!yqkS%JH>pD?$-!%kgPIr$?Z)%6 zeCLmt>&wJqj(pmC=eg*(cELYunq7b3MCsOt0T42D>OjKamxP;!#guJx+|6yO(2w`& z!W#Q#zPnOS?g)9RL+WRLBT`nP(QMrU_ibm3r$ZCQ&CIqeIC+CVqZfF;+_5#^GgC}D zi#vJ^4q?r)mhPG5`r*T7<&DoistsWin+Vv4_~VT=OShKR&?jc$D5it`^a5{NgH|$Z zOIa8673|ay#(^`!CPCw)KN_18b>~&$ZEnuU7Ti%EAHma;b~ z1KxY#EKgN5`ZEcNf+u@|8Dnno4YPTeB4tj_U113~JM-$DcO1&{&+BAlM9qxj*aZ{+ zB#1R^UKsh|8~jn1Ry(&vL9lk@Rm$RvAq3b_5DYO0tNh!s==o}sN;*BVg)SoNM794# z$D*l)BNRkin_8%q1sM4x%qO56$f0unGDn@ zi%;vaKQKR}xNL8}jmG@VIDQ--#ymg6z^gQfV9v-fL<*Ff>Qr`5)uiMc-pOy-7z5+GJ{eL1P*sN1Yn*oRvP>Sa z3TB2AIlMFbz>$(8pREhZZZ-xBXTHD+-`V;ScMMhF?I0OSFxoErh$3*FA>4z?Wbcn3 z);1e@(?1;CztjhuP^VK3Z6bJ^_BpKF%%6{be@`a}9ORsSSg|Eo=`E&P9Pu8`>VTCo zsuTEI!Z4PM;GHSREeFi1yK3@4jK_{qEOm-ulZwfa$qzmIh(!G<_9LpoiGl(v&pmYK0Hjkn3OlXZU&uvQB$=CO zBJ{L(^?On#(8I;&)`mK%`z2tenOZJxtdF#w^BbI9@#ea)?gX5~CH-?%%xSs&vKOeNa{Md>3Q;CHqzee{dEyDet+x_%%=O=P z^h1eoeH(To=`?$T;g9eRaQbTkkRqQCYRa|sia|+&aU#nBTTG=kf2Jf%TZyrJr9fUi z161hPU7gmr1+;*Ee7e|;tkkBzYbvy@f%iR^65bXxGCdhyqqmecoaMS$#7fpxJuHPT8^@ zJH3~{&X8je9VeLyJ0C6GnVXXU0v3JoH}YyJaJ-x*e@*?5iRC@mlt+s1m>j<{y(ub9 zU^TKUetX(SZB2&_TM1K?j2p~K@nF9UXVH?tZNt^y}h*-wwi%66}t9c8HDbM zybXln4=ZQvU0KjU^%Z#5&1(lDt+PA=&%1yEoAK*F(rek2IfD(>DnL*puxg1L9tL)k zGxlS08u3x8Zc>(!M2Cjc^#q0a#l13(ABbNFQj2w)o-zK=NMxjjL#{Ue-pkhuOqs31C8Sw;%H z@AD!l;zgXAdZFZW5D7u&rvXikz0N7|)H)+sk%C}pz&+0Wr1f9^&YV%+?R%{JCZ?>L zWUVS&GqR;`)~%ek{?~rlDxziE4}3qn*AJ(CXKlaL{yfN~?I@s1_aFuJG4zgBM}}A0 zv+d5Kod}hx`Dv>0S1PPn7Zog^n($}H_|pIkO3jX?X`Z^K*%l{$>DkOMRD82Z)%kr> zQ7XPvDO+Rp>EwH-VudIy;Xti?6fq}iNO9@PS#+k?e$=b0x%oZ~E=jI6$Ut_*{AO@s z?oH5zuTYBUlV6Knx0epNnLooIT!R*J1!{S^Pbu0u$TSe9-0z2c7b(30e>9-G~71*-J@22pEihvfL@F0*` zee#Lde|y(iUVXg6{!HVumLbCD0Xy8tvIi+Dfu+e$ofANXVanl2cDSqOTIA*y;>tVr zejg`kRSu0EEK*z+zt_RvRi&8r&+Vr-+r>^bXz#o+h4vo&c|<8HS7hpmcnNjJU!g^^ zA?5L#o6c%MCd1~a0L6z^`L_~U97D>pb(`TazW)k+uZpal?PgaL_}0cAuoKnlTlsM6 zbbZr^7ghIfb3tEJ$6ngXr5Oeay<><|$gVoXmi+<4U)F^0f14HhlB0`K-E{4sBh%3h zc1(TPc(%^MWxH0dHJ#^u9_Kj7=K6#l)HkJ3aBF$zxa^138joHJ%>`$z7G^ujDUw%F zck?vbn3#FhRe?b(rlFPMR)uiJZaeJiw;@nC1x|cb3xtF7729+BO4%Ke6B%tNjugTV zE;0`&s(!=>cuj7eD|dFQ?IIhB>G&KsjTq~@?DGHa zP3zU$BLHwlJAm(_)BBZI`w+A!w#G?v=FPr~0q+$H6s-p9@P@q%Mjs9FGyr^gTjq?d zL$b06jGsbuJxYEA>@t+d?9>dv>?WgFRCT5LjKZd~TL<Y|n9AQKTMr{`*;!ghlmfT2n?!prJLx8iuiArICkUPH=wYqPAbt(Scyc&kG8 z=(*U4FDOPVcl`s=ki=DAo|2;nL^EkSlmf{?kxWh+{Pf9EH?W6v7PN2>wjvMI0hZFk z>Bu_o;}^9df~kwtG4_WK!x6ks((MgKl>(8M4T&JF3#=uFC=85^mp!x?TuyF-cwuBo zWkVAZfRz!-2v7oYiOentY1SzFl*j7gFtB02u@BRq5puldYYu+vxXHEb>0(JK@O`)2 z9jqs7V1pfC4Qoha-H zhUy~pVY1zR{2_G4=b@5l%Rh+HUzW6WS$s9NUG^uPGPj0UQTF z-O-{hIHCiv@$;#N#-I`TGhKCpUM$LI2DhOZ2>Bc#5udRpJYYufWWK)&#uCb$EQ?Ir z`*q%OPW#Y%&GZ}k_1en^jO5Y_y2kGTANx(WbdF@|wSWkmmk7ItgG!Na@SJcLWTUiF zcC0L}qqRH-T`|`!+WJ6i5KF+XPGtg_2t%TV*-j9PqxdhIPge29`hSO8%gkvm5UcAQ zm!BRxk}}4&87>kX@L*4h7Rp-xn&089Q!C;3^5|ICx2M6xd9FJAAi`dHE1>5F>CBxb zqG+tuAj4N69N}r@mi_chTLx zJf>raf#EAC@@Fv0mxttg8#K$MY^&z#_u{gV&~>bW_(OD|!u*vu-;6P~su=Tgz2>?) z1TGC$sS60{&Gk?mu2B3FvclFk6o!L?V8fZTt{!@t)VF|^vVmDA?B&$-byGSY0j+m& zrwN9abQ5G4WGvXTa<*E}wI_+%s)3qLzGoUKkROu{Z)Ld-4&h%~8&dLH)a__WmSlBk zA@COcA9TbT@#46ewRl7B(${@%I5xt&uyx?kjP=#wXbh;j<5ERwrccR=;&H> z(}CsP`R*#i2KF4T%bH0&)D4gpj=PyywFs4L-Ubht54sFM*PTKiLdLc;0<$g7pysXb zxmq_)<$u<{FMoOp7WX_n7DPzvRH|^3za&$Y<{VV0lP^8SBOHd8-Dl)P>{uEwjIAe3 z&ksL8lcC%M{b6e<%8b@6CJbaHS9hNa&5>NI?~Y{tG~v2l-=Q2x8!fAwg4{!(2DkCN z`7`&nDqv7a{!}ApH>qQnr zow2?j4O<*}@{J)^qYqXzBCx!Q<}@EQae8{YkbZOpYe)6am^jw5tBUr)7ExS9LqLcW zSW<7~J!U8k4kXU|LwBNZY#DA_9da5w8PXmgRdS@m-{ES!8A~mamwGAG>o_!8%cu7A zQ`};dG)XjJSF^i7*FFpOw1la3Y{l}zF92{LHDn*r>%3Q73?~6`htPi2#(udbv=Ea7O!DMiDkGzgvefdy833J*5wFX37I4*%*zYNq0$ zC6;1MpyH(F^%M11%{A_~i0&Ta;rp!{KW0A~GYZ+C zS8~i>@IDXO>pDsKVMguyx&3BEWv3r3GU&T(kYxN-*)!jUHy0xV*<1e_H}zQw$34it zxfn(xy0qzhiko@@&g4~ipIwDwe!XUSH)iy-{L{M&s=I)X_$xk3ePO8?QL*7_(YKq- zMDsy5o&m4&${K$*tBldijE3K}?t%5i%19i6JKhqL#A*3`Xyc8hZckwp!s{c+odO`T z}$GAkmrIi3Yivt>i~Rk)spG; z%rS6`7+4!6&AVH01<@9Pdjpit%4bU40_*4H6$Ax=d8zHL)rk0&Q^!Vjj#VyL_+Xo| z{_&_YaL)f!R9E51XS#o2Z>^kK`A8Qo4E~i=@mFQvK|@2QQ5?t_Qk!4ns9axioE6C5 zDc49+xjFh!+_Mu?V4)+NTNa&V*k<1eGa0f41X`QlNEyxkg@vUq-b7{9~NBP{41q2#h}o;AT%%ko zo&I}i*yU}<73w9kA_!LFXfb4d(ppn$Ciic7#plW>N(@I9&(a?_*RHHMECmZZQj{~ zY<bpt|ND;V?iow`65+g8LMA%TI4o*$;6b* zX*JIpURCYnO#eI1ny%4b34WV9uW*k)>S76me``}Wp%7Z_;`+E>@Z&_V{UCd{Z{JKX z3#<5;%TIFkjo9~hUjIJh57yPzE&;`Or+cOqdWOy1I7r*(?s#%?F=!>@CUdjLIZpG_ zp9K;JtxR>jw8wmW{!b}S39~;K5zkrYpnogx=kCXSX5UdA6wmsk9aXw2?G+{ zWLQmd&lQ0HOMU7?V$IUmf%IhZSeYpZsj@N=G`QX3rE&%J0k{k9f zAO+a5cV@iQ%#1_U-AW)(S58vS-Y%EEYAdXui|Yzfd5R*|;svMWfV%L)xS`mW{H-P2 zeOJ1Og#(R)niLb59Pzn5ptu9Od5k}|Z&n)zY_p6&Kt}0Xm+@WA)*}#LX;&uDA@#33 zVt>Iu*xqs0Saz>PUlCj#`qY>*T`*GIZU7NEWL{j^Eqh%PWxw8j(o!q4KeU~JxX5}VSGuZ*&wN{bflps-_tdN|7t};6`gxf_o$ael zp7SHO3bW6b!9|u1x`t~*3_@MpIBLW*rsX&@d{8ryp9fUuH9f1bU{KtP0H9!r< zY1fi&9G`7TU)NQY(wU45SgB}9GB&?q@A~%h#B%kMHs3cnhH5`Afvg5o`Ha^Pw3V)m z^{L#ITI8!YIQO0Jz{bWDvia|9Rs5^dkdv$|W|!`J$UZ;Wl``Z~$%j?$y-#g$N`ESdgE+glLyd=vHM&%q8N*{?z<|{ZMF;`5<=kgY5y5_qdsG z)Z!OK@&9&dcP^O^N3f#i-1`l2-Tkf{nQn|?i;g9bYsgDpfs9OKpH0-G`pLQR({4z7XsZ*2o|&7)>NO0v4F0(1x|<&PbEC8=>qG28#d8g z1Hy-%k-2Zb(lxRQVDrKf*dEjQ)-ajwU`g!INou!k)WBpsM>!H#Z4;HBRd=LgaIRTX z7?}JqdiB#C49u8wcNDaQ}kW!5bS+e?XG5&Tyv3%!cU0!-EbMtAhu10Ay8F#aT@AtSEN<_B8f$h439Qw;K8q!79o%x=J`mD@^1Q9J-}H=uvg3gx2T{;QCHG zKz{ciynuWptH^ji<|H%DAgW3+McCPe!>;(pADI)6b0`@_tsKX$C8p3zRheJP6=f<2 z+~>Tv!e?uCCE#MOim&J6NEdgx zu^;;ekhua;&~vw^3azi-6gDO14u=)JxCraYdsImb0r zogA%rI0B~ysgyX6B9all<1TXU=aCiGwqACh&opIkvzcdQ9^(;RV`b8i7w4`K9z<_0 zJ}proy4YJvDo6e{$k6(Pp&i0mzxr1Dq6W6rNeO$)=JS*_zZEnH6uRw?SAUzVzT2U^ z_4}GN#MBttTj3f0x0W}uX5Pi4hvbuAdzZdn< z)gj;3t*i?dV2Ld&Y5t~romiv!!X`#gNiBK8rhPct|Bt^ON^=n$)O`GzvNYF%dv>QZ ze*0=&N$*kwD~J~ArjdkS^^O5Yz)^!96kUyiKP;ybLW3Yd%;ys<`*_HN=T&`d*W!B|QV*pvXnrLR> zebu@@Y`!DbruPjOGowJ9)%j28I0{XzKfq`?eZNG_ywIh2KxfH7myKGncR8 z@9I_xoV5S|3-Pmty|kEYSm<69?epZ2#+u%ixH)Q&qMh|J z^kJCDw2R0rm)OYdEB5|Dv&!oT46Mb^R=>t4;jc=7ars}RFDiyRC*h&c3eOgTffBIFE3e|Cy}z zMS*&E$?EL{0wP-pFKveOC?4)t*wSe1z3+02oCu!d_O%NM6?dM@$GCC}B2e5nq$==A z8SvD&0p`ba=7Tx!u<)+-5L54FGNtLYCF7k5Qv4Youn5vr^X6A17H(RAp$5bi%jFll zsdoHCQ@s2xmS&D;6BDwJK9CF=eMa$`c6IpKt>h}WfZ*08+C_kgr~hyK=M4o0ZmQMX z?2XX(7<9^MyoP(ZZS0$f)Tw*AqjqvO!ZNT8B!&#xgdOgm~ljBiKxL(?Tez=z&_10B5f)7Sq8JR_Xl diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/user.js b/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/user.js deleted file mode 100644 index 205780ac..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/user.js +++ /dev/null @@ -1,55 +0,0 @@ -import Inula from 'inulajs'; -import PropTypes from 'prop-types'; -import { Button, Avatar } from 'antd'; -import CountUp from 'react-countup'; -import Color from 'utils/theme'; -import styles from './user.module.less'; - -const countUpProps = { - start: 0, - duration: 2.75, - useEasing: true, - useGrouping: true, - separator: ',', -}; - -function User({ avatar, username, sales = 0, sold = 0 }) { - return ( -
    -
    -
    - -
    {username}
    -
    -
    -
    -
    -

    EARNING SALES

    -

    - -

    -
    -
    -

    ITEM SOLD

    -

    - -

    -
    -
    -
    - -
    -
    - ); -} - -User.propTypes = { - avatar: PropTypes.string, - username: PropTypes.string, - sales: PropTypes.number, - sold: PropTypes.number, -}; - -export default User; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/user.module.less b/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/user.module.less deleted file mode 100644 index cfcc51b2..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/pages/dashboard/components/user.module.less +++ /dev/null @@ -1,88 +0,0 @@ -@import '../../../themes/vars'; - -.user { - .header { - display: flex; - justify-content: center; - text-align: center; - color: #fff; - height: 200px; - background-size: cover; - align-items: center; - - .headerinner { - z-index: 2; - } - - &::after { - content: ''; - background-image: url('user-background.png'); - background-size: cover; - position: absolute; - width: 100%; - height: 200px; - left: 0; - top: 0; - opacity: 0.4; - z-index: 1; - } - - .name { - font-size: 16px; - margin-top: 8px; - } - } - - .number { - display: flex; - height: 116px; - justify-content: space-between; - border-bottom: solid 1px #f5f5f5; - - .item { - text-align: center; - height: 116px; - width: 100%; - position: relative; - padding: 30px 0; - - & + .item { - &::before { - content: ''; - display: block; - width: 1px; - height: 116px; - position: absolute; - background: #f5f5f5; - top: 0; - } - } - - p { - color: #757575; - - &:first-child { - font-size: 16px; - } - - &:last-child { - font-size: 20px; - font-weight: 700; - } - } - } - } - - .footer { - height: 116px; - display: flex; - justify-content: center; - align-items: center; - - :global .ant-btn { - color: @purple; - border-color: @purple; - padding: 6px 16px; - } - } -} diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/utils/theme.js b/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/utils/theme.js deleted file mode 100644 index 18b7728c..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/vite/src/admin/utils/theme.js +++ /dev/null @@ -1,29 +0,0 @@ -// module.exports = { -// Color: { -// green: '#64ea91', -// blue: '#8fc9fb', -// purple: '#d897eb', -// red: '#f69899', -// yellow: '#f8c82e', -// peach: '#f797d6', -// borderBase: '#e5e5e5', -// borderSplit: '#f4f4f4', -// grass: '#d6fbb5', -// sky: '#c1e0fc', -// }, -// } - -const Color = { - green: '#64ea91', - blue: '#8fc9fb', - purple: '#d897eb', - red: '#f69899', - yellow: '#f8c82e', - peach: '#f797d6', - borderBase: '#e5e5e5', - borderSplit: '#f4f4f4', - grass: '#d6fbb5', - sky: '#c1e0fc', -}; - -export default Color; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/mock/dashboard.js b/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/mock/dashboard.js deleted file mode 100644 index 5d803437..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/mock/dashboard.js +++ /dev/null @@ -1,131 +0,0 @@ -const { Mock, Constant } = require('./_utils'); - -const { ApiPrefix, Color } = Constant; - -const Dashboard = Mock.mock({ - 'sales|8': [ - { - 'name|+1': 2008, - 'Clothes|200-500': 1, - 'Food|180-400': 1, - 'Electronics|300-550': 1, - }, - ], - cpu: { - 'usage|50-600': 1, - space: 825, - 'cpu|40-90': 1, - 'data|20': [ - { - 'cpu|20-80': 1, - }, - ], - }, - browser: [ - { - name: 'Google Chrome', - percent: 43.3, - status: 1, - }, - { - name: 'Mozilla Firefox', - percent: 33.4, - status: 2, - }, - { - name: 'Apple Safari', - percent: 34.6, - status: 3, - }, - { - name: 'Internet Explorer', - percent: 12.3, - status: 4, - }, - { - name: 'Opera Mini', - percent: 3.3, - status: 1, - }, - { - name: 'Chromium', - percent: 2.53, - status: 1, - }, - ], - user: { - name: 'github', - sales: 3241, - sold: 3556, - }, - 'completed|12': [ - { - 'name|+1': 2008, - 'Task complete|200-1000': 1, - 'Cards Complete|200-1000': 1, - }, - ], - 'comments|5': [ - { - name: '@last', - 'status|1-3': 1, - content: '@sentence', - avatar() { - return Mock.Random.image('48x48', Mock.Random.color(), '#757575', 'png', this.name.substr(0, 1)); - }, - date() { - return `2016-${Mock.Random.date('MM-dd')} ${Mock.Random.time('HH:mm:ss')}`; - }, - }, - ], - 'recentSales|36': [ - { - 'id|+1': 1, - name: '@last', - 'status|1-4': 1, - date() { - return `${Mock.Random.integer(2015, 2016)}-${Mock.Random.date('MM-dd')} ${Mock.Random.time('HH:mm:ss')}`; - }, - 'price|10-200.1-2': 1, - }, - ], - quote: { - name: 'Joho Doe', - title: 'Graphic Designer', - content: - "I'm selfish, impatient and a little insecure. I make mistakes, I am out of control and at times hard to handle. But if you can't handle me at my worst, then you sure as hell don't deserve me at my best.", - avatar: '//cdn.antd-admin.zuiidea.com/bc442cf0cc6f7940dcc567e465048d1a8d634493198c4-sPx5BR_fw236', - }, - numbers: [ - { - icon: 'pay-circle-o', - color: Color.green, - title: 'Online Review', - number: 2781, - }, - { - icon: 'team', - color: Color.blue, - title: 'New Customers', - number: 3241, - }, - { - icon: 'message', - color: Color.purple, - title: 'Active Projects', - number: 253, - }, - { - icon: 'shopping-cart', - color: Color.red, - title: 'Referrals', - number: 4324, - }, - ], -}); - -module.exports = { - [`get ${ApiPrefix}/dashboard`](req, res) { - res.json(Dashboard); - }, -}; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/public/america.svg b/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/public/america.svg deleted file mode 100644 index 8cab835c..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/public/america.svg +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/public/china.svg b/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/public/china.svg deleted file mode 100644 index 4e3dbbfe..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/public/china.svg +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/public/portugal.svg b/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/public/portugal.svg deleted file mode 100644 index a535e696..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/public/portugal.svg +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Editor/Editor.js b/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Editor/Editor.js deleted file mode 100644 index ffbc043c..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Editor/Editor.js +++ /dev/null @@ -1,17 +0,0 @@ -import Inula from 'inulajs'; -import { Editor } from 'react-draft-wysiwyg'; -import 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css'; -import styles from './Editor.less'; - -const DraftEditor = props => { - return ( - - ); -}; - -export default DraftEditor; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Editor/Editor.less b/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Editor/Editor.less deleted file mode 100644 index 2cea380a..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Editor/Editor.less +++ /dev/null @@ -1,106 +0,0 @@ -.wrapper { - height: 500px; - - :global { - .rdw-dropdownoption-default { - padding: 6px; - } - - .rdw-dropdown-optionwrapper { - box-sizing: content-box; - width: 100%; - border-radius: 0 0 2px 2px; - &:hover { - box-shadow: none; - } - } - - .rdw-inline-wrapper { - flex-wrap: wrap; - margin-bottom: 0; - - .rdw-option-wrapper { - margin-bottom: 6px; - } - } - - .rdw-option-active { - box-shadow: 1px 1px 0 #e8e8e8 inset; - } - - .rdw-colorpicker-option { - box-shadow: none; - } - - .rdw-colorpicker-modal, - .rdw-embedded-modal, - .rdw-emoji-modal, - .rdw-image-modal, - .rdw-link-modal { - box-shadow: 4px 4px 40px rgba(0, 0, 0, 0.05); - } - - .rdw-colorpicker-modal, - .rdw-embedded-modal, - .rdw-link-modal { - height: auto; - } - - .rdw-emoji-modal { - width: 214px; - } - - .rdw-colorpicker-modal { - width: auto; - } - - .rdw-embedded-modal-btn, - .rdw-image-modal-btn, - .rdw-link-modal-btn { - height: 32px; - margin-top: 12px; - } - - .rdw-embedded-modal-input, - .rdw-embedded-modal-size-input, - .rdw-link-modal-input { - padding: 2px 6px; - height: 32px; - } - - .rdw-dropdown-selectedtext { - color: #000; - } - - .rdw-dropdown-wrapper, - .rdw-option-wrapper { - min-width: 36px; - transition: all 0.2s ease; - height: 30px; - - &:active { - box-shadow: 1px 1px 0 #e8e8e8 inset; - } - - &:hover { - box-shadow: 1px 1px 0 #e8e8e8; - } - } - - .rdw-dropdown-wrapper { - min-width: 60px; - } - - .rdw-editor-main { - box-sizing: border-box; - } - } - - .editor { - border: 1px solid #f1f1f1; - padding: 5px; - border-radius: 2px; - height: auto; - min-height: 200px; - } -} diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Editor/package.json b/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Editor/package.json deleted file mode 100644 index 3ea063e3..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Editor/package.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "Editor", - "version": "0.0.0", - "private": true, - "main": "Editor.js" -} diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Layout/Header.js b/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Layout/Header.js deleted file mode 100644 index 7e18a064..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/components/Layout/Header.js +++ /dev/null @@ -1,125 +0,0 @@ -import Inula, { Fragment } from 'inulajs'; -import { Menu, Layout, Avatar, Popover, List } from 'antd'; -import { Ellipsis } from 'components'; -import { RightOutlined, MenuFoldOutlined, MenuUnfoldOutlined } from '@ant-design/icons'; -import { Trans } from 'utils/intl'; -import { getLocale, setLocale } from 'utils'; -import moment from 'moment'; -import classnames from 'classnames'; -import config from 'config'; -import styles from './Header.less'; - -const { SubMenu } = Menu; - -function Header({ - onSignOut, - fixed, - avatar, - username, - collapsed, - notifications, - onCollapseChange, - onAllNotificationsRead, -}) { - const handleClickMenu = e => { - e.key === 'SignOut' && onSignOut(); - }; - - const rightContent = [ - - - - Hi, - - {username} - - - } - > - , - ]; - - if (config.i18n) { - const { languages } = config.i18n; - const language = getLocale(); - const currentLanguage = languages.find(item => item.key === language); - - rightContent.unshift( - { - setLocale(data.key); - }} - mode="horizontal" - > - }> - {languages.map(item => ( - - - {item.title} - - ))} - - - ); - } - - rightContent.unshift( - document.querySelector('#primaryLayout')} - content={ -
    - You have viewed all notifications., - }} - renderItem={item => ( - - - {item.title} - - } - description={moment(item.date).fromNow()} - /> - - - )} - /> - {notifications.length ? ( -
    - Clear notifications -
    - ) : null} -
    - } - >
    - ); - - return ( - -
    - {collapsed ? : } -
    -
    {rightContent}
    -
    - ); -} - -export default Header; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/browser.js b/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/browser.js deleted file mode 100644 index 229bb159..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/browser.js +++ /dev/null @@ -1,43 +0,0 @@ -import Inula from 'inulajs'; -import PropTypes from 'prop-types'; -import { Table, Tag } from 'antd'; -import { Color } from 'utils'; -import styles from './browser.less'; - -const status = { - 1: { - color: Color.green, - }, - 2: { - color: Color.red, - }, - 3: { - color: Color.blue, - }, - 4: { - color: Color.yellow, - }, -}; - -function Browser({ data }) { - const columns = [ - { - title: 'name', - dataIndex: 'name', - className: styles.name, - }, - { - title: 'percent', - dataIndex: 'percent', - className: styles.percent, - render: (text, it) => {text}%, - }, - ]; - return
    ; -} - -Browser.propTypes = { - data: PropTypes.array, -}; - -export default Browser; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/browser.less b/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/browser.less deleted file mode 100644 index 631ad64f..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/browser.less +++ /dev/null @@ -1,7 +0,0 @@ -.percent { - text-align: right !important; -} - -.name { - text-align: left !important; -} diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/comments.js b/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/comments.js deleted file mode 100644 index 05bab8b1..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/comments.js +++ /dev/null @@ -1,63 +0,0 @@ -import Inula from 'inulajs'; -import PropTypes from 'prop-types'; -import { Table, Tag } from 'antd'; -import { Color } from 'utils'; -import styles from './comments.less'; - -const status = { - 1: { - color: Color.green, - text: 'APPROVED', - }, - 2: { - color: Color.yellow, - text: 'PENDING', - }, - 3: { - color: Color.red, - text: 'REJECTED', - }, -}; - -function Comments({ data }) { - const columns = [ - { - title: 'avatar', - dataIndex: 'avatar', - width: 48, - className: styles.avatarcolumn, - render: text => , - }, - { - title: 'content', - dataIndex: 'content', - render: (text, it) => ( -
    -
    {it.name}
    -

    {it.content}

    -
    - {status[it.status].text} - {it.date} -
    -
    - ), - }, - ]; - return ( -
    -
    key < 3)} - /> - - ); -} - -Comments.propTypes = { - data: PropTypes.array, -}; - -export default Comments; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/comments.less b/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/comments.less deleted file mode 100644 index 979d81bd..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/comments.less +++ /dev/null @@ -1,43 +0,0 @@ -@import '~themes/vars'; - -.comments { - :global .ant-table-thead > tr > th { - background: #fff; - border-bottom: solid 1px @border-color-base; - } - - .avatar { - width: 48px; - height: 48px; - background-position: center; - background-size: cover; - border-radius: 50%; - background: #f8f8f8; - display: inline-block; - } - - .content { - text-align: left; - color: #757575; - } - - .date { - color: #a3a3a3; - line-height: 30px; - } - - .daterow { - display: flex; - justify-content: space-between; - } - - .name { - font-size: 14px; - color: #474747; - text-align: left; - } - - .avatarcolumn { - vertical-align: top; - } -} diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/completed.js b/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/completed.js deleted file mode 100644 index 657687ba..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/completed.js +++ /dev/null @@ -1,86 +0,0 @@ -import Inula from 'inulajs'; -import PropTypes from 'prop-types'; -import classnames from 'classnames'; -import { Color } from 'utils'; -import { AreaChart, Area, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer } from 'recharts'; -import styles from './completed.less'; - -function Completed({ data }) { - return ( -
    -
    TEAM TOTAL COMPLETED
    - - - { - const { payload } = prop; - return ( -
      - {payload.map((item, key) => ( -
    • - - {item.value} -
    • - ))} -
    - ); - }} - /> - - - - { - const list = content.payload.map((item, key) => ( -
  • - - {`${item.name}:${item.value}`} -
  • - )); - return ( -
    -

    {content.label}

    - {content.payload &&
      {list}
    } -
    - ); - }} - /> - - -
    -
    -
    - ); -} - -Completed.propTypes = { - data: PropTypes.array, -}; - -export default Completed; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/completed.less b/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/completed.less deleted file mode 100644 index 0ce886f1..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/completed.less +++ /dev/null @@ -1,49 +0,0 @@ -@import '~themes/vars'; - -.sales { - .title { - margin-left: 32px; - font-size: 16px; - } -} - -.radiusdot { - width: 12px; - height: 12px; - margin-right: 8px; - border-radius: 50%; - display: inline-block; -} - -.legend { - text-align: right; - color: #999; - font-size: 14px; - - li { - height: 48px; - line-height: 48px; - display: inline-block; - - & + li { - margin-left: 24px; - } - } -} - -.tooltip { - background: #fff; - padding: 20px; - font-size: 14px; - - .tiptitle { - font-weight: 700; - font-size: 16px; - margin-bottom: 8px; - } - - .tipitem { - height: 32px; - line-height: 32px; - } -} diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/cpu.js b/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/cpu.js deleted file mode 100644 index ccc0378a..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/cpu.js +++ /dev/null @@ -1,58 +0,0 @@ -import Inula from 'inulajs'; -import PropTypes from 'prop-types'; -import { Color } from 'utils'; -import CountUp from 'react-countup'; -import { LineChart, Line, XAxis, YAxis, CartesianGrid, ResponsiveContainer } from 'recharts'; -import styles from './cpu.less'; - -const countUpProps = { - start: 0, - duration: 2.75, - useEasing: true, - useGrouping: true, - separator: ',', -}; - -function Cpu({ usage = 0, space = 0, cpu = 0, data }) { - return ( -
    -
    -
    -

    usage

    -

    - -

    -
    -
    -

    space

    -

    - -

    -
    -
    -

    cpu

    -

    - -

    -
    -
    - - - - - - - - -
    - ); -} - -Cpu.propTypes = { - data: PropTypes.array, - usage: PropTypes.number, - space: PropTypes.number, - cpu: PropTypes.number, -}; - -export default Cpu; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/cpu.less b/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/cpu.less deleted file mode 100644 index d23163b1..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/cpu.less +++ /dev/null @@ -1,40 +0,0 @@ -.cpu { - .number { - display: flex; - height: 64px; - justify-content: space-between; - margin-bottom: 32px; - - .item { - text-align: center; - height: 64px; - width: 100%; - position: relative; - - & + .item { - &::before { - content: ''; - display: block; - width: 1px; - height: 40px; - position: absolute; - background: #f5f5f5; - top: 12px; - } - } - - p { - color: #757575; - - &:first-child { - font-size: 16px; - } - - &:last-child { - font-size: 20px; - font-weight: 700; - } - } - } - } -} diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/index.js b/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/index.js deleted file mode 100644 index f52fc524..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/index.js +++ /dev/null @@ -1,12 +0,0 @@ -import NumberCard from './numberCard'; -import Quote from './quote'; -import Sales from './sales'; -import Weather from './weather'; -import RecentSales from './recentSales'; -import Comments from './comments'; -import Completed from './completed'; -import Browser from './browser'; -import Cpu from './cpu'; -import User from './user'; - -export { NumberCard, Quote, Sales, Weather, RecentSales, Comments, Completed, Browser, Cpu, User }; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/recentSales.js b/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/recentSales.js deleted file mode 100644 index c62bde87..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/recentSales.js +++ /dev/null @@ -1,60 +0,0 @@ -import Inula from 'inulajs'; -import moment from 'moment'; -import PropTypes from 'prop-types'; -import { Table, Tag } from 'antd'; -import { Color } from 'utils'; -import styles from './recentSales.less'; - -const status = { - 1: { - color: Color.green, - text: 'SALE', - }, - 2: { - color: Color.yellow, - text: 'REJECT', - }, - 3: { - color: Color.red, - text: 'TAX', - }, - 4: { - color: Color.blue, - text: 'EXTENDED', - }, -}; - -function RecentSales({ data }) { - const columns = [ - { - title: 'NAME', - dataIndex: 'name', - }, - { - title: 'STATUS', - dataIndex: 'status', - render: text => {status[text].text}, - }, - { - title: 'DATE', - dataIndex: 'date', - render: text => moment(text).format('YYYY-MM-DD'), - }, - { - title: 'PRICE', - dataIndex: 'price', - render: (text, it) => ${text}, - }, - ]; - return ( -
    -
    key < 5)} /> - - ); -} - -RecentSales.propTypes = { - data: PropTypes.array, -}; - -export default RecentSales; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/recentSales.less b/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/recentSales.less deleted file mode 100644 index 7a091476..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/recentSales.less +++ /dev/null @@ -1,8 +0,0 @@ -@import '~themes/vars'; - -.recentsales { - :global .ant-table-thead > tr > th { - background: #fff; - border-bottom: solid 1px @border-color-base; - } -} diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/user-background.png b/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/user-background.png deleted file mode 100644 index 5f99e137361588575fe0ac2dde3a5eae17724e90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51198 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≧K=IIG4<4OR<&-+69qZ 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 diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/user.js b/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/user.js deleted file mode 100644 index dca86705..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/user.js +++ /dev/null @@ -1,55 +0,0 @@ -import Inula from 'inulajs'; -import PropTypes from 'prop-types'; -import { Button, Avatar } from 'antd'; -import CountUp from 'react-countup'; -import { Color } from 'utils'; -import styles from './user.less'; - -const countUpProps = { - start: 0, - duration: 2.75, - useEasing: true, - useGrouping: true, - separator: ',', -}; - -function User({ avatar, username, sales = 0, sold = 0 }) { - return ( -
    -
    -
    - -
    {username}
    -
    -
    -
    -
    -

    EARNING SALES

    -

    - -

    -
    -
    -

    ITEM SOLD

    -

    - -

    -
    -
    -
    - -
    -
    - ); -} - -User.propTypes = { - avatar: PropTypes.string, - username: PropTypes.string, - sales: PropTypes.number, - sold: PropTypes.number, -}; - -export default User; diff --git a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/user.less b/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/user.less deleted file mode 100644 index a6dd51b8..00000000 --- a/packages/create-inula/lib/generators/InulaJS-antd/templates/webpack/src/pages/dashboard/components/user.less +++ /dev/null @@ -1,88 +0,0 @@ -@import '~themes/vars'; - -.user { - .header { - display: flex; - justify-content: center; - text-align: center; - color: #fff; - height: 200px; - background-size: cover; - align-items: center; - - .headerinner { - z-index: 2; - } - - &::after { - content: ''; - background-image: url('user-background.png'); - background-size: cover; - position: absolute; - width: 100%; - height: 200px; - left: 0; - top: 0; - opacity: 0.4; - z-index: 1; - } - - .name { - font-size: 16px; - margin-top: 8px; - } - } - - .number { - display: flex; - height: 116px; - justify-content: space-between; - border-bottom: solid 1px #f5f5f5; - - .item { - text-align: center; - height: 116px; - width: 100%; - position: relative; - padding: 30px 0; - - & + .item { - &::before { - content: ''; - display: block; - width: 1px; - height: 116px; - position: absolute; - background: #f5f5f5; - top: 0; - } - } - - p { - color: #757575; - - &:first-child { - font-size: 16px; - } - - &:last-child { - font-size: 20px; - font-weight: 700; - } - } - } - } - - .footer { - height: 116px; - display: flex; - justify-content: center; - align-items: center; - - :global .ant-btn { - color: @purple; - border-color: @purple; - padding: 6px 16px; - } - } -} diff --git a/packages/create-inula/lib/generators/Simple-app/index.js b/packages/create-inula/lib/generators/Simple-app/index.js index 7510c343..c9d34e92 100644 --- a/packages/create-inula/lib/generators/Simple-app/index.js +++ b/packages/create-inula/lib/generators/Simple-app/index.js @@ -1,5 +1,4 @@ const BasicGenerator = require('../../BasicGenerator'); -const fs = require('fs'); class Generator extends BasicGenerator { prompting() { diff --git a/packages/create-inula/lib/generators/Simple-app/templates/vite/package.json b/packages/create-inula/lib/generators/Simple-app/templates/vite/package.json index 2143aaf9..e1802c19 100644 --- a/packages/create-inula/lib/generators/Simple-app/templates/vite/package.json +++ b/packages/create-inula/lib/generators/Simple-app/templates/vite/package.json @@ -1,5 +1,5 @@ { - "name": "vite", + "name": "horizon-vite-app", "version": "1.0.0", "description": "", "main": "index.js", @@ -11,7 +11,7 @@ "author": "", "license": "ISC", "dependencies": { - "inulajs": "^0.0.8" + "@cloudsop/horizon": "^0.0.58" }, "devDependencies": { "@babel/core": "^7.21.4", @@ -20,6 +20,6 @@ "@vitejs/plugin-react": "^3.1.0", "@vitejs/plugin-react-refresh": "^1.3.6", "babel-plugin-import": "^1.13.6", - "vite": "^4.4.9" + "vite": "^4.2.1" } } diff --git a/packages/create-inula/lib/generators/Simple-app/templates/vite/src/index.jsx b/packages/create-inula/lib/generators/Simple-app/templates/vite/src/index.jsx index 62fa6c96..967b82db 100644 --- a/packages/create-inula/lib/generators/Simple-app/templates/vite/src/index.jsx +++ b/packages/create-inula/lib/generators/Simple-app/templates/vite/src/index.jsx @@ -1,4 +1,4 @@ -import Inula from 'inulajs'; +import Inula from '@cloudsop/horizon'; import './index.css'; function App() { @@ -19,9 +19,7 @@ function App() {

    了解更多

    要了解 Inula,查看{' '} - - Inula 文档 - + Inula 官网

    diff --git a/packages/create-inula/lib/generators/Simple-app/templates/vite/vite.config.js b/packages/create-inula/lib/generators/Simple-app/templates/vite/vite.config.js index f267f2a2..3aeed4b2 100644 --- a/packages/create-inula/lib/generators/Simple-app/templates/vite/vite.config.js +++ b/packages/create-inula/lib/generators/Simple-app/templates/vite/vite.config.js @@ -1,9 +1,9 @@ import react from '@vitejs/plugin-react'; let alias = { - react: 'inulajs', // 新增 - 'react-dom': 'inulajs', // 新增 - 'react/jsx-dev-runtime': 'inulajs/jsx-dev-runtime', + react: '@cloudsop/horizon', // 新增 + 'react-dom': '@cloudsop/horizon', // 新增 + 'react/jsx-dev-runtime': '@cloudsop/horizon/jsx-dev-runtime', }; export default { diff --git a/packages/create-inula/lib/generators/Simple-app/templates/webpack/package.json b/packages/create-inula/lib/generators/Simple-app/templates/webpack/package.json index 4af944f9..2b240e77 100644 --- a/packages/create-inula/lib/generators/Simple-app/templates/webpack/package.json +++ b/packages/create-inula/lib/generators/Simple-app/templates/webpack/package.json @@ -1,5 +1,5 @@ { - "name": "inula-init", + "name": "horizon-webpack-app", "version": "1.0.0", "description": "", "main": "index.js", @@ -10,7 +10,7 @@ "author": "", "license": "ISC", "dependencies": { - "inulajs": "^0.0.8" + "@cloudsop/horizon": "^0.0.58" }, "devDependencies": { "@babel/core": "^7.21.4", diff --git a/packages/create-inula/lib/generators/Simple-app/templates/webpack/src/App.js b/packages/create-inula/lib/generators/Simple-app/templates/webpack/src/App.js index 29b7fa48..1d3f6830 100644 --- a/packages/create-inula/lib/generators/Simple-app/templates/webpack/src/App.js +++ b/packages/create-inula/lib/generators/Simple-app/templates/webpack/src/App.js @@ -1,4 +1,4 @@ -import Inula from 'inulajs'; +import Inula from '@cloudsop/horizon'; import './styles.css'; class App extends Inula.Component { @@ -18,12 +18,10 @@ class App extends Inula.Component {

    了解更多

    -

    - 要了解 Inula,查看{' '} - - Inula 文档 - -

    +

    + 要了解 Inula,查看{' '} + Inula 官网 +

    diff --git a/packages/create-inula/lib/generators/Simple-app/templates/webpack/src/index.js b/packages/create-inula/lib/generators/Simple-app/templates/webpack/src/index.js index aa84a3bf..5a5b1787 100644 --- a/packages/create-inula/lib/generators/Simple-app/templates/webpack/src/index.js +++ b/packages/create-inula/lib/generators/Simple-app/templates/webpack/src/index.js @@ -1,4 +1,4 @@ -import Inula from 'inulajs'; +import Inula from '@cloudsop/horizon'; import App from './App'; Inula.render(, document.getElementById('root')); diff --git a/packages/create-inula/lib/generators/Simple-app/templates/webpack/webpack.config.js b/packages/create-inula/lib/generators/Simple-app/templates/webpack/webpack.config.js index 90a3e802..fc122d86 100644 --- a/packages/create-inula/lib/generators/Simple-app/templates/webpack/webpack.config.js +++ b/packages/create-inula/lib/generators/Simple-app/templates/webpack/webpack.config.js @@ -21,7 +21,7 @@ module.exports = { '@babel/preset-react', { runtime: 'automatic', // 新增 - importSource: 'inulajs', // 新增 + importSource: '@cloudsop/horizon', // 新增 }, ], ], @@ -61,6 +61,6 @@ module.exports = { static: path.join(__dirname, 'dist'), compress: true, port: 9000, - open: true + open: true, }, }; diff --git a/packages/create-inula/package.json b/packages/create-inula/package.json index c720a17e..d9991b75 100644 --- a/packages/create-inula/package.json +++ b/packages/create-inula/package.json @@ -1,21 +1,29 @@ { - "name": "create-inula", - "version": "1.0.10", + "name": "@cloudsop/create-horizon", + "version": "1.0.22", "description": "", "main": "index.js", "bin": { "create-inula": "bin/cli.js" }, + "files": [ + "bin", + "lib", + "index.js", + "package.json" + ], "author": "", "license": "ISC", "dependencies": { - "chalk": "^4.1.2", "glob": "^10.3.3", "inquirer": "^8.0.0", - "lodash": "^4.17.21", "mkdirp": "^3.0.1", "yargs-parser": "^21.1.1", "yeoman-environment": "^3.15.0", "yeoman-generator": "^5.8.0" + }, + "devDependencies": { + "chalk": "^4.1.2", + "lodash": "^4.17.21" } } diff --git a/packages/inula-cli/.eslintrc.cjs b/packages/inula-cli/.eslintrc.cjs new file mode 100644 index 00000000..4d26a918 --- /dev/null +++ b/packages/inula-cli/.eslintrc.cjs @@ -0,0 +1,50 @@ +module.exports = { + 'parser': 'babel-eslint', + 'env': { + 'amd': true, + 'es6': true, + 'browser': true, + 'node': false + }, + 'parserOptions': { + 'ecmaVersion': 6, + 'sourceType': 'module', + 'ecmaFeatures': { + 'jsx': true + } + }, + 'ignorePatterns': [ + "src/template" + ], + 'rules': { + 'indent': [ + 'error', + 4, + { + SwitchCase: 1, + flatTernaryExpressions: true + } + ], + 'no-unused-vars': 'off', // 允许变量声明后未使用 + 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', + "no-underscore-dangle": ["off", "always"], // 允许私有变量 _xxx的变量命名方式 + "react/jsx-indent-props": [2, 4], // 验证JSX中的props缩进 + "react/prop-types": 0, // 防止在React组件定义中丢失props验证 + 'react/jsx-indent': [ // 解决react里面的缩进问题 + 'error', + 4 + ], + 'filenames/match-exported': 0, + 'react/jsx-one-expression-per-line': 0, // 关闭一个表达式必须换行设定 + 'react/jsx-filename-extension': [1, { 'extensions': [".js", '.jsx'] }], // 允许在 .js 和 .jsx 文件中使用 jsx + 'consistent-return': 0, + "comma-dangle": [2, "never"], // 组和对象键值对最后一个逗号, never参数:不能带末尾的逗号, always参数:必须带末尾的逗号 + 'react/button-has-type': 0, // button无需强制声明类型 + 'react/no-array-index-key': 0, // 允许使用数组index作为组件的key + 'global-require': 0, // 允许require语句不出现在顶层中 + 'no-nested-ternary': 0, // 允许嵌套三元表达式 + 'no-unused-expressions': 0, // 允许使用未执行的表达式。比如fn是一个函数,允许 fn && fn() + 'no-throw-literal': 0, // 允许throw抛出对象格式 + '@typescript-eslint/member-ordering': 0 // 禁用TypeScript声明规范 + } +} diff --git a/packages/inula-cli/.prettierignore b/packages/inula-cli/.prettierignore new file mode 100644 index 00000000..fee8a6ae --- /dev/null +++ b/packages/inula-cli/.prettierignore @@ -0,0 +1,3 @@ +node_modules/ +webpack/ +public/ diff --git a/packages/inula-cli/.prettierrc.js b/packages/inula-cli/.prettierrc.js new file mode 100644 index 00000000..b30250ac --- /dev/null +++ b/packages/inula-cli/.prettierrc.js @@ -0,0 +1,15 @@ +export default { + printWidth: 120, // 一行120字符数,如果超过会进行换行 + tabWidth: 2, // tab等2个空格 + useTabs: false, // 用空格缩进行 + semi: true, // 行尾使用分号 + singleQuote: true, // 字符串使用单引号 + quoteProps: 'as-needed', // 仅在需要时在对象属性添加引号 + jsxSingleQuote: false, // 在JSX中使用双引号 + trailingComma: 'es5', // 使用尾逗号(对象、数组等) + bracketSpacing: true, // 对象的括号间增加空格 + jsxBracketSameLine: false, // 将多行JSX元素的>放在最后一行的末尾 + arrowParens: 'avoid', // 在唯一的arrow函数参数周围省略括号 + vueIndentScriptAndStyle: false, // 不缩进Vue文件中的