@vxe-ui/core 1.0.12 → 4.0.0

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 (77) hide show
  1. package/LICENSE +21 -21
  2. package/README.en.md +31 -31
  3. package/README.md +31 -31
  4. package/README.zh-TW.md +31 -31
  5. package/es/src/core.js +1 -1
  6. package/es/src/log.js +1 -1
  7. package/es/src/permission.js +36 -14
  8. package/lib/index.umd.js +59 -34
  9. package/lib/index.umd.min.js +1 -1
  10. package/lib/src/clipboard.min.js +1 -1
  11. package/lib/src/commands.min.js +1 -1
  12. package/lib/src/core.js +1 -1
  13. package/lib/src/core.min.js +1 -1
  14. package/lib/src/event.min.js +1 -1
  15. package/lib/src/formats.min.js +1 -1
  16. package/lib/src/globalStore.min.js +1 -1
  17. package/lib/src/hooks.min.js +1 -1
  18. package/lib/src/i18n.min.js +1 -1
  19. package/lib/src/i18nStore.min.js +1 -1
  20. package/lib/src/iconStore.min.js +1 -1
  21. package/lib/src/interceptor.min.js +1 -1
  22. package/lib/src/log.js +1 -1
  23. package/lib/src/log.min.js +1 -1
  24. package/lib/src/menus.min.js +1 -1
  25. package/lib/src/permission.js +37 -15
  26. package/lib/src/permission.min.js +1 -1
  27. package/lib/src/renderer.min.js +1 -1
  28. package/lib/src/resize.min.js +1 -1
  29. package/lib/src/store.min.js +1 -1
  30. package/lib/src/themeStore.min.js +1 -1
  31. package/lib/src/useFns.min.js +1 -1
  32. package/lib/src/validators.min.js +1 -1
  33. package/package.json +78 -78
  34. package/packages/index.ts +4 -4
  35. package/packages/src/clipboard.ts +53 -53
  36. package/packages/src/commands.ts +62 -62
  37. package/packages/src/core.ts +167 -167
  38. package/packages/src/event.ts +113 -113
  39. package/packages/src/formats.ts +62 -62
  40. package/packages/src/globalStore.ts +8 -8
  41. package/packages/src/hooks.ts +5 -5
  42. package/packages/src/i18n.ts +19 -19
  43. package/packages/src/i18nStore.ts +11 -11
  44. package/packages/src/iconStore.ts +3 -3
  45. package/packages/src/interceptor.ts +65 -65
  46. package/packages/src/log.ts +19 -19
  47. package/packages/src/menus.ts +62 -62
  48. package/packages/src/permission.ts +61 -39
  49. package/packages/src/renderer.ts +50 -50
  50. package/packages/src/resize.ts +89 -89
  51. package/packages/src/store.ts +49 -49
  52. package/packages/src/themeStore.ts +7 -7
  53. package/packages/src/useFns.ts +34 -34
  54. package/packages/src/validators.ts +9 -9
  55. package/types/core/clipboard.d.ts +13 -13
  56. package/types/core/commands.d.ts +19 -19
  57. package/types/core/components.d.ts +4 -4
  58. package/types/core/formats.d.ts +19 -19
  59. package/types/core/global-config.d.ts +55 -55
  60. package/types/core/global-event.d.ts +39 -39
  61. package/types/core/global-icon.d.ts +6 -6
  62. package/types/core/global-lang.d.ts +1 -1
  63. package/types/core/global-resize.d.ts +3 -3
  64. package/types/core/global-theme.d.ts +1 -1
  65. package/types/core/hooks.d.ts +14 -14
  66. package/types/core/index.d.ts +224 -224
  67. package/types/core/interceptor.d.ts +22 -22
  68. package/types/core/log.d.ts +8 -8
  69. package/types/core/menus.d.ts +19 -19
  70. package/types/core/permission.d.ts +10 -10
  71. package/types/core/renderer.d.ts +14 -14
  72. package/types/core/useFn.d.ts +27 -27
  73. package/types/core/validators.d.ts +19 -19
  74. package/types/index.d.ts +10 -10
  75. package/types/tool/common.d.ts +99 -99
  76. package/types/tool/index.d.ts +2 -2
  77. package/types/tool/util.d.ts +4 -4
@@ -1,50 +1,50 @@
1
- import XEUtils from 'xe-utils'
2
- import { log } from './log'
3
-
4
- import { VxeGlobalRenderer, VxeGlobalRendererOptions } from '../../types'
5
-
6
- /**
7
- * 内置的组件渲染
8
- */
9
- const renderMap: Record<string, VxeGlobalRendererOptions> = {}
10
-
11
- /**
12
- * 全局渲染器
13
- */
14
- export const renderer: VxeGlobalRenderer = {
15
- mixin (opts) {
16
- XEUtils.each(opts, (options, name) => renderer.add(name, options))
17
- return renderer
18
- },
19
- get (name: string) {
20
- return renderMap[name] || null
21
- },
22
- add (name, options) {
23
- if (name && options) {
24
- const renders: any = renderMap[name]
25
- if (renders) {
26
- // 检测是否覆盖
27
- if (process.env.VUE_APP_VXE_ENV === 'development') {
28
- XEUtils.each(options, (val, key) => {
29
- if (!XEUtils.eqNull(renders[key]) && renders[key] !== val) {
30
- log.warn('vxe.error.coverProp', [`Renderer.${name}`, key])
31
- }
32
- })
33
- }
34
-
35
- Object.assign(renders, options)
36
- } else {
37
- renderMap[name] = options
38
- }
39
- }
40
- return renderer
41
- },
42
- forEach (callback) {
43
- XEUtils.objectEach(renderMap, callback)
44
- return renderer
45
- },
46
- delete (name) {
47
- delete renderMap[name]
48
- return renderer
49
- }
50
- }
1
+ import XEUtils from 'xe-utils'
2
+ import { log } from './log'
3
+
4
+ import { VxeGlobalRenderer, VxeGlobalRendererOptions } from '../../types'
5
+
6
+ /**
7
+ * 内置的组件渲染
8
+ */
9
+ const renderMap: Record<string, VxeGlobalRendererOptions> = {}
10
+
11
+ /**
12
+ * 全局渲染器
13
+ */
14
+ export const renderer: VxeGlobalRenderer = {
15
+ mixin (opts) {
16
+ XEUtils.each(opts, (options, name) => renderer.add(name, options))
17
+ return renderer
18
+ },
19
+ get (name: string) {
20
+ return renderMap[name] || null
21
+ },
22
+ add (name, options) {
23
+ if (name && options) {
24
+ const renders: any = renderMap[name]
25
+ if (renders) {
26
+ // 检测是否覆盖
27
+ if (process.env.VUE_APP_VXE_ENV === 'development') {
28
+ XEUtils.each(options, (val, key) => {
29
+ if (!XEUtils.eqNull(renders[key]) && renders[key] !== val) {
30
+ log.warn('vxe.error.coverProp', [`Renderer.${name}`, key])
31
+ }
32
+ })
33
+ }
34
+
35
+ Object.assign(renders, options)
36
+ } else {
37
+ renderMap[name] = options
38
+ }
39
+ }
40
+ return renderer
41
+ },
42
+ forEach (callback) {
43
+ XEUtils.objectEach(renderMap, callback)
44
+ return renderer
45
+ },
46
+ delete (name) {
47
+ delete renderMap[name]
48
+ return renderer
49
+ }
50
+ }
@@ -1,89 +1,89 @@
1
- import XEUtils from 'xe-utils'
2
- import { globalConfigStore } from './globalStore'
3
-
4
- import { VxeGlobalResize } from '../../types'
5
-
6
- /**
7
- * 监听 resize 事件
8
- * 如果项目中已使用了 resize-observer-polyfill,那么只需要将方法定义全局,该组件就会自动使用
9
- */
10
- let resizeTimeout: any
11
- /* eslint-disable no-use-before-define */
12
- const eventStore: XEResizeObserver[] = []
13
- const defaultInterval = 500
14
-
15
- function eventHandle () {
16
- if (eventStore.length) {
17
- eventStore.forEach((item) => {
18
- item.tarList.forEach((observer) => {
19
- const { target, width, heighe } = observer
20
- const clientWidth = target.clientWidth
21
- const clientHeight = target.clientHeight
22
- const rWidth = clientWidth && width !== clientWidth
23
- const rHeight = clientHeight && heighe !== clientHeight
24
- if (rWidth || rHeight) {
25
- observer.width = clientWidth
26
- observer.heighe = clientHeight
27
- setTimeout(item.callback)
28
- }
29
- })
30
- })
31
- /* eslint-disable @typescript-eslint/no-use-before-define */
32
- eventListener()
33
- }
34
- }
35
-
36
- function eventListener () {
37
- clearTimeout(resizeTimeout)
38
- resizeTimeout = setTimeout(eventHandle, globalConfigStore.resizeInterval || defaultInterval)
39
- }
40
-
41
- class XEResizeObserver {
42
- tarList: {
43
- target: Element;
44
- width: number;
45
- heighe: number;
46
- }[] = []
47
-
48
- callback: (...args: any[]) => void
49
-
50
- constructor (callback: (...args: any[]) => void) {
51
- this.callback = callback
52
- }
53
-
54
- observe (target: Element): void {
55
- if (target) {
56
- const { tarList } = this
57
- if (!tarList.some(observer => observer.target === target)) {
58
- tarList.push({
59
- target,
60
- width: target.clientWidth,
61
- heighe: target.clientHeight
62
- })
63
- }
64
- if (!eventStore.length) {
65
- eventListener()
66
- }
67
- if (!eventStore.some((item) => item === this)) {
68
- eventStore.push(this)
69
- }
70
- }
71
- }
72
-
73
- unobserve (target: Element): void {
74
- XEUtils.remove(eventStore, item => item.tarList.some(observer => observer.target === target))
75
- }
76
-
77
- disconnect (): void {
78
- XEUtils.remove(eventStore, item => item === this)
79
- }
80
- }
81
-
82
- export const globalResize: VxeGlobalResize = {
83
- create (callback: (...args: any[]) => void) {
84
- if (window.ResizeObserver) {
85
- return new window.ResizeObserver(callback)
86
- }
87
- return new XEResizeObserver(callback)
88
- }
89
- }
1
+ import XEUtils from 'xe-utils'
2
+ import { globalConfigStore } from './globalStore'
3
+
4
+ import { VxeGlobalResize } from '../../types'
5
+
6
+ /**
7
+ * 监听 resize 事件
8
+ * 如果项目中已使用了 resize-observer-polyfill,那么只需要将方法定义全局,该组件就会自动使用
9
+ */
10
+ let resizeTimeout: any
11
+ /* eslint-disable no-use-before-define */
12
+ const eventStore: XEResizeObserver[] = []
13
+ const defaultInterval = 500
14
+
15
+ function eventHandle () {
16
+ if (eventStore.length) {
17
+ eventStore.forEach((item) => {
18
+ item.tarList.forEach((observer) => {
19
+ const { target, width, heighe } = observer
20
+ const clientWidth = target.clientWidth
21
+ const clientHeight = target.clientHeight
22
+ const rWidth = clientWidth && width !== clientWidth
23
+ const rHeight = clientHeight && heighe !== clientHeight
24
+ if (rWidth || rHeight) {
25
+ observer.width = clientWidth
26
+ observer.heighe = clientHeight
27
+ setTimeout(item.callback)
28
+ }
29
+ })
30
+ })
31
+ /* eslint-disable @typescript-eslint/no-use-before-define */
32
+ eventListener()
33
+ }
34
+ }
35
+
36
+ function eventListener () {
37
+ clearTimeout(resizeTimeout)
38
+ resizeTimeout = setTimeout(eventHandle, globalConfigStore.resizeInterval || defaultInterval)
39
+ }
40
+
41
+ class XEResizeObserver {
42
+ tarList: {
43
+ target: Element;
44
+ width: number;
45
+ heighe: number;
46
+ }[] = []
47
+
48
+ callback: (...args: any[]) => void
49
+
50
+ constructor (callback: (...args: any[]) => void) {
51
+ this.callback = callback
52
+ }
53
+
54
+ observe (target: Element): void {
55
+ if (target) {
56
+ const { tarList } = this
57
+ if (!tarList.some(observer => observer.target === target)) {
58
+ tarList.push({
59
+ target,
60
+ width: target.clientWidth,
61
+ heighe: target.clientHeight
62
+ })
63
+ }
64
+ if (!eventStore.length) {
65
+ eventListener()
66
+ }
67
+ if (!eventStore.some((item) => item === this)) {
68
+ eventStore.push(this)
69
+ }
70
+ }
71
+ }
72
+
73
+ unobserve (target: Element): void {
74
+ XEUtils.remove(eventStore, item => item.tarList.some(observer => observer.target === target))
75
+ }
76
+
77
+ disconnect (): void {
78
+ XEUtils.remove(eventStore, item => item === this)
79
+ }
80
+ }
81
+
82
+ export const globalResize: VxeGlobalResize = {
83
+ create (callback: (...args: any[]) => void) {
84
+ if (window.ResizeObserver) {
85
+ return new window.ResizeObserver(callback)
86
+ }
87
+ return new XEResizeObserver(callback)
88
+ }
89
+ }
@@ -1,49 +1,49 @@
1
- import { log } from './log'
2
- import XEUtils from 'xe-utils'
3
-
4
- /**
5
- * 创建数据仓库
6
- */
7
- export class Store {
8
- private store: any = {}
9
-
10
- mixin (options: any): Store {
11
- XEUtils.each(options, (item, key) => {
12
- this.add(key, item)
13
- })
14
- return this
15
- }
16
-
17
- has (name: string): boolean {
18
- return !!this.get(name)
19
- }
20
-
21
- get (name: string): any {
22
- return this.store[name]
23
- }
24
-
25
- add (name: string, options: any): Store {
26
- const conf = this.store[name]
27
- // 检测是否覆盖
28
- if (process.env.VUE_APP_VXE_ENV === 'development') {
29
- const confKeys = XEUtils.keys(conf)
30
- XEUtils.each(options, (item, key) => {
31
- if (confKeys.includes(key)) {
32
- log.warn('vxe.error.coverProp', [name, key])
33
- }
34
- })
35
- }
36
- this.store[name] = conf ? XEUtils.merge(conf, options) : options
37
- return this
38
- }
39
-
40
- delete (name: string): void {
41
- delete this.store[name]
42
- }
43
-
44
- forEach (callback: any): void {
45
- XEUtils.objectEach(this.store, callback)
46
- }
47
- }
48
-
49
- export default Store
1
+ import { log } from './log'
2
+ import XEUtils from 'xe-utils'
3
+
4
+ /**
5
+ * 创建数据仓库
6
+ */
7
+ export class Store {
8
+ private store: any = {}
9
+
10
+ mixin (options: any): Store {
11
+ XEUtils.each(options, (item, key) => {
12
+ this.add(key, item)
13
+ })
14
+ return this
15
+ }
16
+
17
+ has (name: string): boolean {
18
+ return !!this.get(name)
19
+ }
20
+
21
+ get (name: string): any {
22
+ return this.store[name]
23
+ }
24
+
25
+ add (name: string, options: any): Store {
26
+ const conf = this.store[name]
27
+ // 检测是否覆盖
28
+ if (process.env.VUE_APP_VXE_ENV === 'development') {
29
+ const confKeys = XEUtils.keys(conf)
30
+ XEUtils.each(options, (item, key) => {
31
+ if (confKeys.includes(key)) {
32
+ log.warn('vxe.error.coverProp', [name, key])
33
+ }
34
+ })
35
+ }
36
+ this.store[name] = conf ? XEUtils.merge(conf, options) : options
37
+ return this
38
+ }
39
+
40
+ delete (name: string): void {
41
+ delete this.store[name]
42
+ }
43
+
44
+ forEach (callback: any): void {
45
+ XEUtils.objectEach(this.store, callback)
46
+ }
47
+ }
48
+
49
+ export default Store
@@ -1,7 +1,7 @@
1
- import { VxeGlobalThemeName } from '../../types'
2
-
3
- export const themeConfigStore: {
4
- theme: VxeGlobalThemeName
5
- } = {
6
- theme: ''
7
- }
1
+ import { VxeGlobalThemeName } from '../../types'
2
+
3
+ export const themeConfigStore: {
4
+ theme: VxeGlobalThemeName
5
+ } = {
6
+ theme: ''
7
+ }
@@ -1,34 +1,34 @@
1
- import { computed, inject, provide, ComputedRef } from 'vue'
2
- import { handleCheckInfo } from './permission'
3
-
4
- import type { VxeComponentSizeType, VxeComponentPermissionCodeType, VxeComponentPermissionMethod } from '../../types'
5
-
6
- export function useSize (props: {
7
- size?: VxeComponentSizeType
8
- }) {
9
- // 组件尺寸上下文
10
- const xeSizeInfo = inject('xeSizeInfo', null as ComputedRef<VxeComponentSizeType> | null)
11
- const computeSize = computed(() => {
12
- return props.size || (xeSizeInfo ? xeSizeInfo.value : null)
13
- })
14
- provide('xeSizeInfo', computeSize)
15
-
16
- return { computeSize }
17
- }
18
-
19
- export function usePermission (props: {
20
- permissionCode?: VxeComponentPermissionCodeType
21
- permissionMethod?: VxeComponentPermissionMethod
22
- }) {
23
- const computePermissionInfo = computed(() => {
24
- return handleCheckInfo(props.permissionCode, props.permissionMethod)
25
- })
26
- return {
27
- computePermissionInfo
28
- }
29
- }
30
-
31
- export const useFns = {
32
- useSize,
33
- usePermission
34
- }
1
+ import { computed, inject, provide, ComputedRef } from 'vue'
2
+ import { handleCheckInfo } from './permission'
3
+
4
+ import type { VxeComponentSizeType, VxeComponentPermissionCodeType, VxeComponentPermissionMethod } from '../../types'
5
+
6
+ export function useSize (props: {
7
+ size?: VxeComponentSizeType
8
+ }) {
9
+ // 组件尺寸上下文
10
+ const xeSizeInfo = inject('xeSizeInfo', null as ComputedRef<VxeComponentSizeType> | null)
11
+ const computeSize = computed(() => {
12
+ return props.size || (xeSizeInfo ? xeSizeInfo.value : null)
13
+ })
14
+ provide('xeSizeInfo', computeSize)
15
+
16
+ return { computeSize }
17
+ }
18
+
19
+ export function usePermission (props: {
20
+ permissionCode?: VxeComponentPermissionCodeType
21
+ permissionMethod?: VxeComponentPermissionMethod
22
+ }) {
23
+ const computePermissionInfo = computed(() => {
24
+ return handleCheckInfo(props.permissionCode, props.permissionMethod)
25
+ })
26
+ return {
27
+ computePermissionInfo
28
+ }
29
+ }
30
+
31
+ export const useFns = {
32
+ useSize,
33
+ usePermission
34
+ }
@@ -1,9 +1,9 @@
1
- import VXEStore from './store'
2
-
3
- import { VxeGlobalValidators } from '../../types'
4
-
5
- export const validators = new VXEStore() as VxeGlobalValidators
6
-
7
- if (process.env.VUE_APP_VXE_ENV === 'development') {
8
- Object.assign(validators, { _name: 'Validators' })
9
- }
1
+ import VXEStore from './store'
2
+
3
+ import { VxeGlobalValidators } from '../../types'
4
+
5
+ export const validators = new VXEStore() as VxeGlobalValidators
6
+
7
+ if (process.env.VUE_APP_VXE_ENV === 'development') {
8
+ Object.assign(validators, { _name: 'Validators' })
9
+ }
@@ -1,13 +1,13 @@
1
- export interface VxeGlobalClipboardCopyObj {
2
- text: string
3
- html: string
4
- }
5
-
6
- /**
7
- * 全局剪贴板
8
- */
9
- export interface VxeGlobalClipboard {
10
- getStore(): VxeGlobalClipboardCopyObj
11
- setStore(data: VxeGlobalClipboardCopyObj): void
12
- copy(content: string | number | VxeGlobalClipboardCopyObj): boolean
13
- }
1
+ export interface VxeGlobalClipboardCopyObj {
2
+ text: string
3
+ html: string
4
+ }
5
+
6
+ /**
7
+ * 全局剪贴板
8
+ */
9
+ export interface VxeGlobalClipboard {
10
+ getStore(): VxeGlobalClipboardCopyObj
11
+ setStore(data: VxeGlobalClipboardCopyObj): void
12
+ copy(content: string | number | VxeGlobalClipboardCopyObj): boolean
13
+ }
@@ -1,19 +1,19 @@
1
- /* eslint-disable no-use-before-define */
2
-
3
- export namespace VxeGlobalCommandsHandles {
4
- export interface CommandsOptions {}
5
- }
6
-
7
- /**
8
- * 全局格式化
9
- */
10
- export interface VxeGlobalCommands {
11
- mixin(opts: {
12
- [name: string]: VxeGlobalCommandsHandles.CommandsOptions | ((params: any, ...args: any[]) => void)
13
- }): VxeGlobalCommands
14
- has(name: string): boolean
15
- get(name: string): VxeGlobalCommandsHandles.CommandsOptions
16
- add(name: string, options: VxeGlobalCommandsHandles.CommandsOptions | ((params: any, ...args: any[]) => void)): VxeGlobalCommands
17
- delete(name: string): void
18
- forEach(callback: (options: VxeGlobalCommandsHandles.CommandsOptions, name: string) => void): void
19
- }
1
+ /* eslint-disable no-use-before-define */
2
+
3
+ export namespace VxeGlobalCommandsHandles {
4
+ export interface CommandsOptions {}
5
+ }
6
+
7
+ /**
8
+ * 全局格式化
9
+ */
10
+ export interface VxeGlobalCommands {
11
+ mixin(opts: {
12
+ [name: string]: VxeGlobalCommandsHandles.CommandsOptions | ((params: any, ...args: any[]) => void)
13
+ }): VxeGlobalCommands
14
+ has(name: string): boolean
15
+ get(name: string): VxeGlobalCommandsHandles.CommandsOptions
16
+ add(name: string, options: VxeGlobalCommandsHandles.CommandsOptions | ((params: any, ...args: any[]) => void)): VxeGlobalCommands
17
+ delete(name: string): void
18
+ forEach(callback: (options: VxeGlobalCommandsHandles.CommandsOptions, name: string) => void): void
19
+ }
@@ -1,4 +1,4 @@
1
- export interface VxeGlobalComponents {}
2
-
3
- export type VxeGlobalComponentMethod = (comp: any) => void
4
- export type VxeGlobalGetComponentMethod = <T = any>(name: keyof VxeGlobalComponents) => T
1
+ export interface VxeGlobalComponents {}
2
+
3
+ export type VxeGlobalComponentMethod = (comp: any) => void
4
+ export type VxeGlobalGetComponentMethod = <T = any>(name: keyof VxeGlobalComponents) => T
@@ -1,19 +1,19 @@
1
- /* eslint-disable no-use-before-define */
2
-
3
- export namespace VxeGlobalFormatsHandles {
4
- export interface FormatsOptions {}
5
- }
6
-
7
- /**
8
- * 全局格式化
9
- */
10
- export interface VxeGlobalFormats {
11
- mixin(opts: {
12
- [name: string]: VxeGlobalFormatsHandles.FormatsOptions | ((params: any, ...args: any[]) => string | number)
13
- }): VxeGlobalFormats
14
- has(name: string): boolean
15
- get(name: string): VxeGlobalFormatsHandles.FormatsOptions
16
- add(name: string, options: VxeGlobalFormatsHandles.FormatsOptions | ((params: any, ...args: any[]) => string | number)): VxeGlobalFormats
17
- delete(name: string): void
18
- forEach(callback: (options: VxeGlobalFormatsHandles.FormatsOptions, name: string) => void): void
19
- }
1
+ /* eslint-disable no-use-before-define */
2
+
3
+ export namespace VxeGlobalFormatsHandles {
4
+ export interface FormatsOptions {}
5
+ }
6
+
7
+ /**
8
+ * 全局格式化
9
+ */
10
+ export interface VxeGlobalFormats {
11
+ mixin(opts: {
12
+ [name: string]: VxeGlobalFormatsHandles.FormatsOptions | ((params: any, ...args: any[]) => string | number)
13
+ }): VxeGlobalFormats
14
+ has(name: string): boolean
15
+ get(name: string): VxeGlobalFormatsHandles.FormatsOptions
16
+ add(name: string, options: VxeGlobalFormatsHandles.FormatsOptions | ((params: any, ...args: any[]) => string | number)): VxeGlobalFormats
17
+ delete(name: string): void
18
+ forEach(callback: (options: VxeGlobalFormatsHandles.FormatsOptions, name: string) => void): void
19
+ }