vxe-pc-ui 4.20.34 → 4.20.35

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 (367) hide show
  1. package/dist/all.esm.js +45718 -45038
  2. package/dist/all.esm.min.js +3 -3
  3. package/dist/style.css +307 -1
  4. package/dist/style.mini.css +1 -1
  5. package/es/alert/src/alert.js +117 -114
  6. package/es/anchor/src/anchor-link.js +110 -107
  7. package/es/anchor/src/anchor.js +212 -209
  8. package/es/avatar/src/avatar.js +132 -129
  9. package/es/backtop/src/backtop.js +267 -264
  10. package/es/badge/src/badge.js +102 -99
  11. package/es/breadcrumb/src/breadcrumb-item.js +104 -101
  12. package/es/breadcrumb/src/breadcrumb.js +70 -67
  13. package/es/button/src/button-group.js +88 -85
  14. package/es/calendar/src/calendar.js +1371 -1368
  15. package/es/card/src/card.js +235 -232
  16. package/es/carousel/src/carousel-item.js +78 -75
  17. package/es/carousel/src/carousel.js +392 -389
  18. package/es/cascader/src/cascader.js +1667 -1664
  19. package/es/checkbox/src/button.js +198 -195
  20. package/es/checkbox/src/checkbox.js +181 -178
  21. package/es/checkbox/src/group.js +210 -207
  22. package/es/collapse/src/collapse-pane.js +98 -95
  23. package/es/collapse/src/collapse.js +340 -337
  24. package/es/color-picker/src/color-picker.js +1116 -1113
  25. package/es/components.d.ts +1 -0
  26. package/es/components.js +3 -0
  27. package/es/context-menu/src/context-menu.js +601 -598
  28. package/es/countdown/src/countdown.js +224 -221
  29. package/es/date-panel/src/date-panel.js +1905 -1902
  30. package/es/date-picker/src/date-picker.js +1537 -1534
  31. package/es/date-range-picker/src/date-range-picker.js +1412 -1409
  32. package/es/divider/src/divider.js +80 -77
  33. package/es/drawer/src/drawer.js +778 -775
  34. package/es/empty/src/empty.js +100 -97
  35. package/es/form/src/form-group.js +74 -71
  36. package/es/form/src/form-item.js +76 -73
  37. package/es/form/src/form.js +789 -786
  38. package/es/icon/src/icon.js +59 -56
  39. package/es/icon/style.css +1 -1
  40. package/es/icon/style.mini.css +1 -1
  41. package/es/icon-picker/src/icon-picker.js +719 -716
  42. package/es/image/src/group.js +130 -127
  43. package/es/image/src/image.js +243 -240
  44. package/es/image/src/preview.js +627 -624
  45. package/es/index.esm.js +2 -0
  46. package/es/index.js +2 -0
  47. package/es/input/src/input.js +2700 -2697
  48. package/es/layout-aside/src/layout-aside.js +138 -135
  49. package/es/layout-body/src/layout-body.js +145 -142
  50. package/es/layout-container/src/layout-container.js +71 -68
  51. package/es/layout-footer/src/layout-footer.js +60 -57
  52. package/es/layout-header/src/layout-header.js +58 -55
  53. package/es/link/src/link.js +131 -128
  54. package/es/list/src/list.js +2174 -2171
  55. package/es/loading/src/loading.js +141 -138
  56. package/es/mention/src/mention.js +49 -46
  57. package/es/menu/src/menu.js +799 -796
  58. package/es/modal/src/modal.js +1519 -1527
  59. package/es/notice-bar/src/notice-bar.js +168 -165
  60. package/es/number-input/src/number-input.js +1094 -1091
  61. package/es/pager/src/pager.js +767 -764
  62. package/es/password-input/src/password-input.js +431 -428
  63. package/es/print/src/page-break.js +63 -60
  64. package/es/print/src/print.js +303 -300
  65. package/es/pulldown/src/pulldown.js +403 -400
  66. package/es/radio/src/button.js +214 -211
  67. package/es/radio/src/group.js +195 -192
  68. package/es/radio/src/radio.js +194 -191
  69. package/es/rate/src/rate.js +164 -161
  70. package/es/result/src/result.js +116 -113
  71. package/es/row/src/col.js +133 -130
  72. package/es/row/src/row.js +111 -108
  73. package/es/scrollbar/src/scrollbar.js +518 -515
  74. package/es/segmented/src/segmented.js +240 -237
  75. package/es/select/src/optgroup.js +44 -41
  76. package/es/select/src/option.js +39 -36
  77. package/es/select/src/select.js +1914 -1896
  78. package/es/slider/src/slider.js +419 -416
  79. package/es/space/src/space.js +190 -187
  80. package/es/splitter/src/splitter-panel.js +146 -143
  81. package/es/splitter/src/splitter.js +917 -914
  82. package/es/step-item/index.d.ts +76 -0
  83. package/es/step-item/index.js +17 -0
  84. package/es/steps/index.d.ts +288 -34
  85. package/es/steps/src/step-info.d.ts +6 -0
  86. package/es/steps/src/step-info.js +20 -0
  87. package/es/steps/src/step-item.d.ts +14 -0
  88. package/es/steps/src/step-item.js +39 -0
  89. package/es/steps/src/steps.d.ts +68 -8
  90. package/es/steps/src/steps.js +299 -47
  91. package/es/steps/src/util.d.ts +7 -0
  92. package/es/steps/src/util.js +44 -0
  93. package/es/steps/style.css +297 -0
  94. package/es/steps/style.mini.css +1 -0
  95. package/es/style.css +307 -1
  96. package/es/style.mini.css +1 -1
  97. package/es/switch/src/switch.js +228 -225
  98. package/es/table-select/src/table-select.js +865 -862
  99. package/es/table-transfer/src/table-transfer.js +61 -58
  100. package/es/tabs/src/tab-pane.js +102 -99
  101. package/es/tabs/src/tabs.js +936 -933
  102. package/es/tag/src/tag.js +163 -160
  103. package/es/text/src/text.js +232 -229
  104. package/es/text-ellipsis/src/text-ellipsis.js +252 -249
  105. package/es/textarea/src/textarea.js +434 -431
  106. package/es/timeline/src/timeline.js +74 -36
  107. package/es/timeline/src/util.js +7 -4
  108. package/es/tip/src/tip.js +117 -114
  109. package/es/tooltip/src/tooltip.js +552 -549
  110. package/es/tour/src/tour.js +49 -46
  111. package/es/transfer/src/transfer.js +95 -92
  112. package/es/tree/src/tree.js +3379 -3376
  113. package/es/tree-select/src/tree-select.js +969 -966
  114. package/es/ui/index.js +8 -2
  115. package/es/ui/src/log.js +1 -1
  116. package/es/upload/src/upload.js +1791 -1788
  117. package/es/vxe-icon/style.css +1 -1
  118. package/es/vxe-icon/style.mini.css +1 -1
  119. package/es/vxe-steps/style.css +297 -0
  120. package/es/vxe-steps/style.mini.css +1 -0
  121. package/es/watermark/src/watermark.js +158 -155
  122. package/lib/alert/src/alert.js +117 -114
  123. package/lib/anchor/src/anchor-link.js +110 -107
  124. package/lib/anchor/src/anchor.js +212 -209
  125. package/lib/avatar/src/avatar.js +132 -129
  126. package/lib/backtop/src/backtop.js +267 -264
  127. package/lib/badge/src/badge.js +102 -99
  128. package/lib/breadcrumb/src/breadcrumb-item.js +104 -101
  129. package/lib/breadcrumb/src/breadcrumb.js +70 -67
  130. package/lib/button/src/button-group.js +88 -85
  131. package/lib/calendar/src/calendar.js +1371 -1368
  132. package/lib/card/src/card.js +235 -232
  133. package/lib/carousel/src/carousel-item.js +78 -75
  134. package/lib/carousel/src/carousel.js +392 -389
  135. package/lib/cascader/src/cascader.js +1665 -1662
  136. package/lib/checkbox/src/button.js +198 -195
  137. package/lib/checkbox/src/checkbox.js +181 -178
  138. package/lib/checkbox/src/group.js +210 -207
  139. package/lib/collapse/src/collapse-pane.js +98 -95
  140. package/lib/collapse/src/collapse.js +340 -337
  141. package/lib/color-picker/src/color-picker.js +1116 -1113
  142. package/lib/components.js +3 -0
  143. package/lib/context-menu/src/context-menu.js +601 -598
  144. package/lib/countdown/src/countdown.js +224 -221
  145. package/lib/date-panel/src/date-panel.js +1905 -1902
  146. package/lib/date-picker/src/date-picker.js +1537 -1534
  147. package/lib/date-range-picker/src/date-range-picker.js +1412 -1409
  148. package/lib/divider/src/divider.js +80 -77
  149. package/lib/drawer/src/drawer.js +778 -775
  150. package/lib/empty/src/empty.js +100 -97
  151. package/lib/form/src/form-group.js +74 -71
  152. package/lib/form/src/form-item.js +76 -73
  153. package/lib/form/src/form.js +789 -786
  154. package/lib/icon/src/icon.js +59 -56
  155. package/lib/icon/style/style.css +1 -1
  156. package/lib/icon/style/style.mini.css +1 -1
  157. package/lib/icon-picker/src/icon-picker.js +719 -716
  158. package/lib/image/src/group.js +130 -127
  159. package/lib/image/src/image.js +243 -240
  160. package/lib/image/src/preview.js +627 -624
  161. package/lib/index.common.js +2 -0
  162. package/lib/index.js +2 -0
  163. package/lib/index.umd.js +47411 -46732
  164. package/lib/index.umd.min.js +3 -3
  165. package/lib/input/src/input.js +2700 -2697
  166. package/lib/layout-aside/src/layout-aside.js +138 -135
  167. package/lib/layout-body/src/layout-body.js +145 -142
  168. package/lib/layout-container/src/layout-container.js +71 -68
  169. package/lib/layout-footer/src/layout-footer.js +60 -57
  170. package/lib/layout-header/src/layout-header.js +58 -55
  171. package/lib/link/src/link.js +131 -128
  172. package/lib/list/src/list.js +2173 -2170
  173. package/lib/loading/src/loading.js +141 -138
  174. package/lib/mention/src/mention.js +49 -46
  175. package/lib/menu/src/menu.js +799 -796
  176. package/lib/modal/src/modal.js +1519 -1527
  177. package/lib/notice-bar/src/notice-bar.js +168 -165
  178. package/lib/number-input/src/number-input.js +1094 -1091
  179. package/lib/pager/src/pager.js +767 -764
  180. package/lib/password-input/src/password-input.js +431 -428
  181. package/lib/print/src/page-break.js +63 -60
  182. package/lib/print/src/print.js +303 -300
  183. package/lib/pulldown/src/pulldown.js +403 -400
  184. package/lib/radio/src/button.js +214 -211
  185. package/lib/radio/src/group.js +195 -192
  186. package/lib/radio/src/radio.js +194 -191
  187. package/lib/rate/src/rate.js +164 -161
  188. package/lib/result/src/result.js +116 -113
  189. package/lib/row/src/col.js +133 -130
  190. package/lib/row/src/row.js +111 -108
  191. package/lib/scrollbar/src/scrollbar.js +518 -515
  192. package/lib/segmented/src/segmented.js +240 -237
  193. package/lib/select/src/optgroup.js +44 -41
  194. package/lib/select/src/option.js +39 -36
  195. package/lib/select/src/select.js +1915 -1897
  196. package/lib/slider/src/slider.js +419 -416
  197. package/lib/space/src/space.js +190 -187
  198. package/lib/splitter/src/splitter-panel.js +146 -143
  199. package/lib/splitter/src/splitter.js +917 -914
  200. package/lib/step-item/index.js +47 -0
  201. package/lib/steps/src/step-info.js +49 -0
  202. package/lib/steps/src/step-item.js +59 -0
  203. package/lib/steps/src/steps.js +298 -46
  204. package/lib/steps/src/util.js +74 -0
  205. package/lib/steps/style/style.css +297 -0
  206. package/lib/steps/style/style.mini.css +1 -0
  207. package/lib/style.css +307 -1
  208. package/lib/style.mini.css +1 -1
  209. package/lib/switch/src/switch.js +228 -225
  210. package/lib/table-select/src/table-select.js +865 -862
  211. package/lib/table-transfer/src/table-transfer.js +61 -58
  212. package/lib/tabs/src/tab-pane.js +102 -99
  213. package/lib/tabs/src/tabs.js +936 -933
  214. package/lib/tag/src/tag.js +163 -160
  215. package/lib/text/src/text.js +232 -229
  216. package/lib/text-ellipsis/src/text-ellipsis.js +252 -249
  217. package/lib/textarea/src/textarea.js +434 -431
  218. package/lib/timeline/src/timeline.js +74 -36
  219. package/lib/timeline/src/util.js +7 -4
  220. package/lib/tip/src/tip.js +117 -114
  221. package/lib/tooltip/src/tooltip.js +552 -549
  222. package/lib/tour/src/tour.js +49 -46
  223. package/lib/transfer/src/transfer.js +95 -92
  224. package/lib/tree/src/tree.js +3379 -3376
  225. package/lib/tree-select/src/tree-select.js +969 -966
  226. package/lib/ui/index.js +8 -2
  227. package/lib/ui/src/log.js +1 -1
  228. package/lib/upload/src/upload.js +1788 -1785
  229. package/lib/vxe-icon/style/style.css +1 -1
  230. package/lib/vxe-icon/style/style.mini.css +1 -1
  231. package/lib/vxe-steps/style/style.css +297 -0
  232. package/lib/vxe-steps/style/style.mini.css +1 -0
  233. package/lib/watermark/src/watermark.js +158 -155
  234. package/package.json +1 -1
  235. package/packages/alert/src/alert.ts +2 -2
  236. package/packages/anchor/src/anchor-link.ts +2 -2
  237. package/packages/anchor/src/anchor.ts +2 -2
  238. package/packages/avatar/src/avatar.ts +2 -2
  239. package/packages/backtop/src/backtop.ts +2 -2
  240. package/packages/badge/src/badge.ts +2 -2
  241. package/packages/breadcrumb/src/breadcrumb-item.ts +2 -2
  242. package/packages/breadcrumb/src/breadcrumb.ts +2 -2
  243. package/packages/button/src/button-group.ts +2 -2
  244. package/packages/calendar/src/calendar.ts +2 -2
  245. package/packages/card/src/card.ts +2 -2
  246. package/packages/carousel/src/carousel-item.ts +2 -2
  247. package/packages/carousel/src/carousel.ts +2 -2
  248. package/packages/cascader/src/cascader.ts +2 -2
  249. package/packages/checkbox/src/button.ts +3 -15
  250. package/packages/checkbox/src/checkbox.ts +2 -2
  251. package/packages/checkbox/src/group.ts +2 -2
  252. package/packages/collapse/src/collapse-pane.ts +2 -2
  253. package/packages/collapse/src/collapse.ts +2 -2
  254. package/packages/color-picker/src/color-picker.ts +2 -2
  255. package/packages/components.ts +3 -0
  256. package/packages/context-menu/src/context-menu.ts +3 -16
  257. package/packages/countdown/src/countdown.ts +2 -2
  258. package/packages/date-panel/src/date-panel.ts +2 -2
  259. package/packages/date-picker/src/date-picker.ts +2 -2
  260. package/packages/date-range-picker/src/date-range-picker.ts +2 -2
  261. package/packages/divider/src/divider.ts +2 -2
  262. package/packages/drawer/src/drawer.ts +2 -2
  263. package/packages/empty/src/empty.ts +2 -2
  264. package/packages/form/src/form-group.ts +2 -2
  265. package/packages/form/src/form-item.ts +2 -2
  266. package/packages/form/src/form.ts +2 -2
  267. package/packages/icon/src/icon.ts +2 -2
  268. package/packages/icon-picker/src/icon-picker.ts +2 -2
  269. package/packages/image/src/group.ts +2 -2
  270. package/packages/image/src/image.ts +2 -2
  271. package/packages/image/src/preview.ts +3 -16
  272. package/packages/index.ts +2 -2
  273. package/packages/input/src/input.ts +2 -2
  274. package/packages/layout-aside/src/layout-aside.ts +2 -2
  275. package/packages/layout-body/src/layout-body.ts +2 -2
  276. package/packages/layout-container/src/layout-container.ts +3 -14
  277. package/packages/layout-footer/src/layout-footer.ts +2 -2
  278. package/packages/layout-header/src/layout-header.ts +2 -2
  279. package/packages/link/src/link.ts +2 -2
  280. package/packages/list/src/list.ts +2 -2
  281. package/packages/loading/src/loading.ts +2 -2
  282. package/packages/mention/src/mention.ts +2 -2
  283. package/packages/menu/src/menu.ts +2 -2
  284. package/packages/modal/src/modal.ts +5 -20
  285. package/packages/notice-bar/src/notice-bar.ts +2 -2
  286. package/packages/number-input/src/number-input.ts +3 -17
  287. package/packages/pager/src/pager.ts +2 -2
  288. package/packages/password-input/src/password-input.ts +2 -2
  289. package/packages/print/src/page-break.ts +2 -2
  290. package/packages/print/src/print.ts +2 -2
  291. package/packages/pulldown/src/pulldown.ts +2 -2
  292. package/packages/radio/src/button.ts +3 -16
  293. package/packages/radio/src/group.ts +3 -17
  294. package/packages/radio/src/radio.ts +2 -2
  295. package/packages/rate/src/rate.ts +2 -2
  296. package/packages/result/src/result.ts +2 -2
  297. package/packages/row/src/col.ts +2 -2
  298. package/packages/row/src/row.ts +2 -2
  299. package/packages/scrollbar/src/scrollbar.ts +3 -4
  300. package/packages/segmented/src/segmented.ts +2 -2
  301. package/packages/select/src/optgroup.ts +2 -2
  302. package/packages/select/src/option.ts +2 -2
  303. package/packages/select/src/select.ts +33 -19
  304. package/packages/slider/src/slider.ts +2 -2
  305. package/packages/space/src/space.ts +2 -2
  306. package/packages/splitter/src/splitter-panel.ts +2 -2
  307. package/packages/splitter/src/splitter.ts +2 -2
  308. package/packages/step-item/index.ts +16 -0
  309. package/packages/steps/src/step-info.ts +18 -0
  310. package/packages/steps/src/step-item.ts +41 -0
  311. package/packages/steps/src/steps.ts +273 -13
  312. package/packages/steps/src/util.ts +44 -0
  313. package/packages/switch/src/switch.ts +2 -2
  314. package/packages/table-select/src/table-select.ts +2 -2
  315. package/packages/table-transfer/src/table-transfer.ts +3 -15
  316. package/packages/tabs/src/tab-pane.ts +2 -2
  317. package/packages/tabs/src/tabs.ts +2 -2
  318. package/packages/tag/src/tag.ts +2 -2
  319. package/packages/text/src/text.ts +2 -2
  320. package/packages/text-ellipsis/src/text-ellipsis.ts +2 -2
  321. package/packages/textarea/src/textarea.ts +2 -2
  322. package/packages/timeline/src/timeline-info.ts +17 -17
  323. package/packages/timeline/src/timeline.ts +93 -49
  324. package/packages/timeline/src/util.ts +44 -41
  325. package/packages/tip/src/tip.ts +2 -2
  326. package/packages/tooltip/src/tooltip.ts +2 -2
  327. package/packages/tour/src/tour.ts +2 -2
  328. package/packages/transfer/src/transfer.ts +2 -2
  329. package/packages/tree/src/tree.ts +2 -2
  330. package/packages/tree-select/src/tree-select.ts +2 -2
  331. package/packages/ui/index.ts +8 -1
  332. package/packages/upload/src/upload.ts +2 -2
  333. package/packages/watermark/src/watermark.ts +2 -2
  334. package/styles/all.scss +1 -0
  335. package/styles/components/step-item.scss +0 -0
  336. package/styles/components/steps.scss +354 -0
  337. package/styles/theme/base.scss +9 -0
  338. package/types/all.d.ts +3 -0
  339. package/types/components/gantt.d.ts +1 -3
  340. package/types/components/select.d.ts +1 -13
  341. package/types/components/step-item.d.ts +72 -0
  342. package/types/components/steps.d.ts +67 -8
  343. package/types/components/table.d.ts +7 -66
  344. package/types/handles/form-design.d.ts +1 -4
  345. package/types/ui/global-config.d.ts +2 -0
  346. package/types/ui/global-icon.d.ts +7 -0
  347. /package/dist/{iconfont.1793330162657.ttf → iconfont.1793359478136.ttf} +0 -0
  348. /package/dist/{iconfont.1793330162657.woff → iconfont.1793359478136.woff} +0 -0
  349. /package/dist/{iconfont.1793330162657.woff2 → iconfont.1793359478136.woff2} +0 -0
  350. /package/es/icon/{iconfont.1793330162657.ttf → iconfont.1793359478136.ttf} +0 -0
  351. /package/es/icon/{iconfont.1793330162657.woff → iconfont.1793359478136.woff} +0 -0
  352. /package/es/icon/{iconfont.1793330162657.woff2 → iconfont.1793359478136.woff2} +0 -0
  353. /package/es/{iconfont.1793330162657.ttf → iconfont.1793359478136.ttf} +0 -0
  354. /package/es/{iconfont.1793330162657.woff → iconfont.1793359478136.woff} +0 -0
  355. /package/es/{iconfont.1793330162657.woff2 → iconfont.1793359478136.woff2} +0 -0
  356. /package/es/vxe-icon/{iconfont.1793330162657.ttf → iconfont.1793359478136.ttf} +0 -0
  357. /package/es/vxe-icon/{iconfont.1793330162657.woff → iconfont.1793359478136.woff} +0 -0
  358. /package/es/vxe-icon/{iconfont.1793330162657.woff2 → iconfont.1793359478136.woff2} +0 -0
  359. /package/lib/icon/style/{iconfont.1793330162657.ttf → iconfont.1793359478136.ttf} +0 -0
  360. /package/lib/icon/style/{iconfont.1793330162657.woff → iconfont.1793359478136.woff} +0 -0
  361. /package/lib/icon/style/{iconfont.1793330162657.woff2 → iconfont.1793359478136.woff2} +0 -0
  362. /package/lib/{iconfont.1793330162657.ttf → iconfont.1793359478136.ttf} +0 -0
  363. /package/lib/{iconfont.1793330162657.woff → iconfont.1793359478136.woff} +0 -0
  364. /package/lib/{iconfont.1793330162657.woff2 → iconfont.1793359478136.woff2} +0 -0
  365. /package/lib/vxe-icon/style/{iconfont.1793330162657.ttf → iconfont.1793359478136.ttf} +0 -0
  366. /package/lib/vxe-icon/style/{iconfont.1793330162657.woff → iconfont.1793359478136.woff} +0 -0
  367. /package/lib/vxe-icon/style/{iconfont.1793330162657.woff2 → iconfont.1793359478136.woff2} +0 -0
@@ -24,665 +24,668 @@ function createReactData() {
24
24
  childOffsetX: 0
25
25
  };
26
26
  }
27
- var context_menu_default = defineVxeComponent({
28
- name: "VxeContextMenu",
29
- props: {
30
- modelValue: Boolean,
31
- className: String,
32
- size: {
33
- type: String,
34
- default: () => getConfig().contextMenu.size || getConfig().size
35
- },
36
- options: Array,
37
- x: [Number, String],
38
- y: [Number, String],
39
- autoLocate: {
40
- type: Boolean,
41
- default: () => getConfig().contextMenu.autoLocate
42
- },
43
- zIndex: [Number, String],
44
- position: {
45
- type: String,
46
- default: () => getConfig().contextMenu.position
47
- },
48
- destroyOnClose: {
49
- type: Boolean,
50
- default: () => getConfig().contextMenu.destroyOnClose
27
+ var context_menu_default = (
28
+ /* define-vxe-component start */
29
+ defineVxeComponent({
30
+ name: "VxeContextMenu",
31
+ props: {
32
+ modelValue: Boolean,
33
+ className: String,
34
+ size: {
35
+ type: String,
36
+ default: () => getConfig().contextMenu.size || getConfig().size
37
+ },
38
+ options: Array,
39
+ x: [Number, String],
40
+ y: [Number, String],
41
+ autoLocate: {
42
+ type: Boolean,
43
+ default: () => getConfig().contextMenu.autoLocate
44
+ },
45
+ zIndex: [Number, String],
46
+ position: {
47
+ type: String,
48
+ default: () => getConfig().contextMenu.position
49
+ },
50
+ destroyOnClose: {
51
+ type: Boolean,
52
+ default: () => getConfig().contextMenu.destroyOnClose
53
+ },
54
+ transfer: {
55
+ type: Boolean,
56
+ default: () => getConfig().contextMenu.transfer
57
+ }
51
58
  },
52
- transfer: {
53
- type: Boolean,
54
- default: () => getConfig().contextMenu.transfer
55
- }
56
- },
57
- emits: ["update:modelValue", "option-click", "change", "show", "hide"],
58
- setup(props, context) {
59
- const { emit } = context;
60
- const xID = XEUtils.uniqueId();
61
- const refElem = ref();
62
- const { computeSize } = useFns.useSize(props);
63
- const internalData = createInternalData();
64
- const reactData = reactive(createReactData());
65
- const refMaps = {
66
- refElem
67
- };
68
- const computeMenuGroups = computed(() => {
69
- const { options } = props;
70
- return options || [];
71
- });
72
- const computeAllFirstMenuList = computed(() => {
73
- const menuGroups = computeMenuGroups.value;
74
- const firstList = [];
75
- for (let i = 0; i < menuGroups.length; i++) {
76
- const list = menuGroups[i];
77
- for (let j = 0; j < list.length; j++) {
78
- const firstItem = list[j];
79
- if (hasValidItem(firstItem)) {
80
- firstList.push(firstItem);
59
+ emits: ["update:modelValue", "option-click", "change", "show", "hide"],
60
+ setup(props, context) {
61
+ const { emit } = context;
62
+ const xID = XEUtils.uniqueId();
63
+ const refElem = ref();
64
+ const { computeSize } = useFns.useSize(props);
65
+ const internalData = createInternalData();
66
+ const reactData = reactive(createReactData());
67
+ const refMaps = {
68
+ refElem
69
+ };
70
+ const computeMenuGroups = computed(() => {
71
+ const { options } = props;
72
+ return options || [];
73
+ });
74
+ const computeAllFirstMenuList = computed(() => {
75
+ const menuGroups = computeMenuGroups.value;
76
+ const firstList = [];
77
+ for (let i = 0; i < menuGroups.length; i++) {
78
+ const list = menuGroups[i];
79
+ for (let j = 0; j < list.length; j++) {
80
+ const firstItem = list[j];
81
+ if (hasValidItem(firstItem)) {
82
+ firstList.push(firstItem);
83
+ }
81
84
  }
82
85
  }
83
- }
84
- return firstList;
85
- });
86
- const computeTopAndLeft = computed(() => {
87
- const { x, y } = props;
88
- return `${x}${y}`;
89
- });
90
- const computeMaps = {};
91
- const $xeContextMenu = {
92
- xID,
93
- props,
94
- context,
95
- reactData,
96
- getRefMaps: () => refMaps,
97
- getComputeMaps: () => computeMaps
98
- };
99
- const dispatchEvent = (type, params, evnt) => {
100
- emit(type, createEvent(evnt, { $contextMenu: $xeContextMenu }, params));
101
- };
102
- const emitModel = (value) => {
103
- emit("update:modelValue", value);
104
- };
105
- const openMenu = () => {
106
- const { modelValue } = props;
107
- const { visible } = reactData;
108
- const value = true;
109
- reactData.visible = value;
110
- handleLocate();
111
- updateZindex();
112
- if (modelValue !== value) {
113
- emitModel(value);
114
- dispatchEvent("change", { value }, null);
115
- }
116
- if (visible !== value) {
117
- dispatchEvent("show", { visible: value }, null);
118
- }
119
- return nextTick().then(() => {
120
- updateLocate();
86
+ return firstList;
121
87
  });
122
- };
123
- const closeMenu = () => {
124
- const { modelValue } = props;
125
- const { visible } = reactData;
126
- const value = false;
127
- reactData.visible = value;
128
- if (modelValue !== value) {
129
- emitModel(value);
130
- dispatchEvent("change", { value }, null);
131
- }
132
- if (visible !== value) {
133
- dispatchEvent("hide", { visible: value }, null);
134
- }
135
- return nextTick();
136
- };
137
- const handleLocate = () => {
138
- const { x, y } = props;
139
- const { popupStyle } = reactData;
140
- popupStyle.left = toCssUnit(x || 0);
141
- popupStyle.top = toCssUnit(y || 0);
142
- updateLocate();
143
- };
144
- const updateZindex = () => {
145
- const { zIndex, transfer } = props;
146
- const { popupStyle } = reactData;
147
- const menuZIndex = popupStyle.zIndex;
148
- if (zIndex) {
149
- popupStyle.zIndex = XEUtils.toNumber(zIndex);
150
- } else {
151
- if (menuZIndex < getLastZIndex()) {
152
- popupStyle.zIndex = transfer ? nextSubZIndex() : nextZIndex();
88
+ const computeTopAndLeft = computed(() => {
89
+ const { x, y } = props;
90
+ return `${x}${y}`;
91
+ });
92
+ const computeMaps = {};
93
+ const $xeContextMenu = {
94
+ xID,
95
+ props,
96
+ context,
97
+ reactData,
98
+ getRefMaps: () => refMaps,
99
+ getComputeMaps: () => computeMaps
100
+ };
101
+ const dispatchEvent = (type, params, evnt) => {
102
+ emit(type, createEvent(evnt, { $contextMenu: $xeContextMenu }, params));
103
+ };
104
+ const emitModel = (value) => {
105
+ emit("update:modelValue", value);
106
+ };
107
+ const openMenu = () => {
108
+ const { modelValue } = props;
109
+ const { visible } = reactData;
110
+ const value = true;
111
+ reactData.visible = value;
112
+ handleLocate();
113
+ updateZindex();
114
+ if (modelValue !== value) {
115
+ emitModel(value);
116
+ dispatchEvent("change", { value }, null);
153
117
  }
154
- }
155
- };
156
- const updateLocate = () => {
157
- const { autoLocate, position } = props;
158
- const { popupStyle } = reactData;
159
- if (autoLocate) {
160
- const wrapperEl = refElem.value;
161
- if (wrapperEl) {
162
- const { visibleWidth, visibleHeight } = getDomNode();
163
- const wrapperStyle = getComputedStyle(wrapperEl);
164
- const offsetTop = XEUtils.toNumber(wrapperStyle.top);
165
- const offsetLeft = XEUtils.toNumber(wrapperStyle.left);
166
- const wrapperWidth = wrapperEl.offsetWidth;
167
- const wrapperHeight = wrapperEl.offsetHeight;
168
- if (position === "absolute") {
169
- } else {
170
- if (offsetTop + wrapperHeight > visibleHeight) {
171
- popupStyle.top = `${Math.max(0, offsetTop - wrapperHeight)}px`;
172
- }
173
- if (offsetLeft + wrapperWidth > visibleWidth) {
174
- popupStyle.left = `${Math.max(0, offsetLeft - wrapperWidth)}px`;
175
- }
118
+ if (visible !== value) {
119
+ dispatchEvent("show", { visible: value }, null);
120
+ }
121
+ return nextTick().then(() => {
122
+ updateLocate();
123
+ });
124
+ };
125
+ const closeMenu = () => {
126
+ const { modelValue } = props;
127
+ const { visible } = reactData;
128
+ const value = false;
129
+ reactData.visible = value;
130
+ if (modelValue !== value) {
131
+ emitModel(value);
132
+ dispatchEvent("change", { value }, null);
133
+ }
134
+ if (visible !== value) {
135
+ dispatchEvent("hide", { visible: value }, null);
136
+ }
137
+ return nextTick();
138
+ };
139
+ const handleLocate = () => {
140
+ const { x, y } = props;
141
+ const { popupStyle } = reactData;
142
+ popupStyle.left = toCssUnit(x || 0);
143
+ popupStyle.top = toCssUnit(y || 0);
144
+ updateLocate();
145
+ };
146
+ const updateZindex = () => {
147
+ const { zIndex, transfer } = props;
148
+ const { popupStyle } = reactData;
149
+ const menuZIndex = popupStyle.zIndex;
150
+ if (zIndex) {
151
+ popupStyle.zIndex = XEUtils.toNumber(zIndex);
152
+ } else {
153
+ if (menuZIndex < getLastZIndex()) {
154
+ popupStyle.zIndex = transfer ? nextSubZIndex() : nextZIndex();
176
155
  }
177
156
  }
178
- }
179
- updateChildLocate();
180
- };
181
- const updateChildLocate = () => {
182
- const wrapperEl = refElem.value;
183
- if (wrapperEl) {
184
- const { visibleWidth } = getDomNode();
185
- const owSize = 4;
186
- const handleStyle = () => {
187
- const wrapperStyle = getComputedStyle(wrapperEl);
188
- const offsetLeft = XEUtils.toNumber(wrapperStyle.left);
189
- const wrapperWidth = wrapperEl.offsetWidth;
190
- const childEl = wrapperEl.querySelector(".vxe-context-menu--children-wrapper");
191
- const childWidth = childEl ? childEl.offsetWidth : wrapperWidth;
192
- if (offsetLeft + wrapperWidth > visibleWidth - childWidth) {
193
- reactData.childOffsetX = -childWidth + owSize;
194
- } else {
195
- reactData.childOffsetX = wrapperWidth - owSize;
157
+ };
158
+ const updateLocate = () => {
159
+ const { autoLocate, position } = props;
160
+ const { popupStyle } = reactData;
161
+ if (autoLocate) {
162
+ const wrapperEl = refElem.value;
163
+ if (wrapperEl) {
164
+ const { visibleWidth, visibleHeight } = getDomNode();
165
+ const wrapperStyle = getComputedStyle(wrapperEl);
166
+ const offsetTop = XEUtils.toNumber(wrapperStyle.top);
167
+ const offsetLeft = XEUtils.toNumber(wrapperStyle.left);
168
+ const wrapperWidth = wrapperEl.offsetWidth;
169
+ const wrapperHeight = wrapperEl.offsetHeight;
170
+ if (position === "absolute") {
171
+ } else {
172
+ if (offsetTop + wrapperHeight > visibleHeight) {
173
+ popupStyle.top = `${Math.max(0, offsetTop - wrapperHeight)}px`;
174
+ }
175
+ if (offsetLeft + wrapperWidth > visibleWidth) {
176
+ popupStyle.left = `${Math.max(0, offsetLeft - wrapperWidth)}px`;
177
+ }
178
+ }
196
179
  }
197
- };
198
- handleStyle();
199
- nextTick(() => {
180
+ }
181
+ updateChildLocate();
182
+ };
183
+ const updateChildLocate = () => {
184
+ const wrapperEl = refElem.value;
185
+ if (wrapperEl) {
186
+ const { visibleWidth } = getDomNode();
187
+ const owSize = 4;
188
+ const handleStyle = () => {
189
+ const wrapperStyle = getComputedStyle(wrapperEl);
190
+ const offsetLeft = XEUtils.toNumber(wrapperStyle.left);
191
+ const wrapperWidth = wrapperEl.offsetWidth;
192
+ const childEl = wrapperEl.querySelector(".vxe-context-menu--children-wrapper");
193
+ const childWidth = childEl ? childEl.offsetWidth : wrapperWidth;
194
+ if (offsetLeft + wrapperWidth > visibleWidth - childWidth) {
195
+ reactData.childOffsetX = -childWidth + owSize;
196
+ } else {
197
+ reactData.childOffsetX = wrapperWidth - owSize;
198
+ }
199
+ };
200
200
  handleStyle();
201
- });
202
- }
203
- };
204
- const handleVisible = () => {
205
- const { modelValue } = props;
206
- if (modelValue) {
207
- openMenu();
208
- } else {
209
- closeMenu();
210
- }
211
- };
212
- const tagMethods = {
213
- dispatchEvent,
214
- open: openMenu,
215
- close: closeMenu
216
- };
217
- const hasChildMenu = (item) => {
218
- const { children } = item;
219
- return children && children.some((child) => child.visible !== false);
220
- };
221
- const handleItemClickEvent = (evnt, item) => {
222
- evnt.preventDefault();
223
- evnt.stopPropagation();
224
- if (!item.disabled && !item.loading && !hasChildMenu(item)) {
225
- dispatchEvent("option-click", { option: item }, evnt);
226
- closeMenu();
227
- }
228
- };
229
- const handleItemMouseenterEvent = (evnt, item, parentitem) => {
230
- const { leaveTime } = internalData;
231
- if (leaveTime) {
232
- clearTimeout(leaveTime);
233
- }
234
- reactData.activeOption = parentitem || item;
235
- if (parentitem) {
236
- reactData.activeOption = parentitem;
237
- reactData.activeChildOption = item;
238
- } else {
239
- reactData.activeOption = item;
240
- if (hasChildMenu(item)) {
241
- reactData.activeChildOption = findFirstChildItem(item);
242
201
  nextTick(() => {
243
- updateChildLocate();
202
+ handleStyle();
244
203
  });
204
+ }
205
+ };
206
+ const handleVisible = () => {
207
+ const { modelValue } = props;
208
+ if (modelValue) {
209
+ openMenu();
245
210
  } else {
246
- reactData.activeChildOption = null;
211
+ closeMenu();
247
212
  }
248
- }
249
- };
250
- const handleItemMouseleaveEvent = () => {
251
- const { leaveTime } = internalData;
252
- if (leaveTime) {
253
- clearTimeout(leaveTime);
254
- }
255
- internalData.leaveTime = setTimeout(() => {
256
- internalData.leaveTime = null;
257
- reactData.activeOption = null;
258
- reactData.activeChildOption = null;
259
- }, 300);
260
- };
261
- const hasValidItem = (item) => {
262
- return !item.loading && !item.disabled && item.visible !== false;
263
- };
264
- const findNextFirstItem = (allFirstList, firstItem) => {
265
- for (let i = 0; i < allFirstList.length; i++) {
266
- const item = allFirstList[i];
267
- if (firstItem === item) {
268
- const nextItem = allFirstList[i + 1];
269
- if (nextItem) {
270
- return nextItem;
271
- }
213
+ };
214
+ const tagMethods = {
215
+ dispatchEvent,
216
+ open: openMenu,
217
+ close: closeMenu
218
+ };
219
+ const hasChildMenu = (item) => {
220
+ const { children } = item;
221
+ return children && children.some((child) => child.visible !== false);
222
+ };
223
+ const handleItemClickEvent = (evnt, item) => {
224
+ evnt.preventDefault();
225
+ evnt.stopPropagation();
226
+ if (!item.disabled && !item.loading && !hasChildMenu(item)) {
227
+ dispatchEvent("option-click", { option: item }, evnt);
228
+ closeMenu();
272
229
  }
273
- }
274
- return XEUtils.first(allFirstList);
275
- };
276
- const findPrevFirstItem = (allFirstList, firstItem) => {
277
- for (let i = 0; i < allFirstList.length; i++) {
278
- const item = allFirstList[i];
279
- if (firstItem === item) {
280
- if (i > 0) {
281
- return allFirstList[i - 1];
282
- }
230
+ };
231
+ const handleItemMouseenterEvent = (evnt, item, parentitem) => {
232
+ const { leaveTime } = internalData;
233
+ if (leaveTime) {
234
+ clearTimeout(leaveTime);
283
235
  }
284
- }
285
- return XEUtils.last(allFirstList);
286
- };
287
- const findFirstChildItem = (firstItem) => {
288
- const { children } = firstItem;
289
- if (children) {
290
- for (let i = 0; i < children.length; i++) {
291
- const item = children[i];
292
- if (hasValidItem(item)) {
293
- return item;
236
+ reactData.activeOption = parentitem || item;
237
+ if (parentitem) {
238
+ reactData.activeOption = parentitem;
239
+ reactData.activeChildOption = item;
240
+ } else {
241
+ reactData.activeOption = item;
242
+ if (hasChildMenu(item)) {
243
+ reactData.activeChildOption = findFirstChildItem(item);
244
+ nextTick(() => {
245
+ updateChildLocate();
246
+ });
247
+ } else {
248
+ reactData.activeChildOption = null;
294
249
  }
295
250
  }
296
- }
297
- return null;
298
- };
299
- const findPrevChildItem = (firstItem, childItem) => {
300
- const { children } = firstItem;
301
- let prevValidItem = null;
302
- if (children) {
303
- for (let i = 0; i < children.length; i++) {
304
- const item = children[i];
305
- if (childItem === item) {
306
- break;
251
+ };
252
+ const handleItemMouseleaveEvent = () => {
253
+ const { leaveTime } = internalData;
254
+ if (leaveTime) {
255
+ clearTimeout(leaveTime);
256
+ }
257
+ internalData.leaveTime = setTimeout(() => {
258
+ internalData.leaveTime = null;
259
+ reactData.activeOption = null;
260
+ reactData.activeChildOption = null;
261
+ }, 300);
262
+ };
263
+ const hasValidItem = (item) => {
264
+ return !item.loading && !item.disabled && item.visible !== false;
265
+ };
266
+ const findNextFirstItem = (allFirstList, firstItem) => {
267
+ for (let i = 0; i < allFirstList.length; i++) {
268
+ const item = allFirstList[i];
269
+ if (firstItem === item) {
270
+ const nextItem = allFirstList[i + 1];
271
+ if (nextItem) {
272
+ return nextItem;
273
+ }
307
274
  }
308
- if (hasValidItem(item)) {
309
- prevValidItem = item;
275
+ }
276
+ return XEUtils.first(allFirstList);
277
+ };
278
+ const findPrevFirstItem = (allFirstList, firstItem) => {
279
+ for (let i = 0; i < allFirstList.length; i++) {
280
+ const item = allFirstList[i];
281
+ if (firstItem === item) {
282
+ if (i > 0) {
283
+ return allFirstList[i - 1];
284
+ }
310
285
  }
311
286
  }
312
- if (!prevValidItem) {
313
- for (let len = children.length - 1; len >= 0; len--) {
314
- const item = children[len];
287
+ return XEUtils.last(allFirstList);
288
+ };
289
+ const findFirstChildItem = (firstItem) => {
290
+ const { children } = firstItem;
291
+ if (children) {
292
+ for (let i = 0; i < children.length; i++) {
293
+ const item = children[i];
315
294
  if (hasValidItem(item)) {
316
295
  return item;
317
296
  }
318
297
  }
319
298
  }
320
- }
321
- return prevValidItem;
322
- };
323
- const findNextChildItem = (firstItem, childItem) => {
324
- const { children } = firstItem;
325
- let firstValidItem = null;
326
- if (children) {
327
- let isMetch = false;
328
- for (let i = 0; i < children.length; i++) {
329
- const item = children[i];
330
- if (!firstValidItem) {
299
+ return null;
300
+ };
301
+ const findPrevChildItem = (firstItem, childItem) => {
302
+ const { children } = firstItem;
303
+ let prevValidItem = null;
304
+ if (children) {
305
+ for (let i = 0; i < children.length; i++) {
306
+ const item = children[i];
307
+ if (childItem === item) {
308
+ break;
309
+ }
331
310
  if (hasValidItem(item)) {
332
- firstValidItem = item;
311
+ prevValidItem = item;
333
312
  }
334
313
  }
335
- if (isMetch) {
336
- if (hasValidItem(item)) {
337
- return item;
314
+ if (!prevValidItem) {
315
+ for (let len = children.length - 1; len >= 0; len--) {
316
+ const item = children[len];
317
+ if (hasValidItem(item)) {
318
+ return item;
319
+ }
338
320
  }
339
- } else {
340
- isMetch = childItem === item;
341
321
  }
342
322
  }
343
- }
344
- return firstValidItem;
345
- };
346
- const handleGlobalMousewheelEvent = (evnt) => {
347
- const { visible } = reactData;
348
- if (visible) {
349
- const el = refElem.value;
350
- if (!getEventTargetNode(evnt, el, "").flag) {
351
- closeMenu();
352
- }
353
- }
354
- };
355
- const handleGlobalKeydownEvent = (evnt) => {
356
- const { visible, activeOption, activeChildOption } = reactData;
357
- const allFirstMenuList = computeAllFirstMenuList.value;
358
- if (visible) {
359
- const isUpArrow = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ARROW_UP);
360
- const isDwArrow = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ARROW_DOWN);
361
- const isLeftArrow = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ARROW_LEFT);
362
- const isRightArrow = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ARROW_RIGHT);
363
- const isEnter = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ENTER);
364
- const isEsc = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ESCAPE);
365
- if (isEsc) {
366
- closeMenu();
367
- return;
368
- }
369
- if (isEnter) {
370
- if (activeOption || activeChildOption) {
371
- evnt.preventDefault();
372
- evnt.stopPropagation();
373
- if (!activeChildOption && hasChildMenu(activeOption)) {
374
- reactData.activeChildOption = findFirstChildItem(activeOption);
375
- updateChildLocate();
376
- return;
323
+ return prevValidItem;
324
+ };
325
+ const findNextChildItem = (firstItem, childItem) => {
326
+ const { children } = firstItem;
327
+ let firstValidItem = null;
328
+ if (children) {
329
+ let isMetch = false;
330
+ for (let i = 0; i < children.length; i++) {
331
+ const item = children[i];
332
+ if (!firstValidItem) {
333
+ if (hasValidItem(item)) {
334
+ firstValidItem = item;
335
+ }
336
+ }
337
+ if (isMetch) {
338
+ if (hasValidItem(item)) {
339
+ return item;
340
+ }
341
+ } else {
342
+ isMetch = childItem === item;
377
343
  }
378
- handleItemClickEvent(evnt, activeChildOption || activeOption);
379
- return;
380
344
  }
381
345
  }
382
- if (activeChildOption) {
383
- if (isUpArrow) {
384
- evnt.preventDefault();
385
- reactData.activeChildOption = findPrevChildItem(activeOption, activeChildOption);
386
- updateChildLocate();
387
- } else if (isDwArrow) {
388
- evnt.preventDefault();
389
- reactData.activeChildOption = findNextChildItem(activeOption, activeChildOption);
390
- updateChildLocate();
391
- } else if (isLeftArrow) {
392
- evnt.preventDefault();
393
- reactData.activeChildOption = null;
346
+ return firstValidItem;
347
+ };
348
+ const handleGlobalMousewheelEvent = (evnt) => {
349
+ const { visible } = reactData;
350
+ if (visible) {
351
+ const el = refElem.value;
352
+ if (!getEventTargetNode(evnt, el, "").flag) {
353
+ closeMenu();
394
354
  }
395
- } else if (activeOption) {
396
- evnt.preventDefault();
397
- if (isUpArrow) {
398
- reactData.activeOption = findPrevFirstItem(allFirstMenuList, activeOption);
399
- } else if (isDwArrow) {
400
- reactData.activeOption = findNextFirstItem(allFirstMenuList, activeOption);
401
- } else {
402
- if (hasChildMenu(activeOption)) {
403
- if (isRightArrow) {
355
+ }
356
+ };
357
+ const handleGlobalKeydownEvent = (evnt) => {
358
+ const { visible, activeOption, activeChildOption } = reactData;
359
+ const allFirstMenuList = computeAllFirstMenuList.value;
360
+ if (visible) {
361
+ const isUpArrow = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ARROW_UP);
362
+ const isDwArrow = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ARROW_DOWN);
363
+ const isLeftArrow = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ARROW_LEFT);
364
+ const isRightArrow = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ARROW_RIGHT);
365
+ const isEnter = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ENTER);
366
+ const isEsc = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ESCAPE);
367
+ if (isEsc) {
368
+ closeMenu();
369
+ return;
370
+ }
371
+ if (isEnter) {
372
+ if (activeOption || activeChildOption) {
373
+ evnt.preventDefault();
374
+ evnt.stopPropagation();
375
+ if (!activeChildOption && hasChildMenu(activeOption)) {
404
376
  reactData.activeChildOption = findFirstChildItem(activeOption);
405
377
  updateChildLocate();
378
+ return;
406
379
  }
380
+ handleItemClickEvent(evnt, activeChildOption || activeOption);
381
+ return;
407
382
  }
408
383
  }
409
- } else {
410
- evnt.preventDefault();
411
- reactData.activeOption = XEUtils.first(allFirstMenuList);
384
+ if (activeChildOption) {
385
+ if (isUpArrow) {
386
+ evnt.preventDefault();
387
+ reactData.activeChildOption = findPrevChildItem(activeOption, activeChildOption);
388
+ updateChildLocate();
389
+ } else if (isDwArrow) {
390
+ evnt.preventDefault();
391
+ reactData.activeChildOption = findNextChildItem(activeOption, activeChildOption);
392
+ updateChildLocate();
393
+ } else if (isLeftArrow) {
394
+ evnt.preventDefault();
395
+ reactData.activeChildOption = null;
396
+ }
397
+ } else if (activeOption) {
398
+ evnt.preventDefault();
399
+ if (isUpArrow) {
400
+ reactData.activeOption = findPrevFirstItem(allFirstMenuList, activeOption);
401
+ } else if (isDwArrow) {
402
+ reactData.activeOption = findNextFirstItem(allFirstMenuList, activeOption);
403
+ } else {
404
+ if (hasChildMenu(activeOption)) {
405
+ if (isRightArrow) {
406
+ reactData.activeChildOption = findFirstChildItem(activeOption);
407
+ updateChildLocate();
408
+ }
409
+ }
410
+ }
411
+ } else {
412
+ evnt.preventDefault();
413
+ reactData.activeOption = XEUtils.first(allFirstMenuList);
414
+ }
412
415
  }
413
- }
414
- };
415
- const handleGlobalMousedownEvent = (evnt) => {
416
- const { visible } = reactData;
417
- if (visible) {
418
- const el = refElem.value;
419
- if (!getEventTargetNode(evnt, el, "").flag) {
416
+ };
417
+ const handleGlobalMousedownEvent = (evnt) => {
418
+ const { visible } = reactData;
419
+ if (visible) {
420
+ const el = refElem.value;
421
+ if (!getEventTargetNode(evnt, el, "").flag) {
422
+ closeMenu();
423
+ }
424
+ }
425
+ };
426
+ const handleGlobalBlurEvent = () => {
427
+ const { visible } = reactData;
428
+ if (visible) {
420
429
  closeMenu();
421
430
  }
422
- }
423
- };
424
- const handleGlobalBlurEvent = () => {
425
- const { visible } = reactData;
426
- if (visible) {
427
- closeMenu();
428
- }
429
- };
430
- const tagPrivateMethods = {};
431
- Object.assign($xeContextMenu, tagMethods, tagPrivateMethods);
432
- const renderMenuItem = (item, parentItem, hasChildMenus) => {
433
- const { visible, disabled, loading } = item;
434
- if (visible === false) {
435
- return renderEmptyElement($xeContextMenu);
436
- }
437
- const prefixOpts = Object.assign({}, item.prefixConfig);
438
- const prefixIcon = prefixOpts.icon || item.prefixIcon;
439
- const suffixOpts = Object.assign({}, item.suffixConfig);
440
- const suffixIcon = suffixOpts.icon || item.suffixIcon;
441
- const menuContent = loading ? getI18n("vxe.contextMenu.loadingText") : getFuncText(item.name);
442
- return h(
443
- "div",
444
- {
445
- class: [
446
- "vxe-context-menu--item-inner",
447
- {
448
- "is--disabled": disabled,
449
- "is--loading": loading
450
- }
451
- ],
452
- onClick(evnt) {
453
- handleItemClickEvent(evnt, item);
454
- },
455
- onMouseenter(evnt) {
456
- handleItemMouseenterEvent(evnt, item, parentItem);
457
- },
458
- onMouseleave: handleItemMouseleaveEvent
459
- },
460
- [
461
- h(
462
- "div",
463
- {
464
- class: ["vxe-context-menu--item-prefix", prefixOpts.className || ""]
465
- },
466
- loading ? [
467
- h(
468
- "span",
469
- {
470
- key: "1"
471
- },
472
- [
473
- h("i", {
474
- class: getIcon().CONTEXT_MENU_OPTION_LOADING
475
- })
476
- ]
477
- )
478
- ] : [
479
- prefixIcon && XEUtils.isFunction(prefixIcon) ? h(
480
- "span",
481
- {
482
- key: "2"
483
- },
484
- getSlotVNs(prefixIcon({}))
485
- ) : h(
486
- "span",
487
- {
488
- key: "3"
489
- },
490
- [
491
- h("i", {
492
- class: prefixIcon
493
- })
494
- ]
495
- ),
496
- prefixOpts.content ? h(
497
- "span",
498
- {
499
- key: "4"
500
- },
501
- `${prefixOpts.content || ""}`
502
- ) : renderEmptyElement($xeContextMenu)
503
- ]
504
- ),
505
- h(
506
- "div",
507
- {
508
- class: "vxe-context-menu--item-label"
509
- },
510
- menuContent
511
- ),
512
- !loading && (suffixIcon || suffixOpts.content) ? h(
513
- "div",
514
- {
515
- class: ["vxe-context-menu--item-suffix", suffixOpts.className || ""]
431
+ };
432
+ const tagPrivateMethods = {};
433
+ Object.assign($xeContextMenu, tagMethods, tagPrivateMethods);
434
+ const renderMenuItem = (item, parentItem, hasChildMenus) => {
435
+ const { visible, disabled, loading } = item;
436
+ if (visible === false) {
437
+ return renderEmptyElement($xeContextMenu);
438
+ }
439
+ const prefixOpts = Object.assign({}, item.prefixConfig);
440
+ const prefixIcon = prefixOpts.icon || item.prefixIcon;
441
+ const suffixOpts = Object.assign({}, item.suffixConfig);
442
+ const suffixIcon = suffixOpts.icon || item.suffixIcon;
443
+ const menuContent = loading ? getI18n("vxe.contextMenu.loadingText") : getFuncText(item.name);
444
+ return h(
445
+ "div",
446
+ {
447
+ class: [
448
+ "vxe-context-menu--item-inner",
449
+ {
450
+ "is--disabled": disabled,
451
+ "is--loading": loading
452
+ }
453
+ ],
454
+ onClick(evnt) {
455
+ handleItemClickEvent(evnt, item);
516
456
  },
517
- [
518
- suffixIcon && XEUtils.isFunction(suffixIcon) ? h(
519
- "span",
520
- {
521
- key: "2"
522
- },
523
- getSlotVNs(suffixIcon({}))
524
- ) : h(
525
- "span",
526
- {
527
- key: "3"
528
- },
529
- [
530
- h("i", {
531
- class: suffixIcon
532
- })
533
- ]
534
- ),
535
- suffixOpts.content ? h(
536
- "span",
537
- {
538
- key: "4"
539
- },
540
- `${suffixOpts.content || ""}`
541
- ) : renderEmptyElement($xeContextMenu)
542
- ]
543
- ) : renderEmptyElement($xeContextMenu),
544
- hasChildMenus ? h(
545
- "div",
546
- {
547
- class: "vxe-context-menu--item-subicon"
457
+ onMouseenter(evnt) {
458
+ handleItemMouseenterEvent(evnt, item, parentItem);
548
459
  },
549
- [
550
- h("i", {
551
- class: getIcon().CONTEXT_MENU_CHILDREN
552
- })
553
- ]
554
- ) : renderEmptyElement($xeContextMenu)
555
- ]
556
- );
557
- };
558
- const renderMenus = () => {
559
- const { activeOption, activeChildOption, childOffsetX } = reactData;
560
- const menuGroups = computeMenuGroups.value;
561
- const mgVNs = [];
562
- menuGroups.forEach((menuList, gIndex) => {
563
- const moVNs = [];
564
- menuList.forEach((firstItem, i) => {
565
- const { children } = firstItem;
566
- const hasChildMenus = children && children.some((child) => child.visible !== false);
567
- const isActiveFirst = activeOption === firstItem;
568
- const showChild = isActiveFirst && !!activeChildOption;
569
- moVNs.push(
460
+ onMouseleave: handleItemMouseleaveEvent
461
+ },
462
+ [
570
463
  h(
571
464
  "div",
572
465
  {
573
- key: `${gIndex}_${i}`,
574
- class: [
575
- "vxe-context-menu--item-wrapper vxe-context-menu--first-item",
576
- firstItem.className || "",
466
+ class: ["vxe-context-menu--item-prefix", prefixOpts.className || ""]
467
+ },
468
+ loading ? [
469
+ h(
470
+ "span",
577
471
  {
578
- "is--active": isActiveFirst,
579
- "is--subactive": isActiveFirst && !!activeChildOption
580
- }
581
- ]
472
+ key: "1"
473
+ },
474
+ [
475
+ h("i", {
476
+ class: getIcon().CONTEXT_MENU_OPTION_LOADING
477
+ })
478
+ ]
479
+ )
480
+ ] : [
481
+ prefixIcon && XEUtils.isFunction(prefixIcon) ? h(
482
+ "span",
483
+ {
484
+ key: "2"
485
+ },
486
+ getSlotVNs(prefixIcon({}))
487
+ ) : h(
488
+ "span",
489
+ {
490
+ key: "3"
491
+ },
492
+ [
493
+ h("i", {
494
+ class: prefixIcon
495
+ })
496
+ ]
497
+ ),
498
+ prefixOpts.content ? h(
499
+ "span",
500
+ {
501
+ key: "4"
502
+ },
503
+ `${prefixOpts.content || ""}`
504
+ ) : renderEmptyElement($xeContextMenu)
505
+ ]
506
+ ),
507
+ h(
508
+ "div",
509
+ {
510
+ class: "vxe-context-menu--item-label"
511
+ },
512
+ menuContent
513
+ ),
514
+ !loading && (suffixIcon || suffixOpts.content) ? h(
515
+ "div",
516
+ {
517
+ class: ["vxe-context-menu--item-suffix", suffixOpts.className || ""]
582
518
  },
583
519
  [
584
- hasChildMenus && showChild ? h(
585
- "div",
520
+ suffixIcon && XEUtils.isFunction(suffixIcon) ? h(
521
+ "span",
586
522
  {
587
- class: "vxe-context-menu--children-wrapper",
588
- style: {
589
- transform: `translate(${childOffsetX}px, -2px)`
590
- }
523
+ key: "2"
524
+ },
525
+ getSlotVNs(suffixIcon({}))
526
+ ) : h(
527
+ "span",
528
+ {
529
+ key: "3"
591
530
  },
592
- children.map((twoItem) => {
593
- return h(
594
- "div",
595
- {
596
- class: [
597
- "vxe-context-menu--item-wrapper vxe-context-menu--child-item",
598
- twoItem.className || "",
599
- {
600
- "is--active": activeChildOption === twoItem
601
- }
602
- ]
603
- },
604
- [renderMenuItem(twoItem, firstItem)]
605
- );
606
- })
607
- ) : renderEmptyElement($xeContextMenu),
608
- renderMenuItem(firstItem, null, hasChildMenus)
531
+ [
532
+ h("i", {
533
+ class: suffixIcon
534
+ })
535
+ ]
536
+ ),
537
+ suffixOpts.content ? h(
538
+ "span",
539
+ {
540
+ key: "4"
541
+ },
542
+ `${suffixOpts.content || ""}`
543
+ ) : renderEmptyElement($xeContextMenu)
544
+ ]
545
+ ) : renderEmptyElement($xeContextMenu),
546
+ hasChildMenus ? h(
547
+ "div",
548
+ {
549
+ class: "vxe-context-menu--item-subicon"
550
+ },
551
+ [
552
+ h("i", {
553
+ class: getIcon().CONTEXT_MENU_CHILDREN
554
+ })
609
555
  ]
556
+ ) : renderEmptyElement($xeContextMenu)
557
+ ]
558
+ );
559
+ };
560
+ const renderMenus = () => {
561
+ const { activeOption, activeChildOption, childOffsetX } = reactData;
562
+ const menuGroups = computeMenuGroups.value;
563
+ const mgVNs = [];
564
+ menuGroups.forEach((menuList, gIndex) => {
565
+ const moVNs = [];
566
+ menuList.forEach((firstItem, i) => {
567
+ const { children } = firstItem;
568
+ const hasChildMenus = children && children.some((child) => child.visible !== false);
569
+ const isActiveFirst = activeOption === firstItem;
570
+ const showChild = isActiveFirst && !!activeChildOption;
571
+ moVNs.push(
572
+ h(
573
+ "div",
574
+ {
575
+ key: `${gIndex}_${i}`,
576
+ class: [
577
+ "vxe-context-menu--item-wrapper vxe-context-menu--first-item",
578
+ firstItem.className || "",
579
+ {
580
+ "is--active": isActiveFirst,
581
+ "is--subactive": isActiveFirst && !!activeChildOption
582
+ }
583
+ ]
584
+ },
585
+ [
586
+ hasChildMenus && showChild ? h(
587
+ "div",
588
+ {
589
+ class: "vxe-context-menu--children-wrapper",
590
+ style: {
591
+ transform: `translate(${childOffsetX}px, -2px)`
592
+ }
593
+ },
594
+ children.map((twoItem) => {
595
+ return h(
596
+ "div",
597
+ {
598
+ class: [
599
+ "vxe-context-menu--item-wrapper vxe-context-menu--child-item",
600
+ twoItem.className || "",
601
+ {
602
+ "is--active": activeChildOption === twoItem
603
+ }
604
+ ]
605
+ },
606
+ [renderMenuItem(twoItem, firstItem)]
607
+ );
608
+ })
609
+ ) : renderEmptyElement($xeContextMenu),
610
+ renderMenuItem(firstItem, null, hasChildMenus)
611
+ ]
612
+ )
613
+ );
614
+ });
615
+ mgVNs.push(
616
+ h(
617
+ "div",
618
+ {
619
+ key: gIndex,
620
+ class: "vxe-context-menu--group-wrapper"
621
+ },
622
+ moVNs
610
623
  )
611
624
  );
612
625
  });
613
- mgVNs.push(
614
- h(
615
- "div",
616
- {
617
- key: gIndex,
618
- class: "vxe-context-menu--group-wrapper"
619
- },
620
- moVNs
621
- )
626
+ return mgVNs;
627
+ };
628
+ const renderVN = () => {
629
+ const { className, position, destroyOnClose } = props;
630
+ const { visible, popupStyle } = reactData;
631
+ const vSize = computeSize.value;
632
+ return h(
633
+ "div",
634
+ {
635
+ ref: refElem,
636
+ class: [
637
+ "vxe-context-menu vxe-context-menu--wrapper",
638
+ position === "absolute" ? "is--" + position : "is--fixed",
639
+ className || "",
640
+ {
641
+ [`size--${vSize}`]: vSize,
642
+ "is--visible": visible
643
+ }
644
+ ],
645
+ style: popupStyle
646
+ },
647
+ (destroyOnClose ? visible : true) ? renderMenus() : []
622
648
  );
649
+ };
650
+ watch(computeTopAndLeft, () => {
651
+ handleLocate();
652
+ nextTick(() => {
653
+ updateLocate();
654
+ });
623
655
  });
624
- return mgVNs;
625
- };
626
- const renderVN = () => {
627
- const { className, position, destroyOnClose } = props;
628
- const { visible, popupStyle } = reactData;
629
- const vSize = computeSize.value;
630
- return h(
631
- "div",
632
- {
633
- ref: refElem,
634
- class: [
635
- "vxe-context-menu vxe-context-menu--wrapper",
636
- position === "absolute" ? "is--" + position : "is--fixed",
637
- className || "",
638
- {
639
- [`size--${vSize}`]: vSize,
640
- "is--visible": visible
641
- }
642
- ],
643
- style: popupStyle
644
- },
645
- (destroyOnClose ? visible : true) ? renderMenus() : []
656
+ watch(
657
+ () => props.modelValue,
658
+ () => {
659
+ handleVisible();
660
+ }
646
661
  );
647
- };
648
- watch(computeTopAndLeft, () => {
649
- handleLocate();
650
- nextTick(() => {
651
- updateLocate();
662
+ handleVisible();
663
+ onMounted(() => {
664
+ globalEvents.on($xeContextMenu, "mousewheel", handleGlobalMousewheelEvent);
665
+ globalEvents.on($xeContextMenu, "keydown", handleGlobalKeydownEvent);
666
+ globalEvents.on($xeContextMenu, "mousedown", handleGlobalMousedownEvent);
667
+ globalEvents.on($xeContextMenu, "blur", handleGlobalBlurEvent);
652
668
  });
653
- });
654
- watch(
655
- () => props.modelValue,
656
- () => {
657
- handleVisible();
658
- }
659
- );
660
- handleVisible();
661
- onMounted(() => {
662
- globalEvents.on($xeContextMenu, "mousewheel", handleGlobalMousewheelEvent);
663
- globalEvents.on($xeContextMenu, "keydown", handleGlobalKeydownEvent);
664
- globalEvents.on($xeContextMenu, "mousedown", handleGlobalMousedownEvent);
665
- globalEvents.on($xeContextMenu, "blur", handleGlobalBlurEvent);
666
- });
667
- onBeforeUnmount(() => {
668
- const { leaveTime } = internalData;
669
- if (leaveTime) {
670
- clearTimeout(leaveTime);
671
- }
672
- globalEvents.off($xeContextMenu, "mousewheel");
673
- globalEvents.off($xeContextMenu, "keydown");
674
- globalEvents.off($xeContextMenu, "mousedown");
675
- globalEvents.off($xeContextMenu, "blur");
676
- XEUtils.assign(reactData, createReactData());
677
- XEUtils.assign(internalData, createInternalData());
678
- });
679
- $xeContextMenu.renderVN = renderVN;
680
- return $xeContextMenu;
681
- },
682
- render() {
683
- return this.renderVN();
684
- }
685
- });
669
+ onBeforeUnmount(() => {
670
+ const { leaveTime } = internalData;
671
+ if (leaveTime) {
672
+ clearTimeout(leaveTime);
673
+ }
674
+ globalEvents.off($xeContextMenu, "mousewheel");
675
+ globalEvents.off($xeContextMenu, "keydown");
676
+ globalEvents.off($xeContextMenu, "mousedown");
677
+ globalEvents.off($xeContextMenu, "blur");
678
+ XEUtils.assign(reactData, createReactData());
679
+ XEUtils.assign(internalData, createInternalData());
680
+ });
681
+ $xeContextMenu.renderVN = renderVN;
682
+ return $xeContextMenu;
683
+ },
684
+ render() {
685
+ return this.renderVN();
686
+ }
687
+ })
688
+ );
686
689
  export {
687
690
  context_menu_default as default
688
691
  };