From b4342c5ef4f7fb4df649cee2e9033842817e8d61 Mon Sep 17 00:00:00 2001 From: JeremyWuuuuu <15975785+JeremyWuuuuu@users.noreply.github.com> Date: Wed, 25 Aug 2021 16:52:23 +0800 Subject: [PATCH] fix missing folders and umd locale builds and i18n docs for umd builds --- build/build-locale.ts | 41 +++++++++++++++++++ build/components.ts | 3 +- packages/components/head/style/index.ts | 2 - packages/components/header/style/css.ts | 2 + packages/components/header/style/index.ts | 2 + .../components/menu-item-group/style/css.ts | 0 .../components/menu-item-group/style/index.ts | 0 packages/components/menu-item/style/css.ts | 0 packages/components/menu-item/style/index.ts | 0 packages/components/menu/src/menu.ts | 2 - packages/components/menu/src/menuItem.vue | 8 ++-- packages/components/radio-button/style/css.ts | 2 + .../components/radio-button/style/index.ts | 2 + packages/components/radio-group/style/css.ts | 2 + .../components/radio-group/style/index.ts | 2 + packages/components/radio/src/radio-group.vue | 2 +- .../components/{head => step}/style/css.ts | 2 +- packages/components/step/style/index.ts | 2 + packages/components/sub-menu/style/css.ts | 0 packages/components/sub-menu/style/index.ts | 0 .../table/src/table-body/render-helper.ts | 2 +- packages/components/tree/src/tree.vue | 28 ++++++------- scripts/monorepo.sh | 4 ++ website/docs/en-US/i18n.md | 14 +++++++ website/docs/es/i18n.md | 14 +++++++ website/docs/fr-FR/i18n.md | 14 +++++++ website/docs/jp/i18n.md | 14 +++++++ website/docs/zh-CN/i18n.md | 13 ++++++ 28 files changed, 150 insertions(+), 27 deletions(-) create mode 100644 build/build-locale.ts delete mode 100644 packages/components/head/style/index.ts create mode 100644 packages/components/header/style/css.ts create mode 100644 packages/components/header/style/index.ts create mode 100644 packages/components/menu-item-group/style/css.ts create mode 100644 packages/components/menu-item-group/style/index.ts create mode 100644 packages/components/menu-item/style/css.ts create mode 100644 packages/components/menu-item/style/index.ts create mode 100644 packages/components/radio-button/style/css.ts create mode 100644 packages/components/radio-button/style/index.ts create mode 100644 packages/components/radio-group/style/css.ts create mode 100644 packages/components/radio-group/style/index.ts rename packages/components/{head => step}/style/css.ts (51%) create mode 100644 packages/components/step/style/index.ts create mode 100644 packages/components/sub-menu/style/css.ts create mode 100644 packages/components/sub-menu/style/index.ts diff --git a/build/build-locale.ts b/build/build-locale.ts new file mode 100644 index 0000000000..37c5edd3e9 --- /dev/null +++ b/build/build-locale.ts @@ -0,0 +1,41 @@ +/* eslint-disable */ +import fs from 'fs' +import save from 'file-save' +import { resolve, basename } from 'path' +import { buildOutput } from './paths' + +const localePath = resolve(__dirname, '../packages/locale/lang') +const fileList = fs.readdirSync(localePath) + +const transform = function(filename, name, cb) { + require('@babel/core').transformFile(resolve(localePath, filename), { + plugins: [ + '@babel/plugin-transform-modules-umd', + ], + moduleId: name, + }, cb) +} + +fileList + .filter(function(file) { + return /\.ts$/.test(file) + }) + .forEach(function(file) { + const name = basename(file, '.ts') + + transform(file, name, function(err, result) { + if (err) { + console.error(err) + } else { + const code = result.code + const transformedCode = code + .replace('define(\"', 'define(\"element/locale/') + .replace( + /global\.(\S*) = mod.exports/, + 'global.ElementPlus.lang = global.ElementPlus.lang || {};\n global.ElementPlus.lang.$1 = mod.exports.default' + ) + + save(resolve(buildOutput, 'element-plus/dist/locale', `${name}.js`)).write(transformedCode) + } + }) + }) diff --git a/build/components.ts b/build/components.ts index 648c6478f2..0fa94c70f3 100644 --- a/build/components.ts +++ b/build/components.ts @@ -97,8 +97,9 @@ async function buildComponents() { } const cjs = { - format: 'es', + format: 'cjs', file: `${outputDir}/lib/components/${componentName}/index.js`, + exports: 'named', plugins: [ filesize({ reporter, diff --git a/packages/components/head/style/index.ts b/packages/components/head/style/index.ts deleted file mode 100644 index 6686ae2d19..0000000000 --- a/packages/components/head/style/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -import '@element-plus/components/base/style' -import '@element-plus/theme-chalk/src/head.scss' diff --git a/packages/components/header/style/css.ts b/packages/components/header/style/css.ts new file mode 100644 index 0000000000..1f6d64341e --- /dev/null +++ b/packages/components/header/style/css.ts @@ -0,0 +1,2 @@ +import '@element-plus/components/base/style/css' +import '@element-plus/theme-chalk/el-header.css' diff --git a/packages/components/header/style/index.ts b/packages/components/header/style/index.ts new file mode 100644 index 0000000000..b061a773fd --- /dev/null +++ b/packages/components/header/style/index.ts @@ -0,0 +1,2 @@ +import '@element-plus/components/base/style' +import '@element-plus/theme-chalk/src/header.scss' diff --git a/packages/components/menu-item-group/style/css.ts b/packages/components/menu-item-group/style/css.ts new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/components/menu-item-group/style/index.ts b/packages/components/menu-item-group/style/index.ts new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/components/menu-item/style/css.ts b/packages/components/menu-item/style/css.ts new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/components/menu-item/style/index.ts b/packages/components/menu-item/style/index.ts new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/components/menu/src/menu.ts b/packages/components/menu/src/menu.ts index 91fbc43424..3bb53a0cf0 100644 --- a/packages/components/menu/src/menu.ts +++ b/packages/components/menu/src/menu.ts @@ -87,9 +87,7 @@ export interface ISubMenuProps { export interface IMenuItemProps { index: string route: string | Record - popperClass: string disabled: boolean - popperAppendToBody?: boolean } // menuGroup diff --git a/packages/components/menu/src/menuItem.vue b/packages/components/menu/src/menuItem.vue index 5f4f5fef9c..10999edcd4 100644 --- a/packages/components/menu/src/menuItem.vue +++ b/packages/components/menu/src/menuItem.vue @@ -48,26 +48,26 @@ import { getCurrentInstance, } from 'vue' import ElTooltip from '@element-plus/components/tooltip' -import { IMenuItemProps, RootMenuProvider, SubMenuProvider } from './menu' +import { RootMenuProvider, SubMenuProvider } from './menu' import useMenu from './useMenu' export default defineComponent({ name: 'ElMenuItem', - componentName: 'ElMenuItem', + // componentName: 'ElMenuItem', components: { ElTooltip }, props: { index: { + type: String, default: null, - validator: val => typeof val === 'string' || val === null, }, route: [String, Object], disabled: Boolean, }, emits: ['click'], - setup(props: IMenuItemProps, { emit, slots }) { + setup(props, { emit, slots }) { const instance = getCurrentInstance() const rootMenu = inject('rootMenu') const { parentMenu, paddingStyle, indexPath } = useMenu( diff --git a/packages/components/radio-button/style/css.ts b/packages/components/radio-button/style/css.ts new file mode 100644 index 0000000000..49e7cf3510 --- /dev/null +++ b/packages/components/radio-button/style/css.ts @@ -0,0 +1,2 @@ +import '@element-plus/components/base/style/css' +import '@element-plus/theme-chalk/el-radio-button.css' diff --git a/packages/components/radio-button/style/index.ts b/packages/components/radio-button/style/index.ts new file mode 100644 index 0000000000..b508d32db8 --- /dev/null +++ b/packages/components/radio-button/style/index.ts @@ -0,0 +1,2 @@ +import '@element-plus/components/base/style' +import '@element-plus/theme-chalk/el-radio-button.scss' diff --git a/packages/components/radio-group/style/css.ts b/packages/components/radio-group/style/css.ts new file mode 100644 index 0000000000..4ff0601b68 --- /dev/null +++ b/packages/components/radio-group/style/css.ts @@ -0,0 +1,2 @@ +import '@element-plus/components/base/style/css' +import '@element-plus/theme-chalk/el-radio-group.css' diff --git a/packages/components/radio-group/style/index.ts b/packages/components/radio-group/style/index.ts new file mode 100644 index 0000000000..1a01870015 --- /dev/null +++ b/packages/components/radio-group/style/index.ts @@ -0,0 +1,2 @@ +import '@element-plus/components/base/style' +import '@element-plus/theme-chalk/src/radio-group.scss' diff --git a/packages/components/radio/src/radio-group.vue b/packages/components/radio/src/radio-group.vue index 8fc444a7af..674c3155a9 100644 --- a/packages/components/radio/src/radio-group.vue +++ b/packages/components/radio/src/radio-group.vue @@ -81,7 +81,7 @@ export default defineComponent({ ...toRefs(props), radioGroupSize: radioGroupSize, changeEvent: changeEvent, - })) + } as any)) watch(() => props.modelValue, val => { elFormItem.formItemMitt?.emit('el.form.change', [val]) diff --git a/packages/components/head/style/css.ts b/packages/components/step/style/css.ts similarity index 51% rename from packages/components/head/style/css.ts rename to packages/components/step/style/css.ts index 30ec8892bc..3aefa1f2b6 100644 --- a/packages/components/head/style/css.ts +++ b/packages/components/step/style/css.ts @@ -1,2 +1,2 @@ import '@element-plus/components/base/style/css' -import '@element-plus/theme-chalk/el-head.css' +import '@element-plus/theme-chalk/el-step.css' diff --git a/packages/components/step/style/index.ts b/packages/components/step/style/index.ts new file mode 100644 index 0000000000..c7087eb56c --- /dev/null +++ b/packages/components/step/style/index.ts @@ -0,0 +1,2 @@ +import '@element-plus/components/base/style' +import '@element-plus/theme-chalk/el-step.scss' diff --git a/packages/components/sub-menu/style/css.ts b/packages/components/sub-menu/style/css.ts new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/components/sub-menu/style/index.ts b/packages/components/sub-menu/style/index.ts new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/components/table/src/table-body/render-helper.ts b/packages/components/table/src/table-body/render-helper.ts index 8d375f56e3..0602357c9f 100644 --- a/packages/components/table/src/table-body/render-helper.ts +++ b/packages/components/table/src/table-body/render-helper.ts @@ -148,7 +148,7 @@ function useRender(props: Partial>) { h( 'tr', { - key: 'expanded-row__' + tr.key, + key: 'expanded-row__' + (tr.key as string), }, [ h( diff --git a/packages/components/tree/src/tree.vue b/packages/components/tree/src/tree.vue index 85e47deca0..ad5d8e3ef5 100644 --- a/packages/components/tree/src/tree.vue +++ b/packages/components/tree/src/tree.vue @@ -50,7 +50,6 @@ import type { TreeNodeData, TreeKey, TreeData, - RootTreeType, } from './tree.type' export default defineComponent({ @@ -59,6 +58,7 @@ export default defineComponent({ props: { data: { type: Array, + default: () => [], }, emptyText: { type: String, @@ -83,8 +83,8 @@ export default defineComponent({ type: Boolean, default: true, }, - defaultCheckedKeys: Array, - defaultExpandedKeys: Array, + defaultCheckedKeys: Array as PropType, + defaultExpandedKeys: Array as PropType, currentNodeKey: [String, Number] as PropType, renderContent: Function, showCheckbox: { @@ -98,22 +98,20 @@ export default defineComponent({ allowDrag: Function, allowDrop: Function, props: { - type: Object, - default() { - return { - children: 'children', - label: 'label', - disabled: 'disabled', - } - }, + type: Object as PropType, + default: () => ({ + children: 'children', + label: 'label', + disabled: 'disabled', + }), }, lazy: { type: Boolean, default: false, }, highlightCurrent: Boolean, - load: Function, - filterNodeMethod: Function, + load: Function as PropType, + filterNodeMethod: Function as PropType, accordion: Boolean, indent: { type: Number, @@ -136,7 +134,7 @@ export default defineComponent({ 'node-drag-enter', 'node-drag-over', ], - setup(props: TreeComponentProps, ctx) { + setup(props, ctx) { const { t } = useLocaleInject() const store = ref(new TreeStore({ @@ -302,7 +300,7 @@ export default defineComponent({ root, currentNode, instance: getCurrentInstance(), - } as RootTreeType) + } as any) return { // ref diff --git a/scripts/monorepo.sh b/scripts/monorepo.sh index 5232351582..0e5bfb42ce 100644 --- a/scripts/monorepo.sh +++ b/scripts/monorepo.sh @@ -22,6 +22,7 @@ yarn build:hooks yarn build:directives yarn build:tokens yarn build:full-bundle +yarn build:locale-umd rsync -a dist/entry/types/ dist/element-plus/es/ rsync -a dist/entry/types/ dist/element-plus/lib/ @@ -36,9 +37,12 @@ echo "syncing style.js" rsync -a dist/styles/es/ dist/element-plus/es/components/ rsync -a dist/styles/lib/ dist/element-plus/lib/components/ +echo "copying source code" cp -R packages dist/element-plus cp packages/element-plus/package.json dist/element-plus/package.json +echo "copying README" +cp README.md dist/element-plus cd dist/element-plus npm publish --access public diff --git a/website/docs/en-US/i18n.md b/website/docs/en-US/i18n.md index cb312677e1..c884fddcde 100644 --- a/website/docs/en-US/i18n.md +++ b/website/docs/en-US/i18n.md @@ -47,6 +47,20 @@ export default defineComponent({ ``` +## CDN Usage + +If you are using ElementPlus via CDN, then you need to do this, let's again take +unpkg as an example + +```html + +``` + Full documentation refer to: [ConfigProvider](/#/zh-CN/component/config-provider) [Supported Language List](https://github.com/element-plus/element-plus/tree/dev/packages/locale/lang) diff --git a/website/docs/es/i18n.md b/website/docs/es/i18n.md index cb312677e1..c884fddcde 100644 --- a/website/docs/es/i18n.md +++ b/website/docs/es/i18n.md @@ -47,6 +47,20 @@ export default defineComponent({ ``` +## CDN Usage + +If you are using ElementPlus via CDN, then you need to do this, let's again take +unpkg as an example + +```html + +``` + Full documentation refer to: [ConfigProvider](/#/zh-CN/component/config-provider) [Supported Language List](https://github.com/element-plus/element-plus/tree/dev/packages/locale/lang) diff --git a/website/docs/fr-FR/i18n.md b/website/docs/fr-FR/i18n.md index cb312677e1..c884fddcde 100644 --- a/website/docs/fr-FR/i18n.md +++ b/website/docs/fr-FR/i18n.md @@ -47,6 +47,20 @@ export default defineComponent({ ``` +## CDN Usage + +If you are using ElementPlus via CDN, then you need to do this, let's again take +unpkg as an example + +```html + +``` + Full documentation refer to: [ConfigProvider](/#/zh-CN/component/config-provider) [Supported Language List](https://github.com/element-plus/element-plus/tree/dev/packages/locale/lang) diff --git a/website/docs/jp/i18n.md b/website/docs/jp/i18n.md index cb312677e1..c884fddcde 100644 --- a/website/docs/jp/i18n.md +++ b/website/docs/jp/i18n.md @@ -47,6 +47,20 @@ export default defineComponent({ ``` +## CDN Usage + +If you are using ElementPlus via CDN, then you need to do this, let's again take +unpkg as an example + +```html + +``` + Full documentation refer to: [ConfigProvider](/#/zh-CN/component/config-provider) [Supported Language List](https://github.com/element-plus/element-plus/tree/dev/packages/locale/lang) diff --git a/website/docs/zh-CN/i18n.md b/website/docs/zh-CN/i18n.md index 030e509d60..dd914456d0 100644 --- a/website/docs/zh-CN/i18n.md +++ b/website/docs/zh-CN/i18n.md @@ -47,6 +47,19 @@ export default defineComponent({ 详细配置见:[ConfigProvider](/#/zh-CN/component/config-provider) +## CDN 用法 + +如果你是使用 CDN 引入的 ElementPlus,那你将需要这样做,以 unpkg 举例 + +```html + +``` + [支持的语言列表](https://github.com/element-plus/element-plus/tree/dev/packages/locale/lang)