@vxe-ui/core 0.10.1 → 0.10.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/README.en.md +31 -31
  2. package/README.md +31 -31
  3. package/README.zh-TW.md +31 -31
  4. package/es/index.esm.js +4 -2
  5. package/es/language/en-US.js +56 -4
  6. package/es/language/es-ES.js +56 -4
  7. package/es/language/ja-JP.js +56 -4
  8. package/es/language/pt-BR.js +56 -4
  9. package/es/language/zh-CN.js +55 -3
  10. package/es/language/zh-TC.js +56 -4
  11. package/es/src/clipboard.js +17 -3
  12. package/es/src/core.js +15 -5
  13. package/es/src/i18n.js +2 -1
  14. package/es/src/i18nStore.js +3 -2
  15. package/es/src/log.js +1 -1
  16. package/lib/index.common.js +4 -2
  17. package/lib/index.umd.js +116 -33
  18. package/lib/index.umd.min.js +1 -1
  19. package/lib/language/en-US.js +56 -4
  20. package/lib/language/en-US.min.js +1 -1
  21. package/lib/language/en-US.umd.js +56 -4
  22. package/lib/language/es-ES.js +56 -4
  23. package/lib/language/es-ES.min.js +1 -1
  24. package/lib/language/es-ES.umd.js +56 -4
  25. package/lib/language/ja-JP.js +56 -4
  26. package/lib/language/ja-JP.min.js +1 -1
  27. package/lib/language/ja-JP.umd.js +56 -4
  28. package/lib/language/pt-BR.js +56 -4
  29. package/lib/language/pt-BR.min.js +1 -1
  30. package/lib/language/pt-BR.umd.js +56 -4
  31. package/lib/language/zh-CN.js +55 -3
  32. package/lib/language/zh-CN.min.js +1 -1
  33. package/lib/language/zh-CN.umd.js +55 -3
  34. package/lib/language/zh-HK.js +1 -1
  35. package/lib/language/zh-HK.min.js +1 -1
  36. package/lib/language/zh-HK.umd.js +56 -4
  37. package/lib/language/zh-MO.js +1 -1
  38. package/lib/language/zh-MO.min.js +1 -1
  39. package/lib/language/zh-MO.umd.js +56 -4
  40. package/lib/language/zh-TC.js +56 -4
  41. package/lib/language/zh-TC.min.js +1 -1
  42. package/lib/language/zh-TC.umd.js +56 -4
  43. package/lib/language/zh-TW.js +1 -1
  44. package/lib/language/zh-TW.min.js +1 -1
  45. package/lib/language/zh-TW.umd.js +56 -4
  46. package/lib/src/clipboard.js +18 -3
  47. package/lib/src/clipboard.min.js +1 -1
  48. package/lib/src/commands.js +1 -1
  49. package/lib/src/core.js +18 -6
  50. package/lib/src/core.min.js +1 -1
  51. package/lib/src/event.js +1 -1
  52. package/lib/src/formats.js +1 -1
  53. package/lib/src/hooks.js +1 -1
  54. package/lib/src/i18n.js +6 -2
  55. package/lib/src/i18n.min.js +1 -1
  56. package/lib/src/i18nStore.js +3 -2
  57. package/lib/src/i18nStore.min.js +1 -1
  58. package/lib/src/interceptor.js +1 -1
  59. package/lib/src/log.js +1 -1
  60. package/lib/src/log.min.js +1 -1
  61. package/lib/src/menus.js +1 -1
  62. package/lib/src/renderer.js +1 -1
  63. package/lib/src/resize.js +1 -1
  64. package/lib/src/store.js +1 -1
  65. package/lib/src/validators.js +1 -1
  66. package/package.json +76 -75
  67. package/packages/index.ts +4 -2
  68. package/packages/language/en-US.ts +56 -4
  69. package/packages/language/es-ES.ts +56 -4
  70. package/packages/language/ja-JP.ts +56 -4
  71. package/packages/language/pt-BR.ts +56 -4
  72. package/packages/language/zh-CN.ts +55 -3
  73. package/packages/language/zh-TC.ts +56 -4
  74. package/packages/src/clipboard.ts +18 -3
  75. package/packages/src/core.ts +17 -5
  76. package/packages/src/i18n.ts +2 -1
  77. package/packages/src/i18nStore.ts +4 -2
  78. package/types/core/clipboard.d.ts +8 -1
  79. package/types/core/global-config.d.ts +14 -1
  80. package/types/core/index.d.ts +15 -1
@@ -266,16 +266,68 @@ export default {
266
266
  }
267
267
  },
268
268
  formDesign: {
269
+ widgetPropTab: 'Field property',
270
+ widgetFormTab: 'Form property',
271
+ styleSetting: {
272
+ btn: 'Style setting',
273
+ title: 'Form style setting',
274
+ layoutTitle: 'Field layout',
275
+ verticalLayout: 'Vertical layout',
276
+ horizontalLayout: 'Horizontal layout',
277
+ styleTitle: 'Title style',
278
+ boldTitle: 'Bold title',
279
+ fontBold: 'Bold',
280
+ fontNormal: 'Normal',
281
+ colonTitle: 'Display colon',
282
+ colonVisible: 'Visible',
283
+ colonHidden: 'Hidden',
284
+ alignTitle: 'Title align',
285
+ widthTitle: 'Title width',
286
+ alignLeft: 'Left',
287
+ alignRight: 'Right',
288
+ unitPx: 'Px',
289
+ unitPct: 'Pct'
290
+ },
269
291
  widget: {
270
- baseGroup: 'Base control',
271
- layoutGroup: 'Layout control',
272
- advancedGroup: 'Advanced control',
292
+ group: {
293
+ base: 'Base control',
294
+ layout: 'Layout control',
295
+ advanced: 'Advanced control'
296
+ },
273
297
  copyTitle: 'Copy_{0}',
274
298
  component: {
275
299
  input: 'Input',
276
300
  textarea: 'Textarea',
277
301
  select: 'Select',
278
- row: 'One-row multi-column'
302
+ row: 'Row/column'
303
+ }
304
+ },
305
+ widgetProp: {
306
+ name: 'Field name',
307
+ placeholder: 'Field placeholder',
308
+ required: 'Required',
309
+ displaySetting: {
310
+ name: 'Display setting',
311
+ pc: 'PC',
312
+ mobile: 'Mobile',
313
+ visible: 'Visible',
314
+ hidden: 'Hidden'
315
+ },
316
+ dataSource: {
317
+ name: 'Data source',
318
+ defValue: 'Option {0}',
319
+ addOption: 'Add option',
320
+ batchEditOption: 'Batch edit',
321
+ batchEditTip: 'Each row corresponds to an option. If grouped, the sub items can start with spaces or tab keys and can be copied from Excel or WPS.',
322
+ buildOption: 'Build option'
323
+ },
324
+ rowProp: {
325
+ colSize: 'Number of columns',
326
+ col2: 'Two columns',
327
+ col3: 'Three columns',
328
+ col4: 'Four columns',
329
+ col6: 'Six columns',
330
+ layout: 'Layout'
279
331
  }
280
332
  }
281
333
  },
@@ -266,16 +266,68 @@ export default {
266
266
  }
267
267
  },
268
268
  formDesign: {
269
+ widgetPropTab: 'Field property',
270
+ widgetFormTab: 'Form property',
271
+ styleSetting: {
272
+ btn: 'Style setting',
273
+ title: 'Form style setting',
274
+ layoutTitle: 'Field layout',
275
+ verticalLayout: 'Vertical layout',
276
+ horizontalLayout: 'Horizontal layout',
277
+ styleTitle: 'Title style',
278
+ boldTitle: 'Bold title',
279
+ fontBold: 'Bold',
280
+ fontNormal: 'Normal',
281
+ colonTitle: 'Display colon',
282
+ colonVisible: 'Visible',
283
+ colonHidden: 'Hidden',
284
+ alignTitle: 'Title align',
285
+ widthTitle: 'Title width',
286
+ alignLeft: 'Left',
287
+ alignRight: 'Right',
288
+ unitPx: 'Px',
289
+ unitPct: 'Pct'
290
+ },
269
291
  widget: {
270
- baseGroup: 'Base control',
271
- layoutGroup: 'Layout control',
272
- advancedGroup: 'Advanced control',
292
+ group: {
293
+ base: 'Base control',
294
+ layout: 'Layout control',
295
+ advanced: 'Advanced control'
296
+ },
273
297
  copyTitle: 'Copy_{0}',
274
298
  component: {
275
299
  input: 'Input',
276
300
  textarea: 'Textarea',
277
301
  select: 'Select',
278
- row: 'One-row multi-column'
302
+ row: 'Row/column'
303
+ }
304
+ },
305
+ widgetProp: {
306
+ name: 'Field name',
307
+ placeholder: 'Field placeholder',
308
+ required: 'Required',
309
+ displaySetting: {
310
+ name: 'Display setting',
311
+ pc: 'PC',
312
+ mobile: 'Mobile',
313
+ visible: 'Visible',
314
+ hidden: 'Hidden'
315
+ },
316
+ dataSource: {
317
+ name: 'Data source',
318
+ defValue: 'Option {0}',
319
+ addOption: 'Add option',
320
+ batchEditOption: 'Batch edit',
321
+ batchEditTip: 'Each row corresponds to an option. If grouped, the sub items can start with spaces or tab keys and can be copied from Excel or WPS.',
322
+ buildOption: 'Build option'
323
+ },
324
+ rowProp: {
325
+ colSize: 'Number of columns',
326
+ col2: 'Two columns',
327
+ col3: 'Three columns',
328
+ col4: 'Four columns',
329
+ col6: 'Six columns',
330
+ layout: 'Layout'
279
331
  }
280
332
  }
281
333
  },
@@ -266,10 +266,34 @@ export default {
266
266
  }
267
267
  },
268
268
  formDesign: {
269
+ widgetPropTab: '控件属性',
270
+ widgetFormTab: '表单属性',
271
+ styleSetting: {
272
+ btn: '样式设置',
273
+ title: '表单的样式设置',
274
+ layoutTitle: '控件布局',
275
+ verticalLayout: '上下布局',
276
+ horizontalLayout: '横向布局',
277
+ styleTitle: '标题样式',
278
+ boldTitle: '标题加粗',
279
+ fontBold: '加粗',
280
+ fontNormal: '常规',
281
+ colonTitle: '显示冒号',
282
+ colonVisible: '显示',
283
+ colonHidden: '隐藏',
284
+ alignTitle: '对齐方式',
285
+ widthTitle: '标题宽度',
286
+ alignLeft: '居左',
287
+ alignRight: '居右',
288
+ unitPx: '像素',
289
+ unitPct: '百分比'
290
+ },
269
291
  widget: {
270
- baseGroup: '基础控件',
271
- layoutGroup: '布局控件',
272
- advancedGroup: '高级控件',
292
+ group: {
293
+ base: '基础控件',
294
+ layout: '布局控件',
295
+ advanced: '高级控件'
296
+ },
273
297
  copyTitle: '副本_{0}',
274
298
  component: {
275
299
  input: '输入框',
@@ -277,6 +301,34 @@ export default {
277
301
  select: '下拉框',
278
302
  row: '一行多列'
279
303
  }
304
+ },
305
+ widgetProp: {
306
+ name: '控件名称',
307
+ placeholder: '控件提示',
308
+ required: '必填校验',
309
+ displaySetting: {
310
+ name: '显示设置',
311
+ pc: '电脑端',
312
+ mobile: '手机端',
313
+ visible: '显示',
314
+ hidden: '隐藏'
315
+ },
316
+ dataSource: {
317
+ name: '数据源',
318
+ defValue: '选项{0}',
319
+ addOption: '添加选项',
320
+ batchEditOption: '批量编辑',
321
+ batchEditTip: '每行对应一个选项,如果是分组,子项可以是空格或制表键开头,可从 Excel 或 WPS 中复制。',
322
+ buildOption: '生成选项'
323
+ },
324
+ rowProp: {
325
+ colSize: '列数',
326
+ col2: '两列',
327
+ col3: '三列',
328
+ col4: '四列',
329
+ col6: '六列',
330
+ layout: '布局'
331
+ }
280
332
  }
281
333
  },
282
334
 
@@ -266,17 +266,69 @@ export default {
266
266
  }
267
267
  },
268
268
  formDesign: {
269
+ widgetPropTab: '控件属性',
270
+ widgetFormTab: '表单属性',
271
+ styleSetting: {
272
+ btn: '样式设置',
273
+ title: '表单的样式设置',
274
+ layoutTitle: '控件布局',
275
+ verticalLayout: '上下布局',
276
+ horizontalLayout: '横向布局',
277
+ styleTitle: '标题样式',
278
+ boldTitle: '标题加粗',
279
+ fontBold: '加粗',
280
+ fontNormal: '常规',
281
+ colonTitle: '显示冒号',
282
+ colonVisible: '显示',
283
+ colonHidden: '隐藏',
284
+ alignTitle: '对齐方式',
285
+ widthTitle: '标题宽度',
286
+ alignLeft: '居左',
287
+ alignRight: '居右',
288
+ unitPx: '像素',
289
+ unitPct: '百分比'
290
+ },
269
291
  widget: {
270
- baseGroup: '基礎控件',
271
- layoutGroup: '佈局控件',
272
- advancedGroup: '高級控件',
292
+ group: {
293
+ base: '基础控件',
294
+ layout: '布局控件',
295
+ advanced: '高级控件'
296
+ },
273
297
  copyTitle: '副本_{0}',
274
298
  component: {
275
- input: '輸入框',
299
+ input: '输入框',
276
300
  textarea: '文本域',
277
301
  select: '下拉框',
278
302
  row: '一行多列'
279
303
  }
304
+ },
305
+ widgetProp: {
306
+ name: '控件名称',
307
+ placeholder: '控件提示',
308
+ required: '必填校验',
309
+ displaySetting: {
310
+ name: '显示设置',
311
+ pc: '电脑端',
312
+ mobile: '手机端',
313
+ visible: '显示',
314
+ hidden: '隐藏'
315
+ },
316
+ dataSource: {
317
+ name: '数据源',
318
+ defValue: '选项{0}',
319
+ addOption: '添加选项',
320
+ batchEditOption: '批量编辑',
321
+ batchEditTip: '每行对应一个选项,如果是分组,子项可以是空格或制表键开头,可从 Excel 或 WPS 中复制。',
322
+ buildOption: '生成选项'
323
+ },
324
+ rowProp: {
325
+ colSize: '列数',
326
+ col2: '两列',
327
+ col3: '三列',
328
+ col4: '四列',
329
+ col6: '六列',
330
+ layout: '布局'
331
+ }
280
332
  }
281
333
  },
282
334
 
@@ -1,8 +1,14 @@
1
+ import XEUtils from 'xe-utils'
2
+
1
3
  import { VxeGlobalClipboard } from '../../types'
2
4
 
3
5
  let copyElem: HTMLTextAreaElement
6
+ const clipStore = {
7
+ text: '',
8
+ html: ''
9
+ }
4
10
 
5
- function handleText (content: string | number) {
11
+ function handleText (text: string) {
6
12
  if (!copyElem) {
7
13
  copyElem = document.createElement('textarea')
8
14
  copyElem.id = '$VxeCopy'
@@ -15,10 +21,16 @@ function handleText (content: string | number) {
15
21
  styles.top = '-500px'
16
22
  document.body.appendChild(copyElem)
17
23
  }
18
- copyElem.value = content === null || content === undefined ? '' : ('' + content)
24
+ copyElem.value = text
19
25
  }
20
26
 
21
27
  export const clipboard: VxeGlobalClipboard = {
28
+ getStore () {
29
+ return clipStore
30
+ },
31
+ setStore (data) {
32
+ Object.assign(clipStore, data || {})
33
+ },
22
34
  /**
23
35
  * 复制内容到剪贴板
24
36
  *
@@ -27,11 +39,14 @@ export const clipboard: VxeGlobalClipboard = {
27
39
  copy (content: string | number) {
28
40
  let result = false
29
41
  try {
30
- handleText(content)
42
+ const text = XEUtils.toValueString(content)
43
+ handleText(text)
31
44
  copyElem.select()
32
45
  copyElem.setSelectionRange(0, copyElem.value.length)
33
46
  result = document.execCommand('copy')
34
47
  copyElem.blur()
48
+ clipStore.text = text
49
+ clipStore.html = ''
35
50
  } catch (e) {}
36
51
  return result
37
52
  }
@@ -17,7 +17,7 @@ import { clipboard } from './clipboard'
17
17
  import { log } from './log'
18
18
  import { hooks } from './hooks'
19
19
 
20
- import { VxeUIExport, VxeGlobalConfig, VxeGlobalThemeName, VxeGlobalIcon, VxeGlobalI18nLocale } from '../../types'
20
+ import { VxeUIExport, VxeGlobalConfig, VxeGlobalThemeName, VxeGlobalIcon, VxeUIPluginObject, VxeGlobalI18nLocale } from '../../types'
21
21
 
22
22
  export function setTheme (name?: VxeGlobalThemeName) {
23
23
  const theme = !name || name === 'default' ? 'light' : name
@@ -36,13 +36,12 @@ export function getTheme () {
36
36
  }
37
37
 
38
38
  export function setLanguage (locale: VxeGlobalI18nLocale) {
39
- i18nConfigStore.language = locale
39
+ i18nConfigStore.language = locale || 'zh-CN'
40
40
  return VxeUI
41
41
  }
42
42
 
43
43
  export function setI18n (locale: VxeGlobalI18nLocale, data: Record<string, any>) {
44
- i18nConfigStore.language = locale
45
- i18nConfigStore.langMaps[i18nConfigStore.language] = data || {}
44
+ i18nConfigStore.langMaps[locale] = Object.assign({}, data)
46
45
  return VxeUI
47
46
  }
48
47
 
@@ -79,6 +78,18 @@ export function getIcon (key: keyof VxeGlobalIcon) {
79
78
 
80
79
  export const coreVersion = process.env.VUE_APP_VXE_VERSION as string
81
80
 
81
+ const installedPlugins: VxeUIPluginObject[] = []
82
+
83
+ export function use (Plugin: VxeUIPluginObject, options: any[]) {
84
+ if (Plugin && Plugin.install) {
85
+ if (installedPlugins.indexOf(Plugin) === -1) {
86
+ Plugin.install(VxeUI, options)
87
+ installedPlugins.push(Plugin)
88
+ }
89
+ }
90
+ return VxeUI
91
+ }
92
+
82
93
  export const VxeUI: VxeUIExport = {
83
94
  coreVersion,
84
95
 
@@ -103,7 +114,8 @@ export const VxeUI: VxeUIExport = {
103
114
  clipboard,
104
115
  log,
105
116
 
106
- hooks
117
+ hooks,
118
+ use
107
119
  }
108
120
 
109
121
  setTheme()
@@ -2,5 +2,6 @@ import XEUtils from 'xe-utils'
2
2
  import { i18nConfigStore } from './i18nStore'
3
3
 
4
4
  export function getI18n (key: string, args?: any) {
5
- return XEUtils.toFormatString(XEUtils.get(i18nConfigStore.langMaps[i18nConfigStore.language], key), args)
5
+ const { langMaps, language } = i18nConfigStore
6
+ return XEUtils.toFormatString(XEUtils.get(langMaps[language], key, key), args)
6
7
  }
@@ -1,9 +1,11 @@
1
+ import { reactive } from 'vue'
2
+
1
3
  import { VxeGlobalI18nLocale } from '../../types'
2
4
 
3
5
  export const i18nConfigStore: {
4
6
  language: VxeGlobalI18nLocale,
5
7
  langMaps: Partial<Record<VxeGlobalI18nLocale, any>>
6
- } = {
8
+ } = reactive({
7
9
  language: '',
8
10
  langMaps: {}
9
- }
11
+ })
@@ -1,6 +1,13 @@
1
+ export interface VxeGlobalClipboardCopyObj {
2
+ text: string
3
+ html: string
4
+ }
5
+
1
6
  /**
2
7
  * 全局剪贴板
3
8
  */
4
9
  export interface VxeGlobalClipboard {
5
- copy(content: string | number): boolean
10
+ getStore(): VxeGlobalClipboardCopyObj
11
+ setStore(data: VxeGlobalClipboardCopyObj): void
12
+ copy(content: string | number | VxeGlobalClipboardCopyObj): boolean
6
13
  }
@@ -5,9 +5,22 @@ import { VxeComponentSizeType } from '../tool'
5
5
  */
6
6
  export interface VxeGlobalConfig {
7
7
  /**
8
- * 企业版的授权 ID
8
+ * 企业版 - 设置授权 ID
9
9
  */
10
10
  authId?: string
11
+ /**
12
+ * 企业版 - 是否在控制台打印授权信息
13
+ */
14
+ showAuthLog?: boolean
15
+ /**
16
+ * 企业版 - 授权状态监听
17
+ */
18
+ onAuth?(params: {
19
+ status: boolean
20
+ code: number
21
+ msg: string
22
+ }): void
23
+
11
24
  /**
12
25
  * 全局默认 z-index
13
26
  */
@@ -56,6 +56,13 @@ export const log: VxeGlobalLog
56
56
 
57
57
  export const hooks: VxeGlobalHooks
58
58
 
59
+ export interface VxeUIPluginObject {
60
+ install(vxeui: VxeUIExport, ...options: any[]): void
61
+ [key: string]: any
62
+ }
63
+
64
+ export function use (plugin: VxeUIPluginObject, ...options: any[]): VxeUIExport
65
+
59
66
  export interface VxeUIExport {
60
67
  /**
61
68
  * 版本号
@@ -141,8 +148,15 @@ export interface VxeUIExport {
141
148
  */
142
149
  log: VxeGlobalLog
143
150
 
144
- // 扩展插件
151
+ /**
152
+ * 扩展插件
153
+ */
145
154
  hooks: VxeGlobalHooks
155
+
156
+ /**
157
+ * 安装插件
158
+ */
159
+ use: (plugin: VxeUIPluginObject, ...options: any[]) => VxeUIExport
146
160
  }
147
161
 
148
162
  export const VxeUI: VxeUIExport