@vxe-ui/core 1.0.7 → 1.0.9

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 (74) 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 +3 -2
  6. package/es/src/i18n.js +4 -0
  7. package/es/src/log.js +1 -1
  8. package/lib/index.umd.js +27 -22
  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 +2 -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.js +7 -0
  19. package/lib/src/i18n.min.js +1 -1
  20. package/lib/src/i18nStore.min.js +1 -1
  21. package/lib/src/iconStore.min.js +1 -1
  22. package/lib/src/interceptor.min.js +1 -1
  23. package/lib/src/log.js +1 -1
  24. package/lib/src/log.min.js +1 -1
  25. package/lib/src/menus.min.js +1 -1
  26. package/lib/src/renderer.min.js +1 -1
  27. package/lib/src/resize.min.js +1 -1
  28. package/lib/src/store.min.js +1 -1
  29. package/lib/src/themeStore.min.js +1 -1
  30. package/lib/src/useFns.min.js +1 -1
  31. package/lib/src/validators.min.js +1 -1
  32. package/package.json +78 -78
  33. package/packages/index.ts +4 -4
  34. package/packages/src/clipboard.ts +53 -53
  35. package/packages/src/commands.ts +62 -62
  36. package/packages/src/core.ts +164 -163
  37. package/packages/src/event.ts +113 -113
  38. package/packages/src/formats.ts +62 -62
  39. package/packages/src/globalStore.ts +8 -8
  40. package/packages/src/hooks.ts +5 -5
  41. package/packages/src/i18n.ts +19 -14
  42. package/packages/src/i18nStore.ts +11 -11
  43. package/packages/src/iconStore.ts +3 -3
  44. package/packages/src/interceptor.ts +65 -65
  45. package/packages/src/log.ts +19 -19
  46. package/packages/src/menus.ts +62 -62
  47. package/packages/src/renderer.ts +50 -50
  48. package/packages/src/resize.ts +89 -89
  49. package/packages/src/store.ts +49 -49
  50. package/packages/src/themeStore.ts +7 -7
  51. package/packages/src/useFns.ts +18 -18
  52. package/packages/src/validators.ts +9 -9
  53. package/types/core/clipboard.d.ts +13 -13
  54. package/types/core/commands.d.ts +19 -19
  55. package/types/core/components.d.ts +4 -4
  56. package/types/core/formats.d.ts +19 -19
  57. package/types/core/global-config.d.ts +49 -49
  58. package/types/core/global-event.d.ts +39 -39
  59. package/types/core/global-icon.d.ts +6 -6
  60. package/types/core/global-lang.d.ts +1 -1
  61. package/types/core/global-resize.d.ts +3 -3
  62. package/types/core/global-theme.d.ts +1 -1
  63. package/types/core/hooks.d.ts +14 -14
  64. package/types/core/index.d.ts +216 -211
  65. package/types/core/interceptor.d.ts +22 -22
  66. package/types/core/log.d.ts +8 -8
  67. package/types/core/menus.d.ts +19 -19
  68. package/types/core/renderer.d.ts +14 -14
  69. package/types/core/useFn.d.ts +17 -17
  70. package/types/core/validators.d.ts +19 -19
  71. package/types/index.d.ts +10 -10
  72. package/types/tool/common.d.ts +70 -70
  73. package/types/tool/index.d.ts +2 -2
  74. package/types/tool/util.d.ts +4 -4
@@ -1,8 +1,8 @@
1
- import { VxeGlobalConfig } from '../../types'
2
-
3
- export const globalConfigStore: VxeGlobalConfig = {
4
- size: '',
5
- version: 1,
6
- zIndex: 999,
7
- resizeInterval: 500
8
- }
1
+ import { VxeGlobalConfig } from '../../types'
2
+
3
+ export const globalConfigStore: VxeGlobalConfig = {
4
+ size: '',
5
+ version: 1,
6
+ zIndex: 999,
7
+ resizeInterval: 500
8
+ }
@@ -1,5 +1,5 @@
1
- import VXEStore from './store'
2
-
3
- import { VxeGlobalHooks } from '../../types'
4
-
5
- export const hooks = new VXEStore() as VxeGlobalHooks
1
+ import VXEStore from './store'
2
+
3
+ import { VxeGlobalHooks } from '../../types'
4
+
5
+ export const hooks = new VXEStore() as VxeGlobalHooks
@@ -1,14 +1,19 @@
1
- import XEUtils from 'xe-utils'
2
- import { i18nConfigStore } from './i18nStore'
3
-
4
- import { VxeGlobalI18nLocale } from '../../types'
5
-
6
- export function getI18n (key: string, args?: any) {
7
- const { langMaps, language } = i18nConfigStore
8
- return XEUtils.toFormatString(XEUtils.get(langMaps[language], key, key), args)
9
- }
10
-
11
- export function hasLanguage (language: VxeGlobalI18nLocale) {
12
- const { langMaps } = i18nConfigStore
13
- return !!langMaps[language]
14
- }
1
+ import XEUtils from 'xe-utils'
2
+ import { i18nConfigStore } from './i18nStore'
3
+
4
+ import { VxeGlobalI18nLocale } from '../../types'
5
+
6
+ export function getI18n (key: string, args?: any) {
7
+ const { langMaps, language } = i18nConfigStore
8
+ return XEUtils.toFormatString(XEUtils.get(langMaps[language], key, key), args)
9
+ }
10
+
11
+ export function hasLanguage (language: VxeGlobalI18nLocale) {
12
+ const { langMaps } = i18nConfigStore
13
+ return !!langMaps[language]
14
+ }
15
+
16
+ export function getLanguage () {
17
+ const { language } = i18nConfigStore
18
+ return language
19
+ }
@@ -1,11 +1,11 @@
1
- import { reactive } from 'vue'
2
-
3
- import { VxeGlobalI18nLocale } from '../../types'
4
-
5
- export const i18nConfigStore: {
6
- language: VxeGlobalI18nLocale,
7
- langMaps: Partial<Record<VxeGlobalI18nLocale, any>>
8
- } = reactive({
9
- language: '',
10
- langMaps: {}
11
- })
1
+ import { reactive } from 'vue'
2
+
3
+ import { VxeGlobalI18nLocale } from '../../types'
4
+
5
+ export const i18nConfigStore: {
6
+ language: VxeGlobalI18nLocale,
7
+ langMaps: Partial<Record<VxeGlobalI18nLocale, any>>
8
+ } = reactive({
9
+ language: '',
10
+ langMaps: {}
11
+ })
@@ -1,3 +1,3 @@
1
- import { VxeGlobalIcon } from '../../types'
2
-
3
- export const iconConfigStore: VxeGlobalIcon = {}
1
+ import { VxeGlobalIcon } from '../../types'
2
+
3
+ export const iconConfigStore: VxeGlobalIcon = {}
@@ -1,65 +1,65 @@
1
- import XEUtils from 'xe-utils'
2
- import { log } from './log'
3
-
4
- import { VxeGlobalInterceptor, VxeGlobalInterceptorHandles } from '../../types'
5
-
6
- const storeMap: { [type: string]: VxeGlobalInterceptorHandles.InterceptorCallback[] } = {}
7
-
8
- export const interceptor: VxeGlobalInterceptor = {
9
- mixin (options) {
10
- XEUtils.each(options, (render, type) => {
11
- interceptor.add(type, render)
12
- })
13
- return interceptor
14
- },
15
- get (type) {
16
- return storeMap[type] || []
17
- },
18
- add (type, render) {
19
- // 兼容
20
- if (XEUtils.isFunction(render)) {
21
- // if (process.env.VUE_APP_VXE_ENV === 'development') {
22
- // log.warn('vxe.error.delProp', ['interceptor -> callback', 'tableInterceptorMethod'])
23
- // }
24
- render = {
25
- tableInterceptorMethod: render
26
- }
27
- }
28
- const callback = render.tableInterceptorMethod
29
-
30
- if (callback) {
31
- let eList = storeMap[type]
32
- if (!eList) {
33
- eList = storeMap[type] = []
34
- }
35
-
36
- // 检测重复
37
- if (process.env.VUE_APP_VXE_ENV === 'development') {
38
- if (eList.indexOf(callback) > -1) {
39
- log.warn('vxe.error.coverProp', ['Interceptor', type])
40
- }
41
- }
42
-
43
- eList.push(callback)
44
- }
45
- return interceptor
46
- },
47
- delete (type, render) {
48
- const eList = storeMap[type]
49
- if (eList) {
50
- // 兼容
51
- if (XEUtils.isFunction(render)) {
52
- render = {
53
- tableInterceptorMethod: render
54
- }
55
- }
56
- const callback = render ? render.tableInterceptorMethod : null
57
-
58
- if (callback) {
59
- XEUtils.remove(eList, fn => fn === callback)
60
- } else {
61
- delete storeMap[type]
62
- }
63
- }
64
- }
65
- }
1
+ import XEUtils from 'xe-utils'
2
+ import { log } from './log'
3
+
4
+ import { VxeGlobalInterceptor, VxeGlobalInterceptorHandles } from '../../types'
5
+
6
+ const storeMap: { [type: string]: VxeGlobalInterceptorHandles.InterceptorCallback[] } = {}
7
+
8
+ export const interceptor: VxeGlobalInterceptor = {
9
+ mixin (options) {
10
+ XEUtils.each(options, (render, type) => {
11
+ interceptor.add(type, render)
12
+ })
13
+ return interceptor
14
+ },
15
+ get (type) {
16
+ return storeMap[type] || []
17
+ },
18
+ add (type, render) {
19
+ // 兼容
20
+ if (XEUtils.isFunction(render)) {
21
+ // if (process.env.VUE_APP_VXE_ENV === 'development') {
22
+ // log.warn('vxe.error.delProp', ['interceptor -> callback', 'tableInterceptorMethod'])
23
+ // }
24
+ render = {
25
+ tableInterceptorMethod: render
26
+ }
27
+ }
28
+ const callback = render.tableInterceptorMethod
29
+
30
+ if (callback) {
31
+ let eList = storeMap[type]
32
+ if (!eList) {
33
+ eList = storeMap[type] = []
34
+ }
35
+
36
+ // 检测重复
37
+ if (process.env.VUE_APP_VXE_ENV === 'development') {
38
+ if (eList.indexOf(callback) > -1) {
39
+ log.warn('vxe.error.coverProp', ['Interceptor', type])
40
+ }
41
+ }
42
+
43
+ eList.push(callback)
44
+ }
45
+ return interceptor
46
+ },
47
+ delete (type, render) {
48
+ const eList = storeMap[type]
49
+ if (eList) {
50
+ // 兼容
51
+ if (XEUtils.isFunction(render)) {
52
+ render = {
53
+ tableInterceptorMethod: render
54
+ }
55
+ }
56
+ const callback = render ? render.tableInterceptorMethod : null
57
+
58
+ if (callback) {
59
+ XEUtils.remove(eList, fn => fn === callback)
60
+ } else {
61
+ delete storeMap[type]
62
+ }
63
+ }
64
+ }
65
+ }
@@ -1,19 +1,19 @@
1
- import { getI18n } from './i18n'
2
-
3
- import { VxeGlobalLog } from '../../types'
4
-
5
- function createLog (type: 'log' | 'warn' | 'error', name?: string) {
6
- return function (key: string, args?: any) {
7
- const msg = `[vxe ${name || ''}] ${getI18n(key, args)}`
8
- console[type](msg)
9
- return msg
10
- }
11
- }
12
-
13
- const version = process.env.VUE_APP_VXE_VERSION
14
-
15
- export const log: VxeGlobalLog = {
16
- create: createLog,
17
- warn: createLog('warn', `v${version}`),
18
- err: createLog('error', `v${version}`)
19
- }
1
+ import { getI18n } from './i18n'
2
+
3
+ import { VxeGlobalLog } from '../../types'
4
+
5
+ function createLog (type: 'log' | 'warn' | 'error', name?: string) {
6
+ return function (key: string, args?: any) {
7
+ const msg = `[vxe ${name || ''}] ${getI18n(key, args)}`
8
+ console[type](msg)
9
+ return msg
10
+ }
11
+ }
12
+
13
+ const version = process.env.VUE_APP_VXE_VERSION
14
+
15
+ export const log: VxeGlobalLog = {
16
+ create: createLog,
17
+ warn: createLog('warn', `v${version}`),
18
+ err: createLog('error', `v${version}`)
19
+ }
@@ -1,62 +1,62 @@
1
- import XEUtils from 'xe-utils'
2
- import { log } from './log'
3
-
4
- import { VxeGlobalMenus } from '../../types'
5
-
6
- class VXEMenusStore {
7
- private store: any = {}
8
-
9
- mixin (options: any): VXEMenusStore {
10
- XEUtils.each(options, (item, key) => {
11
- this.add(key, item)
12
- })
13
- return this
14
- }
15
-
16
- has (name: string): boolean {
17
- return !!this.get(name)
18
- }
19
-
20
- get (name: string): any {
21
- return this.store[name]
22
- }
23
-
24
- add (name: string, render: any): VXEMenusStore {
25
- const conf = this.store[name]
26
- // 兼容
27
- if (XEUtils.isFunction(render)) {
28
- if (process.env.VUE_APP_VXE_ENV === 'development') {
29
- log.warn('vxe.error.delProp', ['menus -> callback', 'menuMethod'])
30
- }
31
- render = {
32
- menuMethod: render
33
- }
34
- }
35
-
36
- // 检测是否覆盖
37
- if (process.env.VUE_APP_VXE_ENV === 'development') {
38
- const confKeys = XEUtils.keys(conf)
39
- XEUtils.each(render, (item, key) => {
40
- if (confKeys.includes(key)) {
41
- log.warn('vxe.error.coverProp', [name, key])
42
- }
43
- })
44
- }
45
- this.store[name] = conf ? XEUtils.merge(conf, render) : render
46
- return this
47
- }
48
-
49
- delete (name: string): void {
50
- delete this.store[name]
51
- }
52
-
53
- forEach (callback: any): void {
54
- XEUtils.objectEach(this.store, callback)
55
- }
56
- }
57
-
58
- export const menus = new VXEMenusStore() as VxeGlobalMenus
59
-
60
- if (process.env.VUE_APP_VXE_ENV === 'development') {
61
- Object.assign(menus, { _name: 'Menus' })
62
- }
1
+ import XEUtils from 'xe-utils'
2
+ import { log } from './log'
3
+
4
+ import { VxeGlobalMenus } from '../../types'
5
+
6
+ class VXEMenusStore {
7
+ private store: any = {}
8
+
9
+ mixin (options: any): VXEMenusStore {
10
+ XEUtils.each(options, (item, key) => {
11
+ this.add(key, item)
12
+ })
13
+ return this
14
+ }
15
+
16
+ has (name: string): boolean {
17
+ return !!this.get(name)
18
+ }
19
+
20
+ get (name: string): any {
21
+ return this.store[name]
22
+ }
23
+
24
+ add (name: string, render: any): VXEMenusStore {
25
+ const conf = this.store[name]
26
+ // 兼容
27
+ if (XEUtils.isFunction(render)) {
28
+ if (process.env.VUE_APP_VXE_ENV === 'development') {
29
+ log.warn('vxe.error.delProp', ['menus -> callback', 'menuMethod'])
30
+ }
31
+ render = {
32
+ menuMethod: render
33
+ }
34
+ }
35
+
36
+ // 检测是否覆盖
37
+ if (process.env.VUE_APP_VXE_ENV === 'development') {
38
+ const confKeys = XEUtils.keys(conf)
39
+ XEUtils.each(render, (item, key) => {
40
+ if (confKeys.includes(key)) {
41
+ log.warn('vxe.error.coverProp', [name, key])
42
+ }
43
+ })
44
+ }
45
+ this.store[name] = conf ? XEUtils.merge(conf, render) : render
46
+ return this
47
+ }
48
+
49
+ delete (name: string): void {
50
+ delete this.store[name]
51
+ }
52
+
53
+ forEach (callback: any): void {
54
+ XEUtils.objectEach(this.store, callback)
55
+ }
56
+ }
57
+
58
+ export const menus = new VXEMenusStore() as VxeGlobalMenus
59
+
60
+ if (process.env.VUE_APP_VXE_ENV === 'development') {
61
+ Object.assign(menus, { _name: 'Menus' })
62
+ }
@@ -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
+ }