vxe-table 4.23.7 → 4.23.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 (148) hide show
  1. package/dist/all.esm.js +5859 -4018
  2. package/es/colgroup/index.js +1 -1
  3. package/es/column/index.js +1 -1
  4. package/es/components.d.ts +3 -0
  5. package/es/components.js +4 -8
  6. package/es/grid/index.js +1 -1
  7. package/es/grid/src/emits.js +1 -15
  8. package/es/grid/src/grid.js +398 -121
  9. package/es/grid/src/props.js +1 -1
  10. package/es/index.esm.js +6 -0
  11. package/es/index.js +6 -0
  12. package/es/table/index.js +1 -1
  13. package/es/table/module/custom/hook.js +50 -43
  14. package/es/table/module/custom/panel.js +778 -528
  15. package/es/table/module/edit/hook.js +141 -63
  16. package/es/table/module/export/export-panel.js +400 -317
  17. package/es/table/module/export/hook.js +396 -338
  18. package/es/table/module/export/import-panel.js +153 -124
  19. package/es/table/module/filter/hook.js +17 -3
  20. package/es/table/module/filter/panel.js +147 -85
  21. package/es/table/module/keyboard/hook.js +9 -5
  22. package/es/table/module/menu/hook.js +1 -1
  23. package/es/table/module/menu/panel.js +198 -127
  24. package/es/table/module/validator/hook.js +1 -1
  25. package/es/table/render/index.js +152 -99
  26. package/es/table/src/body.js +356 -234
  27. package/es/table/src/cell.js +427 -270
  28. package/es/table/src/columnInfo.js +2 -1
  29. package/es/table/src/footer.js +145 -100
  30. package/es/table/src/group.js +7 -3
  31. package/es/table/src/header.js +230 -173
  32. package/es/table/src/props.js +1 -1
  33. package/es/table/src/table.js +1504 -1031
  34. package/es/table/src/util.js +15 -19
  35. package/es/toolbar/index.js +1 -1
  36. package/es/toolbar/src/toolbar.js +133 -76
  37. package/es/ui/index.d.ts +0 -1
  38. package/es/ui/index.js +1 -2
  39. package/es/ui/src/dom.js +9 -6
  40. package/es/ui/src/log.js +1 -1
  41. package/es/ui/src/utils.d.ts +1 -1
  42. package/es/v-x-e-table/index.d.ts +0 -1
  43. package/es/v-x-e-table/index.js +0 -1
  44. package/lib/colgroup/index.js +5 -5
  45. package/lib/column/index.js +5 -5
  46. package/lib/components.js +8 -12
  47. package/lib/grid/index.js +4 -4
  48. package/lib/grid/src/emits.js +1 -15
  49. package/lib/grid/src/grid.js +419 -142
  50. package/lib/grid/src/props.js +2 -2
  51. package/lib/index.common.js +6 -0
  52. package/lib/index.js +6 -0
  53. package/lib/index.umd.js +5825 -3945
  54. package/lib/index.umd.min.js +3 -3
  55. package/lib/table/index.js +5 -5
  56. package/lib/table/module/custom/hook.js +51 -44
  57. package/lib/table/module/custom/panel.js +790 -540
  58. package/lib/table/module/edit/hook.js +142 -64
  59. package/lib/table/module/export/export-panel.js +406 -323
  60. package/lib/table/module/export/hook.js +419 -361
  61. package/lib/table/module/export/import-panel.js +157 -128
  62. package/lib/table/module/filter/hook.js +18 -4
  63. package/lib/table/module/filter/panel.js +149 -87
  64. package/lib/table/module/keyboard/hook.js +10 -6
  65. package/lib/table/module/menu/hook.js +2 -2
  66. package/lib/table/module/menu/panel.js +199 -128
  67. package/lib/table/module/validator/hook.js +2 -2
  68. package/lib/table/render/index.js +153 -100
  69. package/lib/table/src/body.js +357 -235
  70. package/lib/table/src/cell.js +428 -271
  71. package/lib/table/src/columnInfo.js +3 -2
  72. package/lib/table/src/footer.js +146 -101
  73. package/lib/table/src/group.js +7 -3
  74. package/lib/table/src/header.js +231 -174
  75. package/lib/table/src/props.js +2 -2
  76. package/lib/table/src/table.js +1487 -1045
  77. package/lib/table/src/util.js +15 -19
  78. package/lib/toolbar/index.js +4 -4
  79. package/lib/toolbar/src/toolbar.js +135 -78
  80. package/lib/ui/index.js +1 -3
  81. package/lib/ui/src/dom.js +9 -6
  82. package/lib/ui/src/log.js +1 -1
  83. package/lib/v-x-e-table/index.js +0 -2
  84. package/package.json +8 -3
  85. package/packages/colgroup/index.ts +22 -22
  86. package/packages/column/index.ts +22 -22
  87. package/packages/components.ts +41 -43
  88. package/packages/grid/index.ts +18 -18
  89. package/packages/grid/src/emits.ts +5 -19
  90. package/packages/grid/src/grid.ts +2229 -1925
  91. package/packages/grid/src/props.ts +22 -23
  92. package/packages/index.ts +11 -4
  93. package/packages/locale/lang/fr-FR.ts +15 -15
  94. package/packages/locale/lang/it-IT.ts +4 -4
  95. package/packages/locale/lang/uk-UA.ts +1 -1
  96. package/packages/locale/lang/uz-UZ.ts +13 -13
  97. package/packages/locale/lang/zh-CN.ts +907 -907
  98. package/packages/table/index.ts +26 -26
  99. package/packages/table/module/custom/hook.ts +510 -503
  100. package/packages/table/module/custom/panel.ts +2002 -1743
  101. package/packages/table/module/edit/hook.ts +1224 -1131
  102. package/packages/table/module/export/export-panel.ts +697 -611
  103. package/packages/table/module/export/hook.ts +2160 -2059
  104. package/packages/table/module/export/import-panel.ts +319 -279
  105. package/packages/table/module/export/util.ts +25 -24
  106. package/packages/table/module/filter/hook.ts +519 -501
  107. package/packages/table/module/filter/panel.ts +368 -304
  108. package/packages/table/module/keyboard/hook.ts +498 -494
  109. package/packages/table/module/menu/hook.ts +330 -330
  110. package/packages/table/module/menu/panel.ts +272 -201
  111. package/packages/table/module/validator/hook.ts +653 -635
  112. package/packages/table/render/index.ts +1819 -1744
  113. package/packages/table/src/body.ts +1078 -955
  114. package/packages/table/src/cell.ts +1524 -1359
  115. package/packages/table/src/column.ts +192 -192
  116. package/packages/table/src/columnInfo.ts +232 -232
  117. package/packages/table/src/emits.ts +134 -134
  118. package/packages/table/src/footer.ts +425 -380
  119. package/packages/table/src/group.ts +67 -63
  120. package/packages/table/src/header.ts +642 -581
  121. package/packages/table/src/props.ts +336 -336
  122. package/packages/table/src/store.ts +14 -14
  123. package/packages/table/src/table.ts +16011 -15454
  124. package/packages/table/src/use/cell-view.ts +41 -44
  125. package/packages/table/src/use/index.ts +1 -1
  126. package/packages/table/src/util.ts +1206 -1216
  127. package/packages/toolbar/index.ts +18 -18
  128. package/packages/toolbar/src/toolbar.ts +768 -706
  129. package/packages/ui/index.ts +519 -521
  130. package/packages/ui/src/anime.ts +51 -52
  131. package/packages/ui/src/comp.ts +3 -3
  132. package/packages/ui/src/dom.ts +466 -463
  133. package/packages/ui/src/log.ts +19 -19
  134. package/packages/ui/src/utils.ts +66 -66
  135. package/packages/ui/src/vn.ts +55 -55
  136. package/packages/v-x-e-table/index.d.ts +3 -4
  137. package/packages/v-x-e-table/index.ts +3 -4
  138. package/types/all.d.ts +76 -76
  139. package/types/index.d.ts +4 -4
  140. /package/dist/{iconfont.1792979665397.ttf → iconfont.1793009263429.ttf} +0 -0
  141. /package/dist/{iconfont.1792979665397.woff → iconfont.1793009263429.woff} +0 -0
  142. /package/dist/{iconfont.1792979665397.woff2 → iconfont.1793009263429.woff2} +0 -0
  143. /package/es/{iconfont.1792979665397.ttf → iconfont.1793009263429.ttf} +0 -0
  144. /package/es/{iconfont.1792979665397.woff → iconfont.1793009263429.woff} +0 -0
  145. /package/es/{iconfont.1792979665397.woff2 → iconfont.1793009263429.woff2} +0 -0
  146. /package/lib/{iconfont.1792979665397.ttf → iconfont.1793009263429.ttf} +0 -0
  147. /package/lib/{iconfont.1792979665397.woff → iconfont.1793009263429.woff} +0 -0
  148. /package/lib/{iconfont.1792979665397.woff2 → iconfont.1793009263429.woff2} +0 -0
@@ -1,201 +1,272 @@
1
- import { h, Teleport, inject, ref, Ref } from 'vue'
2
- import { defineVxeComponent } from '../../../ui/src/comp'
3
- import XEUtils from 'xe-utils'
4
- import { VxeUI } from '../../../ui'
5
- import { getFuncText } from '../../../ui/src/utils'
6
- import { getSlotVNs } from '../../../ui/src/vn'
7
-
8
- import type { VxeTablePrivateMethods, VxeTableConstructor, VxeTableMethods } from '../../../../types'
9
-
10
- const { getIcon, getI18n, renderEmptyElement } = VxeUI
11
-
12
- export default defineVxeComponent({
13
- name: 'VxeTableMenuPanel',
14
- setup (props, context) {
15
- const xID = XEUtils.uniqueId()
16
-
17
- const $xeTable = inject('$xeTable', {} as VxeTableConstructor & VxeTableMethods & VxeTablePrivateMethods)
18
-
19
- const { reactData: tableReactData } = $xeTable
20
-
21
- const refElem = ref() as Ref<HTMLDivElement>
22
-
23
- const refMaps = {
24
- refElem
25
- }
26
-
27
- const $xeMenuPanel: any = {
28
- xID,
29
- props,
30
- context,
31
- getRefMaps: () => refMaps
32
- }
33
-
34
- const renderVN = () => {
35
- const { ctxMenuStore } = tableReactData
36
- const { computeMenuOpts } = $xeTable.getComputeMaps()
37
- const menuOpts = computeMenuOpts.value
38
- const { transfer, destroyOnClose, className } = menuOpts
39
- const { visible, list } = ctxMenuStore
40
-
41
- return h(Teleport, {
42
- to: 'body',
43
- disabled: !transfer
44
- }, [
45
- h('div', {
46
- ref: refElem,
47
- class: ['vxe-table--context-menu-wrapper', className, {
48
- 'is--visible': visible
49
- }],
50
- style: ctxMenuStore.style
51
- }, (destroyOnClose ? visible : true)
52
- ? list.map((options, gIndex) => {
53
- return options.every(item => item.visible === false)
54
- ? renderEmptyElement($xeTable)
55
- : h('ul', {
56
- class: 'vxe-table--context-menu-group-wrapper',
57
- key: gIndex
58
- }, options.map((item, index) => {
59
- const { children, loading } = item
60
- const hasChildMenus = children && children.some((child) => child.visible !== false)
61
- const prefixOpts = Object.assign({}, item.prefixConfig)
62
- const prefixIcon = prefixOpts.icon || item.prefixIcon
63
- const suffixOpts = Object.assign({}, item.suffixConfig)
64
- const suffixIcon = suffixOpts.icon || item.suffixIcon
65
- const menuContent = getFuncText(item.name)
66
- return item.visible === false
67
- ? renderEmptyElement($xeTable)
68
- : h('li', {
69
- class: ['vxe-table--context-menu--option', item.className, {
70
- 'link--loading': loading,
71
- 'link--disabled': item.disabled,
72
- 'link--active': item === ctxMenuStore.selected
73
- }],
74
- key: `${gIndex}_${index}`
75
- }, [
76
- h('a', {
77
- class: 'vxe-context-menu--link',
78
- onClick (evnt: Event) {
79
- $xeTable.ctxMenuLinkEvent(evnt, item)
80
- },
81
- onMouseover (evnt: Event) {
82
- $xeTable.ctxMenuMouseoverEvent(evnt, item)
83
- },
84
- onMouseout (evnt: Event) {
85
- $xeTable.ctxMenuMouseoutEvent(evnt, item)
86
- }
87
- }, [
88
- h('div', {
89
- class: ['vxe-context-menu--link-prefix', prefixOpts.className || '']
90
- }, [
91
- loading
92
- ? h('span', {
93
- class: getIcon('TABLE_MENU_OPTION_LOADING')
94
- })
95
- : (prefixIcon && XEUtils.isFunction(prefixIcon)
96
- ? h('span', {}, getSlotVNs(prefixIcon({})))
97
- : h('span', {}, [
98
- h('i', {
99
- class: prefixIcon
100
- })
101
- ])),
102
- prefixOpts.content ? h('span', {}, `${prefixOpts.content}`) : renderEmptyElement($xeTable)
103
- ]),
104
- h('div', {
105
- class: 'vxe-context-menu--link-content',
106
- title: menuContent
107
- }, loading ? getI18n('vxe.table.menuLoading') : menuContent),
108
- h('div', {
109
- class: ['vxe-context-menu--link-suffix', suffixOpts.className || '']
110
- }, [
111
- suffixIcon && XEUtils.isFunction(suffixIcon)
112
- ? h('span', {}, getSlotVNs(suffixIcon({})))
113
- : h('i', {
114
- class: suffixIcon || (hasChildMenus ? getIcon().TABLE_MENU_OPTIONS : '')
115
- }),
116
- suffixOpts.content ? h('span', `${suffixOpts.content}`) : renderEmptyElement($xeTable)
117
- ])
118
- ]),
119
- hasChildMenus && children
120
- ? h('ul', {
121
- class: ['vxe-table--context-menu-clild-wrapper', {
122
- 'is--show': item === ctxMenuStore.selected && ctxMenuStore.showChild
123
- }]
124
- }, children.map((child, cIndex) => {
125
- const { loading: childLoading } = child
126
- const childPrefixOpts = Object.assign({}, child.prefixConfig)
127
- const childPrefixIcon = childPrefixOpts.icon || child.prefixIcon
128
- const childSuffixOpts = Object.assign({}, child.suffixConfig)
129
- const childSuffixIcon = childSuffixOpts.icon || child.suffixIcon
130
- const childMenuContent = getFuncText(child.name)
131
- return child.visible === false
132
- ? null
133
- : h('li', {
134
- class: ['vxe-table--context-menu--option', child.className, {
135
- 'link--loading': childLoading,
136
- 'link--disabled': child.disabled,
137
- 'link--active': child === ctxMenuStore.selectChild
138
- }],
139
- key: `${gIndex}_${index}_${cIndex}`
140
- }, [
141
- h('a', {
142
- class: 'vxe-context-menu--link',
143
- onClick (evnt: Event) {
144
- $xeTable.ctxMenuLinkEvent(evnt, child)
145
- },
146
- onMouseover (evnt: Event) {
147
- $xeTable.ctxMenuMouseoverEvent(evnt, item, child)
148
- },
149
- onMouseout (evnt: Event) {
150
- $xeTable.ctxMenuMouseoutEvent(evnt, item)
151
- }
152
- }, [
153
- h('div', {
154
- class: ['vxe-context-menu--link-prefix', childPrefixOpts.className || '']
155
- }, [
156
- child.loading
157
- ? h('span', {
158
- class: getIcon('TABLE_MENU_OPTION_LOADING')
159
- })
160
- : (childPrefixIcon && XEUtils.isFunction(childPrefixIcon)
161
- ? h('span', {}, getSlotVNs(childPrefixIcon({})))
162
- : h('span', {}, [
163
- h('i', {
164
- class: childPrefixIcon
165
- })
166
- ])),
167
- childPrefixOpts.content ? h('span', `${childPrefixOpts.content}`) : renderEmptyElement($xeTable)
168
- ]),
169
- h('div', {
170
- class: 'vxe-context-menu--link-content',
171
- title: childMenuContent
172
- }, childLoading ? getI18n('vxe.table.menuLoading') : childMenuContent),
173
- h('div', {
174
- class: ['vxe-context-menu--link-suffix', childSuffixOpts.className || '']
175
- }, [
176
- childSuffixIcon && XEUtils.isFunction(childSuffixIcon)
177
- ? h('span', {}, getSlotVNs(childSuffixIcon({})))
178
- : h('i', {
179
- class: childSuffixIcon
180
- }),
181
- childSuffixOpts.content ? h('span', `${childSuffixOpts.content}`) : renderEmptyElement($xeTable)
182
- ])
183
- ])
184
- ])
185
- }))
186
- : null
187
- ])
188
- }))
189
- })
190
- : [])
191
- ])
192
- }
193
-
194
- $xeMenuPanel.renderVN = renderVN
195
-
196
- return $xeMenuPanel
197
- },
198
- render () {
199
- return this.renderVN()
200
- }
201
- })
1
+ import { h, Teleport, inject, ref, Ref } from 'vue'
2
+ import { defineVxeComponent } from '../../../ui/src/comp'
3
+ import XEUtils from 'xe-utils'
4
+ import { VxeUI } from '@vxe-ui/core'
5
+ import { getFuncText } from '../../../ui/src/utils'
6
+ import { getSlotVNs } from '../../../ui/src/vn'
7
+
8
+ import type { VxeTablePrivateMethods, VxeTableConstructor, VxeTableMethods } from '../../../../types'
9
+
10
+ const { getIcon, getI18n, renderEmptyElement } = VxeUI
11
+
12
+ export default defineVxeComponent({
13
+ name: 'VxeTableMenuPanel',
14
+ setup(props, context) {
15
+ const xID = XEUtils.uniqueId()
16
+
17
+ const $xeTable = inject('$xeTable', {} as VxeTableConstructor & VxeTableMethods & VxeTablePrivateMethods)
18
+
19
+ const { reactData: tableReactData } = $xeTable
20
+
21
+ const refElem = ref() as Ref<HTMLDivElement>
22
+
23
+ const refMaps = {
24
+ refElem
25
+ }
26
+
27
+ const $xeMenuPanel: any = {
28
+ xID,
29
+ props,
30
+ context,
31
+ getRefMaps: () => refMaps
32
+ }
33
+
34
+ const renderVN = () => {
35
+ const { ctxMenuStore } = tableReactData
36
+ const { computeMenuOpts } = $xeTable.getComputeMaps()
37
+ const menuOpts = computeMenuOpts.value
38
+ const { transfer, destroyOnClose, className } = menuOpts
39
+ const { visible, list } = ctxMenuStore
40
+
41
+ return h(
42
+ Teleport,
43
+ {
44
+ to: 'body',
45
+ disabled: !transfer
46
+ },
47
+ [
48
+ h(
49
+ 'div',
50
+ {
51
+ ref: refElem,
52
+ class: [
53
+ 'vxe-table--context-menu-wrapper',
54
+ className,
55
+ {
56
+ 'is--visible': visible
57
+ }
58
+ ],
59
+ style: ctxMenuStore.style
60
+ },
61
+ (destroyOnClose ? visible : true)
62
+ ? list.map((options, gIndex) => {
63
+ return options.every((item) => item.visible === false)
64
+ ? renderEmptyElement($xeTable)
65
+ : h(
66
+ 'ul',
67
+ {
68
+ class: 'vxe-table--context-menu-group-wrapper',
69
+ key: gIndex
70
+ },
71
+ options.map((item, index) => {
72
+ const { children, loading } = item
73
+ const hasChildMenus = children && children.some((child) => child.visible !== false)
74
+ const prefixOpts = Object.assign({}, item.prefixConfig)
75
+ const prefixIcon = prefixOpts.icon || item.prefixIcon
76
+ const suffixOpts = Object.assign({}, item.suffixConfig)
77
+ const suffixIcon = suffixOpts.icon || item.suffixIcon
78
+ const menuContent = getFuncText(item.name)
79
+ return item.visible === false
80
+ ? renderEmptyElement($xeTable)
81
+ : h(
82
+ 'li',
83
+ {
84
+ class: [
85
+ 'vxe-table--context-menu--option',
86
+ item.className,
87
+ {
88
+ 'link--loading': loading,
89
+ 'link--disabled': item.disabled,
90
+ 'link--active': item === ctxMenuStore.selected
91
+ }
92
+ ],
93
+ key: `${gIndex}_${index}`
94
+ },
95
+ [
96
+ h(
97
+ 'a',
98
+ {
99
+ class: 'vxe-context-menu--link',
100
+ onClick(evnt: Event) {
101
+ $xeTable.ctxMenuLinkEvent(evnt, item)
102
+ },
103
+ onMouseover(evnt: Event) {
104
+ $xeTable.ctxMenuMouseoverEvent(evnt, item)
105
+ },
106
+ onMouseout(evnt: Event) {
107
+ $xeTable.ctxMenuMouseoutEvent(evnt, item)
108
+ }
109
+ },
110
+ [
111
+ h(
112
+ 'div',
113
+ {
114
+ class: ['vxe-context-menu--link-prefix', prefixOpts.className || '']
115
+ },
116
+ [
117
+ loading
118
+ ? h('span', {
119
+ class: getIcon('TABLE_MENU_OPTION_LOADING')
120
+ })
121
+ : prefixIcon && XEUtils.isFunction(prefixIcon)
122
+ ? h('span', {}, getSlotVNs(prefixIcon({})))
123
+ : h('span', {}, [
124
+ h('i', {
125
+ class: prefixIcon
126
+ })
127
+ ]),
128
+ prefixOpts.content ? h('span', {}, `${prefixOpts.content}`) : renderEmptyElement($xeTable)
129
+ ]
130
+ ),
131
+ h(
132
+ 'div',
133
+ {
134
+ class: 'vxe-context-menu--link-content',
135
+ title: menuContent
136
+ },
137
+ loading ? getI18n('vxe.table.menuLoading') : menuContent
138
+ ),
139
+ h(
140
+ 'div',
141
+ {
142
+ class: ['vxe-context-menu--link-suffix', suffixOpts.className || '']
143
+ },
144
+ [
145
+ suffixIcon && XEUtils.isFunction(suffixIcon)
146
+ ? h('span', {}, getSlotVNs(suffixIcon({})))
147
+ : h('i', {
148
+ class: suffixIcon || (hasChildMenus ? getIcon().TABLE_MENU_OPTIONS : '')
149
+ }),
150
+ suffixOpts.content ? h('span', `${suffixOpts.content}`) : renderEmptyElement($xeTable)
151
+ ]
152
+ )
153
+ ]
154
+ ),
155
+ hasChildMenus && children
156
+ ? h(
157
+ 'ul',
158
+ {
159
+ class: [
160
+ 'vxe-table--context-menu-clild-wrapper',
161
+ {
162
+ 'is--show': item === ctxMenuStore.selected && ctxMenuStore.showChild
163
+ }
164
+ ]
165
+ },
166
+ children.map((child, cIndex) => {
167
+ const { loading: childLoading } = child
168
+ const childPrefixOpts = Object.assign({}, child.prefixConfig)
169
+ const childPrefixIcon = childPrefixOpts.icon || child.prefixIcon
170
+ const childSuffixOpts = Object.assign({}, child.suffixConfig)
171
+ const childSuffixIcon = childSuffixOpts.icon || child.suffixIcon
172
+ const childMenuContent = getFuncText(child.name)
173
+ return child.visible === false
174
+ ? null
175
+ : h(
176
+ 'li',
177
+ {
178
+ class: [
179
+ 'vxe-table--context-menu--option',
180
+ child.className,
181
+ {
182
+ 'link--loading': childLoading,
183
+ 'link--disabled': child.disabled,
184
+ 'link--active': child === ctxMenuStore.selectChild
185
+ }
186
+ ],
187
+ key: `${gIndex}_${index}_${cIndex}`
188
+ },
189
+ [
190
+ h(
191
+ 'a',
192
+ {
193
+ class: 'vxe-context-menu--link',
194
+ onClick(evnt: Event) {
195
+ $xeTable.ctxMenuLinkEvent(evnt, child)
196
+ },
197
+ onMouseover(evnt: Event) {
198
+ $xeTable.ctxMenuMouseoverEvent(evnt, item, child)
199
+ },
200
+ onMouseout(evnt: Event) {
201
+ $xeTable.ctxMenuMouseoutEvent(evnt, item)
202
+ }
203
+ },
204
+ [
205
+ h(
206
+ 'div',
207
+ {
208
+ class: ['vxe-context-menu--link-prefix', childPrefixOpts.className || '']
209
+ },
210
+ [
211
+ child.loading
212
+ ? h('span', {
213
+ class: getIcon('TABLE_MENU_OPTION_LOADING')
214
+ })
215
+ : childPrefixIcon && XEUtils.isFunction(childPrefixIcon)
216
+ ? h('span', {}, getSlotVNs(childPrefixIcon({})))
217
+ : h('span', {}, [
218
+ h('i', {
219
+ class: childPrefixIcon
220
+ })
221
+ ]),
222
+ childPrefixOpts.content ? h('span', `${childPrefixOpts.content}`) : renderEmptyElement($xeTable)
223
+ ]
224
+ ),
225
+ h(
226
+ 'div',
227
+ {
228
+ class: 'vxe-context-menu--link-content',
229
+ title: childMenuContent
230
+ },
231
+ childLoading ? getI18n('vxe.table.menuLoading') : childMenuContent
232
+ ),
233
+ h(
234
+ 'div',
235
+ {
236
+ class: ['vxe-context-menu--link-suffix', childSuffixOpts.className || '']
237
+ },
238
+ [
239
+ childSuffixIcon && XEUtils.isFunction(childSuffixIcon)
240
+ ? h('span', {}, getSlotVNs(childSuffixIcon({})))
241
+ : h('i', {
242
+ class: childSuffixIcon
243
+ }),
244
+ childSuffixOpts.content ? h('span', `${childSuffixOpts.content}`) : renderEmptyElement($xeTable)
245
+ ]
246
+ )
247
+ ]
248
+ )
249
+ ]
250
+ )
251
+ })
252
+ )
253
+ : null
254
+ ]
255
+ )
256
+ })
257
+ )
258
+ })
259
+ : []
260
+ )
261
+ ]
262
+ )
263
+ }
264
+
265
+ $xeMenuPanel.renderVN = renderVN
266
+
267
+ return $xeMenuPanel
268
+ },
269
+ render() {
270
+ return this.renderVN()
271
+ }
272
+ })