ele-admin-plus 1.2.1-beta.2 → 1.2.1-beta.4

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 (572) hide show
  1. package/es/core-components.d.ts +1 -0
  2. package/es/core-components.js +60 -58
  3. package/es/ele-admin-layout/components/layout-tabs.d.ts +1 -6
  4. package/es/ele-admin-layout/components/layout-tabs.js +18 -76
  5. package/es/ele-admin-layout/index.d.ts +26 -30
  6. package/es/ele-admin-layout/index.js +7 -2
  7. package/es/ele-admin-layout/props.d.ts +11 -10
  8. package/es/ele-admin-layout/types.d.ts +2 -0
  9. package/es/ele-alert/index.d.ts +14 -14
  10. package/es/ele-alert/props.d.ts +9 -8
  11. package/es/ele-app/components/message-body.d.ts +5 -4
  12. package/es/ele-app/components/message-box-icon.d.ts +7 -6
  13. package/es/ele-app/el.d.ts +3 -0
  14. package/es/ele-app/plus.d.ts +21 -0
  15. package/es/ele-app/style/overwrite/css-var.scss +0 -2
  16. package/es/ele-app/style/overwrite/index.js +0 -1
  17. package/es/ele-app/style/overwrite/index.scss +0 -1
  18. package/es/ele-app/style/overwrite/input/index.scss +2 -0
  19. package/es/ele-app/style/scrollbar/css-var.scss +17 -16
  20. package/es/ele-app/types.d.ts +8 -1
  21. package/es/ele-avatar-group/index.d.ts +15 -14
  22. package/es/ele-avatar-group/props.d.ts +10 -7
  23. package/es/ele-basic-select/index.d.ts +19 -16
  24. package/es/ele-basic-select/index.js +14 -7
  25. package/es/ele-basic-select/props.d.ts +11 -6
  26. package/es/ele-basic-select/props.js +3 -1
  27. package/es/ele-basic-select/util.d.ts +6 -0
  28. package/es/ele-basic-select/util.js +13 -0
  29. package/es/ele-bottom-bar/index.d.ts +13 -6
  30. package/es/ele-bottom-bar/index.js +37 -15
  31. package/es/ele-bottom-bar/props.d.ts +5 -2
  32. package/es/ele-bottom-bar/props.js +3 -1
  33. package/es/ele-bottom-bar/style/index.scss +5 -0
  34. package/es/ele-breadcrumb/index.d.ts +3 -3
  35. package/es/ele-breadcrumb/props.d.ts +1 -1
  36. package/es/ele-card/index.d.ts +14 -14
  37. package/es/ele-card/props.d.ts +8 -6
  38. package/es/ele-check-card/components/card-item.d.ts +3 -2
  39. package/es/ele-check-card/index.d.ts +6 -6
  40. package/es/ele-check-card/index.js +8 -3
  41. package/es/ele-check-card/props.d.ts +3 -2
  42. package/es/ele-config-provider/index.d.ts +4 -4
  43. package/es/ele-config-provider/props.d.ts +3 -3
  44. package/es/ele-config-provider/types.d.ts +1 -0
  45. package/es/ele-copyable/index.d.ts +10 -10
  46. package/es/ele-copyable/props.d.ts +7 -5
  47. package/es/ele-count-up/index.d.ts +1 -1
  48. package/es/ele-cropper/components/cropper-tools.d.ts +12 -5
  49. package/es/ele-cropper/components/cropper-tools.js +41 -13
  50. package/es/ele-cropper/index.d.ts +6 -4
  51. package/es/ele-cropper/index.js +2 -1
  52. package/es/ele-cropper/props.d.ts +5 -2
  53. package/es/ele-cropper/props.js +2 -0
  54. package/es/ele-cropper/style/index.scss +3 -2
  55. package/es/ele-cropper/types.d.ts +16 -0
  56. package/es/ele-cropper-modal/index.d.ts +7 -5
  57. package/es/ele-cropper-modal/index.js +2 -1
  58. package/es/ele-cropper-modal/props.d.ts +2 -4
  59. package/es/ele-data-table/components/table-columns.d.ts +32 -0
  60. package/es/ele-data-table/components/table-columns.js +114 -0
  61. package/es/ele-data-table/index.d.ts +223 -41
  62. package/es/ele-data-table/index.js +202 -120
  63. package/es/ele-data-table/props.d.ts +22 -26
  64. package/es/ele-data-table/style/index.scss +1 -1
  65. package/es/ele-data-table/types.d.ts +2 -0
  66. package/es/ele-data-table/util.d.ts +1 -45
  67. package/es/ele-data-table/util.js +2 -106
  68. package/es/ele-drawer/index.d.ts +22 -22
  69. package/es/ele-drawer/props.d.ts +13 -12
  70. package/es/ele-dropdown/components/pro-dropdown.d.ts +237 -0
  71. package/es/ele-dropdown/components/pro-dropdown.js +204 -0
  72. package/es/ele-dropdown/index.d.ts +534 -48
  73. package/es/ele-dropdown/index.js +110 -25
  74. package/es/ele-dropdown/props.d.ts +120 -25
  75. package/es/ele-dropdown/props.js +54 -7
  76. package/es/ele-dropdown/style/index.js +4 -1
  77. package/es/ele-dropdown/style/index.scss +174 -6
  78. package/es/ele-edit-tag/index.d.ts +22 -20
  79. package/es/ele-edit-tag/index.js +10 -2
  80. package/es/ele-edit-tag/props.d.ts +13 -8
  81. package/es/ele-edit-tag/props.js +3 -1
  82. package/es/ele-ellipsis/index.d.ts +5 -4
  83. package/es/ele-ellipsis/props.d.ts +1 -1
  84. package/es/ele-file-list/components/file-grid-item.d.ts +11 -20
  85. package/es/ele-file-list/components/file-grid-item.js +19 -58
  86. package/es/ele-file-list/components/file-grid.d.ts +15 -19
  87. package/es/ele-file-list/components/file-grid.js +16 -39
  88. package/es/ele-file-list/components/file-table-item.d.ts +11 -20
  89. package/es/ele-file-list/components/file-table-item.js +19 -58
  90. package/es/ele-file-list/components/file-table.d.ts +15 -19
  91. package/es/ele-file-list/components/file-table.js +17 -37
  92. package/es/ele-file-list/index.d.ts +37 -16
  93. package/es/ele-file-list/index.js +118 -20
  94. package/es/ele-file-list/props.d.ts +4 -5
  95. package/es/ele-file-list/props.js +5 -8
  96. package/es/ele-file-list/style/index.scss +10 -5
  97. package/es/ele-file-list/types.d.ts +13 -1
  98. package/es/ele-icon-select/components/icon-grid.d.ts +9 -7
  99. package/es/ele-icon-select/index.d.ts +39 -38
  100. package/es/ele-icon-select/index.js +6 -2
  101. package/es/ele-icon-select/props.d.ts +18 -14
  102. package/es/ele-icon-select/props.js +2 -0
  103. package/es/ele-image-viewer/index.d.ts +120 -0
  104. package/es/ele-image-viewer/index.js +88 -0
  105. package/es/ele-image-viewer/props.d.ts +58 -0
  106. package/es/ele-image-viewer/props.js +35 -0
  107. package/es/ele-image-viewer/style/css-var.scss +8 -0
  108. package/es/ele-image-viewer/style/index.js +2 -0
  109. package/es/ele-image-viewer/style/index.scss +117 -0
  110. package/es/ele-loading/index.d.ts +4 -4
  111. package/es/ele-loading/props.d.ts +3 -2
  112. package/es/ele-map-picker/components/map-view.d.ts +8 -10
  113. package/es/ele-map-picker/components/map-view.js +1 -0
  114. package/es/ele-map-picker/index.d.ts +10 -10
  115. package/es/ele-map-picker/props.d.ts +6 -5
  116. package/es/ele-map-picker/style/index.scss +1 -1
  117. package/es/ele-menus/components/item-title.d.ts +48 -0
  118. package/es/ele-menus/components/item-title.js +108 -0
  119. package/es/ele-menus/components/menu-items.d.ts +78 -0
  120. package/es/ele-menus/components/menu-items.js +269 -0
  121. package/es/ele-menus/index.d.ts +79 -20
  122. package/es/ele-menus/index.js +280 -210
  123. package/es/ele-menus/props.d.ts +3 -3
  124. package/es/ele-menus/style/index.scss +4 -0
  125. package/es/ele-menus/util.d.ts +1 -62
  126. package/es/ele-menus/util.js +3 -244
  127. package/es/ele-modal/index.d.ts +33 -32
  128. package/es/ele-modal/index.js +30 -64
  129. package/es/ele-modal/props.d.ts +16 -15
  130. package/es/ele-modal/util.d.ts +32 -25
  131. package/es/ele-modal/util.js +239 -132
  132. package/es/ele-pagination/index.d.ts +18 -6
  133. package/es/ele-pagination/index.js +3 -2
  134. package/es/ele-pagination/props.d.ts +8 -2
  135. package/es/ele-pagination/style/index.scss +70 -0
  136. package/es/ele-popconfirm/index.d.ts +43 -46
  137. package/es/ele-popconfirm/props.d.ts +22 -21
  138. package/es/ele-popover/index.d.ts +33 -36
  139. package/es/ele-popover/props.d.ts +11 -11
  140. package/es/ele-popover/props.js +1 -1
  141. package/es/ele-printer/index.d.ts +8 -8
  142. package/es/ele-printer/props.d.ts +6 -5
  143. package/es/ele-printer/util.d.ts +5 -5
  144. package/es/ele-printer/util.js +68 -43
  145. package/es/ele-pro-layout/components/pro-iframe.d.ts +6 -6
  146. package/es/ele-pro-layout/components/pro-iframe.js +6 -4
  147. package/es/ele-pro-layout/index.d.ts +44 -48
  148. package/es/ele-pro-layout/index.js +13 -4
  149. package/es/ele-pro-layout/props.d.ts +19 -17
  150. package/es/ele-pro-layout/props.js +3 -3
  151. package/es/ele-pro-layout/types.d.ts +9 -5
  152. package/es/ele-pro-layout/util.d.ts +6 -0
  153. package/es/ele-pro-layout/util.js +12 -0
  154. package/es/ele-pro-table/components/table-tools.d.ts +405 -35
  155. package/es/ele-pro-table/components/table-tools.js +225 -143
  156. package/es/ele-pro-table/components/tool-column-list.d.ts +12 -0
  157. package/es/ele-pro-table/components/tool-column-list.js +33 -6
  158. package/es/ele-pro-table/components/tool-column.d.ts +7 -6
  159. package/es/ele-pro-table/components/tool-column.js +15 -9
  160. package/es/ele-pro-table/components/tool-export.d.ts +30 -27
  161. package/es/ele-pro-table/components/tool-export.js +204 -184
  162. package/es/ele-pro-table/components/tool-print-body-cell.d.ts +5 -4
  163. package/es/ele-pro-table/components/tool-print-body-cell.js +1 -1
  164. package/es/ele-pro-table/components/tool-print-header-cell.d.ts +5 -4
  165. package/es/ele-pro-table/components/tool-print-header-cell.js +3 -2
  166. package/es/ele-pro-table/components/tool-print.d.ts +38 -37
  167. package/es/ele-pro-table/components/tool-print.js +357 -336
  168. package/es/ele-pro-table/index.d.ts +1015 -89
  169. package/es/ele-pro-table/index.js +60 -14
  170. package/es/ele-pro-table/props.d.ts +24 -27
  171. package/es/ele-pro-table/props.js +4 -2
  172. package/es/ele-pro-table/style/index.scss +43 -12
  173. package/es/ele-pro-table/types.d.ts +54 -0
  174. package/es/ele-pro-table/util.d.ts +51 -9
  175. package/es/ele-pro-table/util.js +89 -28
  176. package/es/ele-qr-code/components/canvas-render.d.ts +67 -0
  177. package/es/ele-qr-code/components/canvas-render.js +147 -0
  178. package/es/ele-qr-code/index.d.ts +5 -9
  179. package/es/ele-qr-code/index.js +33 -136
  180. package/es/ele-qr-code/props.d.ts +5 -2
  181. package/es/ele-qr-code/props.js +3 -1
  182. package/es/ele-qr-code/types.d.ts +5 -0
  183. package/es/ele-qr-code-svg/index.d.ts +6 -5
  184. package/es/ele-qr-code-svg/index.js +11 -14
  185. package/es/ele-segmented/index.d.ts +3 -1
  186. package/es/ele-segmented/index.js +30 -3
  187. package/es/ele-segmented/style/index.scss +7 -1
  188. package/es/ele-split-panel/index.d.ts +7 -7
  189. package/es/ele-split-panel/props.d.ts +4 -3
  190. package/es/ele-steps/index.d.ts +10 -10
  191. package/es/ele-steps/props.d.ts +5 -5
  192. package/es/ele-tab-tool/index.d.ts +6 -1
  193. package/es/ele-tab-tool/index.js +44 -3
  194. package/es/ele-tab-tool/props.d.ts +2 -0
  195. package/es/ele-tab-tool/props.js +3 -1
  196. package/es/ele-tab-wrap/components/tab-dropdown.js +9 -26
  197. package/es/ele-tab-wrap/index.js +21 -2
  198. package/es/ele-table/index.d.ts +2 -2
  199. package/es/ele-table/props.d.ts +2 -1
  200. package/es/ele-table/style/index.scss +1 -2
  201. package/es/ele-table-select/index.d.ts +24 -22
  202. package/es/ele-table-select/index.js +5 -2
  203. package/es/ele-table-select/props.d.ts +11 -7
  204. package/es/ele-table-select/props.js +2 -0
  205. package/es/ele-tabs/index.d.ts +39 -52
  206. package/es/ele-tabs/index.js +290 -118
  207. package/es/ele-tabs/props.d.ts +11 -30
  208. package/es/ele-tabs/props.js +4 -2
  209. package/es/ele-tabs/style/index.scss +186 -170
  210. package/es/ele-tabs/types.d.ts +25 -11
  211. package/es/ele-text/index.d.ts +2 -2
  212. package/es/ele-text/props.d.ts +2 -1
  213. package/es/ele-tool/index.d.ts +5 -2
  214. package/es/ele-tool/index.js +5 -3
  215. package/es/ele-tool/props.d.ts +4 -1
  216. package/es/ele-tool/props.js +3 -1
  217. package/es/ele-tool/style/index.scss +13 -0
  218. package/es/ele-toolbar/index.d.ts +18 -18
  219. package/es/ele-toolbar/props.d.ts +4 -3
  220. package/es/ele-tooltip/index.d.ts +27 -26
  221. package/es/ele-tooltip/props.d.ts +9 -8
  222. package/es/ele-tooltip/style/css-var.scss +4 -0
  223. package/es/ele-tour/index.d.ts +1 -1
  224. package/es/ele-tree-select/index.d.ts +19 -19
  225. package/es/ele-tree-select/index.js +5 -2
  226. package/es/ele-tree-select/props.d.ts +12 -8
  227. package/es/ele-tree-select/props.js +3 -1
  228. package/es/ele-upload-list/components/list-item.d.ts +31 -5
  229. package/es/ele-upload-list/components/list-item.js +146 -66
  230. package/es/ele-upload-list/index.d.ts +57 -30
  231. package/es/ele-upload-list/index.js +180 -97
  232. package/es/ele-upload-list/props.d.ts +24 -10
  233. package/es/ele-upload-list/props.js +20 -8
  234. package/es/ele-upload-list/style/css-var.scss +8 -0
  235. package/es/ele-upload-list/style/index.js +1 -1
  236. package/es/ele-upload-list/style/index.scss +426 -132
  237. package/es/ele-upload-list/types.d.ts +35 -11
  238. package/es/ele-virtual-table/components/body-cell.d.ts +13 -29
  239. package/es/ele-virtual-table/components/body-row.d.ts +13 -29
  240. package/es/ele-virtual-table/components/cell-checkbox.d.ts +3 -2
  241. package/es/ele-virtual-table/components/cell-filter.d.ts +6 -6
  242. package/es/ele-virtual-table/components/footer-row.d.ts +3 -3
  243. package/es/ele-virtual-table/components/header-cell.d.ts +8 -8
  244. package/es/ele-virtual-table/components/header-row.d.ts +8 -8
  245. package/es/ele-virtual-table/index.d.ts +27 -36
  246. package/es/ele-virtual-table/index.js +8 -6
  247. package/es/ele-virtual-table/props.d.ts +13 -15
  248. package/es/ele-watermark/index.d.ts +5 -4
  249. package/es/ele-watermark/props.d.ts +2 -1
  250. package/es/ele-xg-player/index.d.ts +3 -3
  251. package/es/icons/CornerLeftFilled.d.ts +2 -0
  252. package/es/icons/CornerLeftFilled.js +26 -0
  253. package/es/icons/CornerRightFilled.d.ts +2 -0
  254. package/es/icons/CornerRightFilled.js +26 -0
  255. package/es/icons/EyeOutlined.d.ts +2 -0
  256. package/es/icons/EyeOutlined.js +30 -0
  257. package/es/icons/FileOutlined.js +4 -4
  258. package/es/icons/SizeCompactOutlined.d.ts +2 -0
  259. package/es/icons/SizeCompactOutlined.js +34 -0
  260. package/es/icons/SizeMiddleOutlined.d.ts +2 -0
  261. package/es/icons/SizeMiddleOutlined.js +34 -0
  262. package/es/icons/SizeSlackOutlined.d.ts +2 -0
  263. package/es/icons/SizeSlackOutlined.js +34 -0
  264. package/es/icons/index.d.ts +6 -0
  265. package/es/icons/index.js +162 -150
  266. package/es/lang/en_US.js +5 -1
  267. package/es/lang/zh_CN.js +5 -1
  268. package/es/lang/zh_TW.js +5 -1
  269. package/es/style/plus.scss +1 -0
  270. package/es/style/themes/default.scss +92 -9
  271. package/es/style/themes/rounded.scss +9 -5
  272. package/es/style/themes/theme-util.scss +4 -0
  273. package/es/style/util.scss +10 -3
  274. package/es/utils/core.d.ts +4 -2
  275. package/es/utils/hook.d.ts +77 -4
  276. package/es/utils/hook.js +159 -6
  277. package/es/utils/menu-util.js +11 -5
  278. package/es/utils/message-box.js +5 -1
  279. package/es/utils/message.js +2 -2
  280. package/lib/core-components.cjs +60 -58
  281. package/lib/core-components.d.ts +1 -0
  282. package/lib/ele-admin-layout/components/layout-tabs.cjs +17 -75
  283. package/lib/ele-admin-layout/components/layout-tabs.d.ts +1 -6
  284. package/lib/ele-admin-layout/index.cjs +7 -2
  285. package/lib/ele-admin-layout/index.d.ts +26 -30
  286. package/lib/ele-admin-layout/props.d.ts +11 -10
  287. package/lib/ele-admin-layout/types.d.ts +2 -0
  288. package/lib/ele-alert/index.d.ts +14 -14
  289. package/lib/ele-alert/props.d.ts +9 -8
  290. package/lib/ele-app/components/message-body.d.ts +5 -4
  291. package/lib/ele-app/components/message-box-icon.d.ts +7 -6
  292. package/lib/ele-app/el.d.ts +3 -0
  293. package/lib/ele-app/plus.d.ts +21 -0
  294. package/lib/ele-app/style/overwrite/css-var.scss +0 -2
  295. package/lib/ele-app/style/overwrite/index.cjs +0 -1
  296. package/lib/ele-app/style/overwrite/index.scss +0 -1
  297. package/lib/ele-app/style/overwrite/input/index.scss +2 -0
  298. package/lib/ele-app/style/scrollbar/css-var.scss +17 -16
  299. package/lib/ele-app/types.d.ts +8 -1
  300. package/lib/ele-avatar-group/index.d.ts +15 -14
  301. package/lib/ele-avatar-group/props.d.ts +10 -7
  302. package/lib/ele-basic-select/index.cjs +14 -7
  303. package/lib/ele-basic-select/index.d.ts +19 -16
  304. package/lib/ele-basic-select/props.cjs +3 -1
  305. package/lib/ele-basic-select/props.d.ts +11 -6
  306. package/lib/ele-basic-select/util.cjs +13 -0
  307. package/lib/ele-basic-select/util.d.ts +6 -0
  308. package/lib/ele-bottom-bar/index.cjs +36 -14
  309. package/lib/ele-bottom-bar/index.d.ts +13 -6
  310. package/lib/ele-bottom-bar/props.cjs +3 -1
  311. package/lib/ele-bottom-bar/props.d.ts +5 -2
  312. package/lib/ele-bottom-bar/style/index.scss +5 -0
  313. package/lib/ele-breadcrumb/index.d.ts +3 -3
  314. package/lib/ele-breadcrumb/props.d.ts +1 -1
  315. package/lib/ele-card/index.d.ts +14 -14
  316. package/lib/ele-card/props.d.ts +8 -6
  317. package/lib/ele-check-card/components/card-item.d.ts +3 -2
  318. package/lib/ele-check-card/index.cjs +8 -3
  319. package/lib/ele-check-card/index.d.ts +6 -6
  320. package/lib/ele-check-card/props.d.ts +3 -2
  321. package/lib/ele-config-provider/index.d.ts +4 -4
  322. package/lib/ele-config-provider/props.d.ts +3 -3
  323. package/lib/ele-config-provider/types.d.ts +1 -0
  324. package/lib/ele-copyable/index.d.ts +10 -10
  325. package/lib/ele-copyable/props.d.ts +7 -5
  326. package/lib/ele-count-up/index.d.ts +1 -1
  327. package/lib/ele-cropper/components/cropper-tools.cjs +40 -12
  328. package/lib/ele-cropper/components/cropper-tools.d.ts +12 -5
  329. package/lib/ele-cropper/index.cjs +2 -1
  330. package/lib/ele-cropper/index.d.ts +6 -4
  331. package/lib/ele-cropper/props.cjs +2 -0
  332. package/lib/ele-cropper/props.d.ts +5 -2
  333. package/lib/ele-cropper/style/index.scss +3 -2
  334. package/lib/ele-cropper/types.d.ts +16 -0
  335. package/lib/ele-cropper-modal/index.cjs +2 -1
  336. package/lib/ele-cropper-modal/index.d.ts +7 -5
  337. package/lib/ele-cropper-modal/props.d.ts +2 -4
  338. package/lib/ele-data-table/components/table-columns.cjs +113 -0
  339. package/lib/ele-data-table/components/table-columns.d.ts +32 -0
  340. package/lib/ele-data-table/index.cjs +199 -117
  341. package/lib/ele-data-table/index.d.ts +223 -41
  342. package/lib/ele-data-table/props.d.ts +22 -26
  343. package/lib/ele-data-table/style/index.scss +1 -1
  344. package/lib/ele-data-table/types.d.ts +2 -0
  345. package/lib/ele-data-table/util.cjs +0 -104
  346. package/lib/ele-data-table/util.d.ts +1 -45
  347. package/lib/ele-drawer/index.d.ts +22 -22
  348. package/lib/ele-drawer/props.d.ts +13 -12
  349. package/lib/ele-dropdown/components/pro-dropdown.cjs +203 -0
  350. package/lib/ele-dropdown/components/pro-dropdown.d.ts +237 -0
  351. package/lib/ele-dropdown/index.cjs +113 -28
  352. package/lib/ele-dropdown/index.d.ts +534 -48
  353. package/lib/ele-dropdown/props.cjs +53 -6
  354. package/lib/ele-dropdown/props.d.ts +120 -25
  355. package/lib/ele-dropdown/style/index.cjs +4 -1
  356. package/lib/ele-dropdown/style/index.scss +174 -6
  357. package/lib/ele-edit-tag/index.cjs +10 -2
  358. package/lib/ele-edit-tag/index.d.ts +22 -20
  359. package/lib/ele-edit-tag/props.cjs +3 -1
  360. package/lib/ele-edit-tag/props.d.ts +13 -8
  361. package/lib/ele-ellipsis/index.d.ts +5 -4
  362. package/lib/ele-ellipsis/props.d.ts +1 -1
  363. package/lib/ele-file-list/components/file-grid-item.cjs +18 -57
  364. package/lib/ele-file-list/components/file-grid-item.d.ts +11 -20
  365. package/lib/ele-file-list/components/file-grid.cjs +15 -38
  366. package/lib/ele-file-list/components/file-grid.d.ts +15 -19
  367. package/lib/ele-file-list/components/file-table-item.cjs +18 -57
  368. package/lib/ele-file-list/components/file-table-item.d.ts +11 -20
  369. package/lib/ele-file-list/components/file-table.cjs +16 -36
  370. package/lib/ele-file-list/components/file-table.d.ts +15 -19
  371. package/lib/ele-file-list/index.cjs +117 -19
  372. package/lib/ele-file-list/index.d.ts +37 -16
  373. package/lib/ele-file-list/props.cjs +4 -7
  374. package/lib/ele-file-list/props.d.ts +4 -5
  375. package/lib/ele-file-list/style/index.scss +10 -5
  376. package/lib/ele-file-list/types.d.ts +13 -1
  377. package/lib/ele-icon-select/components/icon-grid.d.ts +9 -7
  378. package/lib/ele-icon-select/index.cjs +9 -5
  379. package/lib/ele-icon-select/index.d.ts +39 -38
  380. package/lib/ele-icon-select/props.cjs +2 -0
  381. package/lib/ele-icon-select/props.d.ts +18 -14
  382. package/lib/ele-image-viewer/index.cjs +87 -0
  383. package/lib/ele-image-viewer/index.d.ts +120 -0
  384. package/lib/ele-image-viewer/props.cjs +35 -0
  385. package/lib/ele-image-viewer/props.d.ts +58 -0
  386. package/lib/ele-image-viewer/style/css-var.scss +8 -0
  387. package/lib/ele-image-viewer/style/index.cjs +3 -0
  388. package/lib/ele-image-viewer/style/index.scss +117 -0
  389. package/lib/ele-loading/index.d.ts +4 -4
  390. package/lib/ele-loading/props.d.ts +3 -2
  391. package/lib/ele-map-picker/components/map-view.cjs +1 -0
  392. package/lib/ele-map-picker/components/map-view.d.ts +8 -10
  393. package/lib/ele-map-picker/index.d.ts +10 -10
  394. package/lib/ele-map-picker/props.d.ts +6 -5
  395. package/lib/ele-map-picker/style/index.scss +1 -1
  396. package/lib/ele-menus/components/item-title.cjs +107 -0
  397. package/lib/ele-menus/components/item-title.d.ts +48 -0
  398. package/lib/ele-menus/components/menu-items.cjs +268 -0
  399. package/lib/ele-menus/components/menu-items.d.ts +78 -0
  400. package/lib/ele-menus/index.cjs +278 -208
  401. package/lib/ele-menus/index.d.ts +79 -20
  402. package/lib/ele-menus/props.d.ts +3 -3
  403. package/lib/ele-menus/style/index.scss +4 -0
  404. package/lib/ele-menus/util.cjs +1 -242
  405. package/lib/ele-menus/util.d.ts +1 -62
  406. package/lib/ele-modal/index.cjs +28 -62
  407. package/lib/ele-modal/index.d.ts +33 -32
  408. package/lib/ele-modal/props.d.ts +16 -15
  409. package/lib/ele-modal/util.cjs +239 -132
  410. package/lib/ele-modal/util.d.ts +32 -25
  411. package/lib/ele-pagination/index.cjs +3 -2
  412. package/lib/ele-pagination/index.d.ts +18 -6
  413. package/lib/ele-pagination/props.d.ts +8 -2
  414. package/lib/ele-pagination/style/index.scss +70 -0
  415. package/lib/ele-popconfirm/index.d.ts +43 -46
  416. package/lib/ele-popconfirm/props.d.ts +22 -21
  417. package/lib/ele-popover/index.d.ts +33 -36
  418. package/lib/ele-popover/props.cjs +1 -1
  419. package/lib/ele-popover/props.d.ts +11 -11
  420. package/lib/ele-printer/index.d.ts +8 -8
  421. package/lib/ele-printer/props.d.ts +6 -5
  422. package/lib/ele-printer/util.cjs +68 -43
  423. package/lib/ele-printer/util.d.ts +5 -5
  424. package/lib/ele-pro-layout/components/pro-iframe.cjs +6 -4
  425. package/lib/ele-pro-layout/components/pro-iframe.d.ts +6 -6
  426. package/lib/ele-pro-layout/index.cjs +13 -4
  427. package/lib/ele-pro-layout/index.d.ts +44 -48
  428. package/lib/ele-pro-layout/props.cjs +3 -3
  429. package/lib/ele-pro-layout/props.d.ts +19 -17
  430. package/lib/ele-pro-layout/types.d.ts +9 -5
  431. package/lib/ele-pro-layout/util.cjs +12 -0
  432. package/lib/ele-pro-layout/util.d.ts +6 -0
  433. package/lib/ele-pro-table/components/table-tools.cjs +223 -141
  434. package/lib/ele-pro-table/components/table-tools.d.ts +405 -35
  435. package/lib/ele-pro-table/components/tool-column-list.cjs +32 -5
  436. package/lib/ele-pro-table/components/tool-column-list.d.ts +12 -0
  437. package/lib/ele-pro-table/components/tool-column.cjs +14 -8
  438. package/lib/ele-pro-table/components/tool-column.d.ts +7 -6
  439. package/lib/ele-pro-table/components/tool-export.cjs +201 -181
  440. package/lib/ele-pro-table/components/tool-export.d.ts +30 -27
  441. package/lib/ele-pro-table/components/tool-print-body-cell.cjs +1 -1
  442. package/lib/ele-pro-table/components/tool-print-body-cell.d.ts +5 -4
  443. package/lib/ele-pro-table/components/tool-print-header-cell.cjs +3 -2
  444. package/lib/ele-pro-table/components/tool-print-header-cell.d.ts +5 -4
  445. package/lib/ele-pro-table/components/tool-print.cjs +354 -333
  446. package/lib/ele-pro-table/components/tool-print.d.ts +38 -37
  447. package/lib/ele-pro-table/index.cjs +59 -13
  448. package/lib/ele-pro-table/index.d.ts +1015 -89
  449. package/lib/ele-pro-table/props.cjs +4 -2
  450. package/lib/ele-pro-table/props.d.ts +24 -27
  451. package/lib/ele-pro-table/style/index.scss +43 -12
  452. package/lib/ele-pro-table/types.d.ts +54 -0
  453. package/lib/ele-pro-table/util.cjs +89 -28
  454. package/lib/ele-pro-table/util.d.ts +51 -9
  455. package/lib/ele-qr-code/components/canvas-render.cjs +146 -0
  456. package/lib/ele-qr-code/components/canvas-render.d.ts +67 -0
  457. package/lib/ele-qr-code/index.cjs +32 -135
  458. package/lib/ele-qr-code/index.d.ts +5 -9
  459. package/lib/ele-qr-code/props.cjs +3 -1
  460. package/lib/ele-qr-code/props.d.ts +5 -2
  461. package/lib/ele-qr-code/types.d.ts +5 -0
  462. package/lib/ele-qr-code-svg/index.cjs +10 -13
  463. package/lib/ele-qr-code-svg/index.d.ts +6 -5
  464. package/lib/ele-segmented/index.cjs +29 -2
  465. package/lib/ele-segmented/index.d.ts +3 -1
  466. package/lib/ele-segmented/style/index.scss +7 -1
  467. package/lib/ele-split-panel/index.d.ts +7 -7
  468. package/lib/ele-split-panel/props.d.ts +4 -3
  469. package/lib/ele-steps/index.d.ts +10 -10
  470. package/lib/ele-steps/props.d.ts +5 -5
  471. package/lib/ele-tab-tool/index.cjs +43 -2
  472. package/lib/ele-tab-tool/index.d.ts +6 -1
  473. package/lib/ele-tab-tool/props.cjs +3 -1
  474. package/lib/ele-tab-tool/props.d.ts +2 -0
  475. package/lib/ele-tab-wrap/components/tab-dropdown.cjs +8 -25
  476. package/lib/ele-tab-wrap/index.cjs +20 -1
  477. package/lib/ele-table/index.d.ts +2 -2
  478. package/lib/ele-table/props.d.ts +2 -1
  479. package/lib/ele-table/style/index.scss +1 -2
  480. package/lib/ele-table-select/index.cjs +20 -17
  481. package/lib/ele-table-select/index.d.ts +24 -22
  482. package/lib/ele-table-select/props.cjs +2 -0
  483. package/lib/ele-table-select/props.d.ts +11 -7
  484. package/lib/ele-tabs/index.cjs +288 -116
  485. package/lib/ele-tabs/index.d.ts +39 -52
  486. package/lib/ele-tabs/props.cjs +4 -2
  487. package/lib/ele-tabs/props.d.ts +11 -30
  488. package/lib/ele-tabs/style/index.scss +186 -170
  489. package/lib/ele-tabs/types.d.ts +25 -11
  490. package/lib/ele-text/index.d.ts +2 -2
  491. package/lib/ele-text/props.d.ts +2 -1
  492. package/lib/ele-tool/index.cjs +5 -3
  493. package/lib/ele-tool/index.d.ts +5 -2
  494. package/lib/ele-tool/props.cjs +3 -1
  495. package/lib/ele-tool/props.d.ts +4 -1
  496. package/lib/ele-tool/style/index.scss +13 -0
  497. package/lib/ele-toolbar/index.d.ts +18 -18
  498. package/lib/ele-toolbar/props.d.ts +4 -3
  499. package/lib/ele-tooltip/index.d.ts +27 -26
  500. package/lib/ele-tooltip/props.d.ts +9 -8
  501. package/lib/ele-tooltip/style/css-var.scss +4 -0
  502. package/lib/ele-tour/index.d.ts +1 -1
  503. package/lib/ele-tree-select/index.cjs +4 -1
  504. package/lib/ele-tree-select/index.d.ts +19 -19
  505. package/lib/ele-tree-select/props.cjs +3 -1
  506. package/lib/ele-tree-select/props.d.ts +12 -8
  507. package/lib/ele-upload-list/components/list-item.cjs +144 -64
  508. package/lib/ele-upload-list/components/list-item.d.ts +31 -5
  509. package/lib/ele-upload-list/index.cjs +178 -95
  510. package/lib/ele-upload-list/index.d.ts +57 -30
  511. package/lib/ele-upload-list/props.cjs +20 -8
  512. package/lib/ele-upload-list/props.d.ts +24 -10
  513. package/lib/ele-upload-list/style/css-var.scss +8 -0
  514. package/lib/ele-upload-list/style/index.cjs +1 -1
  515. package/lib/ele-upload-list/style/index.scss +426 -132
  516. package/lib/ele-upload-list/types.d.ts +35 -11
  517. package/lib/ele-virtual-table/components/body-cell.d.ts +13 -29
  518. package/lib/ele-virtual-table/components/body-row.d.ts +13 -29
  519. package/lib/ele-virtual-table/components/cell-checkbox.d.ts +3 -2
  520. package/lib/ele-virtual-table/components/cell-filter.d.ts +6 -6
  521. package/lib/ele-virtual-table/components/footer-row.d.ts +3 -3
  522. package/lib/ele-virtual-table/components/header-cell.d.ts +8 -8
  523. package/lib/ele-virtual-table/components/header-row.d.ts +8 -8
  524. package/lib/ele-virtual-table/index.cjs +7 -5
  525. package/lib/ele-virtual-table/index.d.ts +27 -36
  526. package/lib/ele-virtual-table/props.d.ts +13 -15
  527. package/lib/ele-watermark/index.d.ts +5 -4
  528. package/lib/ele-watermark/props.d.ts +2 -1
  529. package/lib/ele-xg-player/index.d.ts +3 -3
  530. package/lib/icons/CornerLeftFilled.cjs +25 -0
  531. package/lib/icons/CornerLeftFilled.d.ts +2 -0
  532. package/lib/icons/CornerRightFilled.cjs +25 -0
  533. package/lib/icons/CornerRightFilled.d.ts +2 -0
  534. package/lib/icons/EyeOutlined.cjs +29 -0
  535. package/lib/icons/EyeOutlined.d.ts +2 -0
  536. package/lib/icons/FileOutlined.cjs +4 -4
  537. package/lib/icons/SizeCompactOutlined.cjs +33 -0
  538. package/lib/icons/SizeCompactOutlined.d.ts +2 -0
  539. package/lib/icons/SizeMiddleOutlined.cjs +33 -0
  540. package/lib/icons/SizeMiddleOutlined.d.ts +2 -0
  541. package/lib/icons/SizeSlackOutlined.cjs +33 -0
  542. package/lib/icons/SizeSlackOutlined.d.ts +2 -0
  543. package/lib/icons/index.cjs +12 -0
  544. package/lib/icons/index.d.ts +6 -0
  545. package/lib/lang/en_US.cjs +5 -1
  546. package/lib/lang/zh_CN.cjs +5 -1
  547. package/lib/lang/zh_TW.cjs +5 -1
  548. package/lib/style/plus.scss +1 -0
  549. package/lib/style/themes/default.scss +92 -9
  550. package/lib/style/themes/rounded.scss +9 -5
  551. package/lib/style/themes/theme-util.scss +4 -0
  552. package/lib/style/util.scss +10 -3
  553. package/lib/utils/core.d.ts +4 -2
  554. package/lib/utils/hook.cjs +158 -5
  555. package/lib/utils/hook.d.ts +77 -4
  556. package/lib/utils/menu-util.cjs +9 -3
  557. package/lib/utils/message-box.cjs +4 -0
  558. package/lib/utils/message.cjs +1 -1
  559. package/package.json +38 -37
  560. package/typings/global.d.ts +1 -0
  561. package/es/ele-app/style/overwrite/image-viewer/css-var.scss +0 -8
  562. package/es/ele-app/style/overwrite/image-viewer/index.js +0 -1
  563. package/es/ele-app/style/overwrite/image-viewer/index.scss +0 -10
  564. package/es/ele-tabs/components/tab-title.d.ts +0 -52
  565. package/es/ele-tabs/components/tab-title.js +0 -115
  566. package/lib/ele-app/style/overwrite/image-viewer/css-var.scss +0 -8
  567. package/lib/ele-app/style/overwrite/image-viewer/index.cjs +0 -2
  568. package/lib/ele-app/style/overwrite/image-viewer/index.scss +0 -10
  569. package/lib/ele-tabs/components/tab-title.cjs +0 -114
  570. package/lib/ele-tabs/components/tab-title.d.ts +0 -52
  571. /package/es/{ele-app/style/overwrite/image-viewer → ele-image-viewer/style}/index.d.ts +0 -0
  572. /package/lib/{ele-app/style/overwrite/image-viewer → ele-image-viewer/style}/index.d.ts +0 -0
@@ -2,20 +2,49 @@
2
2
  const vue = require("vue");
3
3
  const SortableJs = require("sortablejs");
4
4
  const elementPlus = require("element-plus");
5
+ const icons = require("../icons");
5
6
  const core = require("../utils/core");
6
- const TabTitle = require("./components/tab-title");
7
+ const hook = require("../utils/hook");
8
+ const EleDropdown = require("../ele-dropdown/index");
7
9
  const props = require("./props");
8
10
  const _sfc_main = vue.defineComponent({
9
11
  name: "EleTabs",
10
- components: { ElTabs: elementPlus.ElTabs, ElTabPane: elementPlus.ElTabPane, TabTitle },
12
+ components: {
13
+ ElTabs: elementPlus.ElTabs,
14
+ ElTabPane: elementPlus.ElTabPane,
15
+ ElIcon: elementPlus.ElIcon,
16
+ EleDropdown,
17
+ CornerLeftFilled: icons.CornerLeftFilled,
18
+ CornerRightFilled: icons.CornerRightFilled
19
+ },
11
20
  props: props.tabsProps,
12
21
  emits: props.tabsEmits,
13
22
  setup(props$1, { emit }) {
23
+ let sortableIns = null;
24
+ let currentSortItemId = null;
25
+ let contextMenuTabItem = null;
26
+ let contextMenuTabName = null;
14
27
  const wrapProps = vue.inject(props.TAB_WRAP_KEY, null);
15
- const current = { sortIns: null, isScroll: false };
28
+ const [startScrollTimer, _stopScrollTimer, scrollWaiting] = hook.useTimer(320);
29
+ const { bindMousewheel, unbindMousewheel } = hook.useMousewheel((param) => {
30
+ const { e, direction } = param;
31
+ scrollTabs(direction === "up" ? "prev" : "next", () => {
32
+ e.preventDefault();
33
+ e.stopPropagation();
34
+ });
35
+ });
36
+ const { bindTouchEvent, unbindTouchEvent } = hook.useTouchEvent({
37
+ end: (param) => {
38
+ if (param.distanceX && param.distanceX > 80) {
39
+ scrollTabs("prev");
40
+ } else if (param.distanceX && param.distanceX < 80) {
41
+ scrollTabs("next");
42
+ }
43
+ }
44
+ });
45
+ const [startGhostTimer] = hook.useTimer(100);
16
46
  const tabRef = vue.ref(null);
17
- const itemRefs = vue.ref([]);
18
- const isWrap = vue.computed(() => wrapProps == null);
47
+ const isOnlyTab = vue.computed(() => wrapProps == null);
19
48
  const tabSize = vue.computed(
20
49
  () => wrapProps == null ? props$1.size : wrapProps.size
21
50
  );
@@ -25,15 +54,21 @@ const _sfc_main = vue.defineComponent({
25
54
  const tabProps = vue.computed(() => {
26
55
  return core.pick(props$1, props.tabPropKeys);
27
56
  });
28
- const getContextMenus = (item) => {
29
- if (typeof props$1.contextMenus === "function") {
30
- return props$1.contextMenus(item);
31
- }
32
- return props$1.contextMenus;
33
- };
57
+ const ctxMenuDropdownRef = vue.ref(null);
58
+ const ctxMenuDropdownItems = vue.shallowRef([]);
59
+ const ctxMenuDropdownVirtualRef = vue.ref();
34
60
  const updateModelValue = (name) => {
35
61
  emit("update:modelValue", name);
36
62
  };
63
+ const handleContextmenu = (e) => {
64
+ if (!props$1.contextMenu) {
65
+ return;
66
+ }
67
+ const el = e.target;
68
+ if (el && el.classList.contains("is-icon-close")) {
69
+ e.preventDefault();
70
+ }
71
+ };
37
72
  const handleTabClick = (pane, e) => {
38
73
  emit("tabClick", pane, e);
39
74
  };
@@ -49,55 +84,80 @@ const _sfc_main = vue.defineComponent({
49
84
  const handleEdit = (name, action) => {
50
85
  emit("edit", name, action);
51
86
  };
52
- const handleItemClick = (option) => {
53
- emit("tabItemClick", option);
87
+ const handleItemClick = (item, tabName, e) => {
88
+ if (props$1.handleClick) {
89
+ e.stopPropagation();
90
+ }
91
+ emit("tabItemClick", {
92
+ item,
93
+ name: item ? item.name : tabName,
94
+ active: props$1.modelValue
95
+ });
54
96
  };
55
- const handleItemContextMenu = (option) => {
56
- emit("tabContextMenu", option);
97
+ const handleItemCtxMenuVisible = (visible) => {
98
+ if (visible) {
99
+ emit(
100
+ "tabContextOpen",
101
+ ctxMenuDropdownRef.value,
102
+ contextMenuTabItem,
103
+ contextMenuTabName
104
+ );
105
+ }
57
106
  };
58
- const handleItemContextOpen = (ref2) => {
59
- if (itemRefs.value) {
60
- itemRefs.value.forEach((r) => {
61
- if ((r == null ? void 0 : r.dropdownRef) && r.dropdownRef !== ref2) {
62
- r.dropdownRef.handleClose();
63
- }
107
+ const handleItemCtxMenuClick = (command) => {
108
+ if (contextMenuTabItem != null || contextMenuTabName != null) {
109
+ emit("tabContextMenu", {
110
+ command,
111
+ item: contextMenuTabItem,
112
+ name: contextMenuTabItem ? contextMenuTabItem.name : contextMenuTabName,
113
+ active: props$1.modelValue
64
114
  });
65
115
  }
66
- emit("tabContextOpen", ref2);
67
116
  };
68
- const handleContextmenu = (e) => {
69
- const el = e.target;
70
- if (el && el.classList.contains("is-icon-close")) {
71
- e.preventDefault();
117
+ const getContextMenus = (item, tabName) => {
118
+ if (typeof props$1.contextMenus === "function") {
119
+ return props$1.contextMenus(item, tabName);
72
120
  }
121
+ return props$1.contextMenus;
73
122
  };
74
123
  const hideAllDropdown = () => {
75
- if (itemRefs.value) {
76
- itemRefs.value.forEach((r) => {
77
- if (r == null ? void 0 : r.dropdownRef) {
78
- r.dropdownRef.handleClose();
79
- }
80
- });
124
+ if (ctxMenuDropdownRef.value) {
125
+ ctxMenuDropdownRef.value.handleClose();
81
126
  }
82
127
  };
128
+ const showItemContextMenu = (item, tabName, itemEl) => {
129
+ if (contextMenuTabItem != null && contextMenuTabItem === item || contextMenuTabName != null && contextMenuTabName === tabName) {
130
+ return;
131
+ }
132
+ hideAllDropdown();
133
+ vue.nextTick(() => {
134
+ contextMenuTabItem = item;
135
+ contextMenuTabName = tabName;
136
+ ctxMenuDropdownItems.value = getContextMenus(item, tabName) || [];
137
+ ctxMenuDropdownVirtualRef.value = itemEl;
138
+ if (props$1.contextMenu && ctxMenuDropdownItems.value.length) {
139
+ vue.nextTick(() => {
140
+ ctxMenuDropdownRef.value && ctxMenuDropdownRef.value.handleOpen();
141
+ });
142
+ }
143
+ });
144
+ };
145
+ const handleItemContextmenu = (item, tabName, e) => {
146
+ const itemEl = e.currentTarget;
147
+ if (!props$1.contextMenu || ctxMenuDropdownVirtualRef.value === itemEl) {
148
+ return;
149
+ }
150
+ e.preventDefault();
151
+ showItemContextMenu(item, tabName, itemEl);
152
+ };
83
153
  const getHeaderEl = () => {
84
154
  const tabEl = tabRef.value ? tabRef.value.$el : void 0;
85
- const el = tabEl ? tabEl.querySelector(".el-tabs__header") : void 0;
86
- return el;
155
+ return tabEl ? tabEl.querySelector(".el-tabs__header") : void 0;
87
156
  };
88
157
  const getNavEl = () => {
89
158
  const headerEl = getHeaderEl();
90
159
  return headerEl ? headerEl.querySelector(".el-tabs__nav") : void 0;
91
160
  };
92
- const getBtnEl = (el, e, firefox) => {
93
- const wheelDelta = e.wheelDelta || e.detail;
94
- const delta = firefox ? -wheelDelta : wheelDelta;
95
- if (delta > 0) {
96
- return el.querySelector(".el-tabs__nav-prev");
97
- } else if (delta < 0) {
98
- return el.querySelector(".el-tabs__nav-next");
99
- }
100
- };
101
161
  const updateActiveBar = () => {
102
162
  const el = getNavEl();
103
163
  if (el) {
@@ -107,15 +167,45 @@ const _sfc_main = vue.defineComponent({
107
167
  }
108
168
  }
109
169
  };
170
+ const scrollTabs = (direction, done) => {
171
+ const tabEl = getHeaderEl();
172
+ if (tabEl && !scrollWaiting.value) {
173
+ const el = tabEl.querySelector(`.el-tabs__nav-${direction}`);
174
+ if (el && !el.classList.contains("is-disabled")) {
175
+ startScrollTimer();
176
+ done && done();
177
+ el.click();
178
+ }
179
+ }
180
+ };
181
+ const checkSortGhostTab = () => {
182
+ const navEl = getNavEl();
183
+ if (navEl == null) {
184
+ return;
185
+ }
186
+ if (currentSortItemId == null) {
187
+ const el2 = navEl.querySelector(".el-tabs__item.sortable-ghost");
188
+ if (el2 != null) {
189
+ el2.classList.remove("sortable-ghost");
190
+ }
191
+ return;
192
+ }
193
+ const el = navEl.querySelector(
194
+ `.el-tabs__item[id="${currentSortItemId}"]`
195
+ );
196
+ if (el != null) {
197
+ el.classList.add("sortable-ghost");
198
+ }
199
+ };
110
200
  const bindDragSort = () => {
111
201
  unbindDragSort();
112
- const el = getNavEl();
113
- if (!props$1.sortable || !el) {
202
+ const navEl = getNavEl();
203
+ if (!props$1.sortable || !navEl) {
114
204
  return;
115
205
  }
116
- current.sortIns = new SortableJs(el, {
117
- animation: 300,
206
+ sortableIns = new SortableJs(navEl, {
118
207
  draggable: ".el-tabs__item",
208
+ delay: 20,
119
209
  onUpdate: ({ oldDraggableIndex, newDraggableIndex }) => {
120
210
  if (typeof oldDraggableIndex === "number" && typeof newDraggableIndex === "number") {
121
211
  const data = [...props$1.items];
@@ -127,47 +217,80 @@ const _sfc_main = vue.defineComponent({
127
217
  emit("tabSortChange", data);
128
218
  }
129
219
  },
220
+ onStart: (e) => {
221
+ currentSortItemId = e.item.getAttribute("id");
222
+ checkSortGhostTab();
223
+ startGhostTimer(() => {
224
+ checkSortGhostTab();
225
+ });
226
+ },
227
+ onEnd: () => {
228
+ currentSortItemId = null;
229
+ checkSortGhostTab();
230
+ },
231
+ onChange: () => {
232
+ checkSortGhostTab();
233
+ startGhostTimer(() => {
234
+ checkSortGhostTab();
235
+ });
236
+ },
237
+ onMove: () => {
238
+ checkSortGhostTab();
239
+ startGhostTimer(() => {
240
+ checkSortGhostTab();
241
+ });
242
+ },
130
243
  setData: () => {
131
244
  }
132
245
  });
133
246
  };
134
247
  const unbindDragSort = () => {
135
- current.sortIns && current.sortIns.destroy();
136
- current.sortIns = null;
248
+ sortableIns && sortableIns.destroy();
249
+ sortableIns = null;
250
+ currentSortItemId = null;
137
251
  };
138
- const handleMousewheel = (e, isFirefox) => {
139
- const tabEl = e.currentTarget;
140
- if (tabEl && !current.isScroll) {
141
- const el = getBtnEl(tabEl, e, isFirefox);
142
- if (el && !el.classList.contains("is-disabled")) {
143
- current.isScroll = true;
144
- e.preventDefault();
145
- e.stopPropagation();
146
- el.click();
147
- setTimeout(() => {
148
- current.isScroll = false;
149
- }, 300);
252
+ const initMousewheelEvent = () => {
253
+ const el = getHeaderEl();
254
+ if (el != null) {
255
+ unbindMousewheel(el);
256
+ if (props$1.mousewheel) {
257
+ bindMousewheel(el);
150
258
  }
151
259
  }
152
260
  };
153
- const handleFirefoxMousewheel = (e) => {
154
- handleMousewheel(e, true);
261
+ const initTouchEvent = () => {
262
+ const el = getHeaderEl();
263
+ if (el != null) {
264
+ unbindTouchEvent(el);
265
+ if (!props$1.sortable) {
266
+ bindTouchEvent(el);
267
+ }
268
+ }
155
269
  };
270
+ if (wrapProps && wrapProps.setTabMethods) {
271
+ wrapProps.setTabMethods({
272
+ triggerTabItemClick: handleItemClick,
273
+ triggerItemContextMenu: handleItemContextmenu
274
+ });
275
+ }
156
276
  vue.onMounted(() => {
277
+ initMousewheelEvent();
278
+ initTouchEvent();
157
279
  bindDragSort();
158
- const el = getHeaderEl();
159
- if (props$1.mousewheel && el) {
160
- el.addEventListener("mousewheel", handleMousewheel, {
161
- passive: false
162
- });
163
- el.addEventListener("DOMMouseScroll", handleFirefoxMousewheel);
164
- }
165
280
  });
166
281
  vue.onBeforeUnmount(() => {
282
+ if (wrapProps && wrapProps.setTabMethods) {
283
+ wrapProps.setTabMethods({
284
+ triggerTabItemClick: void 0,
285
+ triggerItemContextMenu: void 0
286
+ });
287
+ }
288
+ contextMenuTabItem = null;
289
+ contextMenuTabName = null;
167
290
  const el = getHeaderEl();
168
- if (el) {
169
- el.removeEventListener("mousewheel", handleMousewheel);
170
- el.removeEventListener("DOMMouseScroll", handleFirefoxMousewheel);
291
+ if (el != null) {
292
+ unbindMousewheel(el);
293
+ unbindTouchEvent(el);
171
294
  }
172
295
  unbindDragSort();
173
296
  });
@@ -175,29 +298,39 @@ const _sfc_main = vue.defineComponent({
175
298
  () => props$1.sortable,
176
299
  () => {
177
300
  bindDragSort();
301
+ initTouchEvent();
302
+ }
303
+ );
304
+ vue.watch(
305
+ () => props$1.mousewheel,
306
+ () => {
307
+ initMousewheelEvent();
178
308
  }
179
309
  );
180
310
  return {
181
311
  omit: core.omit,
182
312
  tabRef,
183
- itemRefs,
184
- isWrap,
313
+ isOnlyTab,
185
314
  tabSize,
186
315
  tabType,
187
316
  tabProps,
188
- getContextMenus,
317
+ ctxMenuDropdownRef,
318
+ ctxMenuDropdownItems,
319
+ ctxMenuDropdownVirtualRef,
189
320
  updateModelValue,
321
+ handleContextmenu,
190
322
  handleTabClick,
191
323
  handleTabChange,
192
324
  handleTabRemove,
193
325
  handleTabAdd,
194
326
  handleEdit,
195
327
  handleItemClick,
196
- handleItemContextMenu,
197
- handleItemContextOpen,
198
- handleContextmenu,
328
+ handleItemCtxMenuVisible,
329
+ handleItemCtxMenuClick,
330
+ handleItemContextmenu,
199
331
  hideAllDropdown,
200
- updateActiveBar
332
+ updateActiveBar,
333
+ scrollTabs
201
334
  };
202
335
  }
203
336
  });
@@ -208,16 +341,20 @@ const _export_sfc = (sfc, props2) => {
208
341
  }
209
342
  return target;
210
343
  };
344
+ const _hoisted_1 = ["onClick", "onContextmenu"];
211
345
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
212
- const _component_TabTitle = vue.resolveComponent("TabTitle");
346
+ const _component_CornerLeftFilled = vue.resolveComponent("CornerLeftFilled");
347
+ const _component_ElIcon = vue.resolveComponent("ElIcon");
348
+ const _component_CornerRightFilled = vue.resolveComponent("CornerRightFilled");
213
349
  const _component_ElTabPane = vue.resolveComponent("ElTabPane");
350
+ const _component_EleDropdown = vue.resolveComponent("EleDropdown");
214
351
  const _component_ElTabs = vue.resolveComponent("ElTabs");
215
352
  return vue.openBlock(), vue.createBlock(_component_ElTabs, vue.mergeProps(_ctx.tabProps, {
216
353
  ref: "tabRef",
217
354
  type: _ctx.tabType === "card" || _ctx.tabType === "border-card" ? _ctx.tabType : void 0,
218
355
  class: [
219
356
  "ele-tabs",
220
- { "ele-tabs-wrap": _ctx.isWrap },
357
+ { "ele-tabs-wrap": _ctx.isOnlyTab },
221
358
  { "is-small": _ctx.tabSize === "small" },
222
359
  { "is-large": _ctx.tabSize === "large" },
223
360
  { "is-default": !_ctx.tabType || _ctx.tabType === "default" },
@@ -226,7 +363,9 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
226
363
  { "is-indicator": _ctx.tabType === "indicator" },
227
364
  { "is-button": _ctx.tabType === "button" },
228
365
  { "is-tag": _ctx.tabType === "tag" },
229
- { "is-center": _ctx.center }
366
+ { "is-center": _ctx.center },
367
+ { "is-sortable": _ctx.sortable },
368
+ { "is-flex-table": _ctx.flexTable }
230
369
  ],
231
370
  "onUpdate:modelValue": _ctx.updateModelValue,
232
371
  onTabClick: _ctx.handleTabClick,
@@ -239,39 +378,48 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
239
378
  default: vue.withCtx(() => [
240
379
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.items, (item, index2) => {
241
380
  return vue.openBlock(), vue.createBlock(_component_ElTabPane, vue.mergeProps({
242
- key: index2 + "-" + item.name + "-" + item.label,
381
+ key: [
382
+ index2,
383
+ item.name,
384
+ item.label,
385
+ !!item.closable,
386
+ !!item.disabled,
387
+ !!item.lazy
388
+ ].join("-"),
243
389
  ref_for: true
244
390
  }, _ctx.omit(item, ["slot", "meta"])), vue.createSlots({
245
391
  label: vue.withCtx(() => [
246
- vue.createVNode(_component_TabTitle, {
247
- ref_for: true,
248
- ref: "itemRefs",
249
- item,
250
- label: item.label,
251
- tabName: item.name,
252
- active: _ctx.modelValue,
253
- handleClick: _ctx.handleClick,
254
- contextMenu: _ctx.contextMenu,
255
- contextMenus: _ctx.getContextMenus(item),
256
- onContextMenu: _ctx.handleItemContextMenu,
257
- onContextOpen: _ctx.handleItemContextOpen,
258
- onItemClick: _ctx.handleItemClick
259
- }, vue.createSlots({ _: 2 }, [
260
- _ctx.$slots.label ? {
261
- name: "label",
262
- fn: vue.withCtx((slotProps) => [
263
- vue.renderSlot(_ctx.$slots, "label", vue.mergeProps({ ref_for: true }, slotProps || {}))
264
- ]),
265
- key: "0"
266
- } : void 0,
267
- _ctx.$slots.contextMenu ? {
268
- name: "contextMenu",
269
- fn: vue.withCtx((slotProps) => [
270
- vue.renderSlot(_ctx.$slots, "contextMenu", vue.mergeProps({ ref_for: true }, slotProps || {}))
271
- ]),
272
- key: "1"
273
- } : void 0
274
- ]), 1032, ["item", "label", "tabName", "active", "handleClick", "contextMenu", "contextMenus", "onContextMenu", "onContextOpen", "onItemClick"])
392
+ vue.createElementVNode("div", {
393
+ class: "ele-tab-title",
394
+ onClick: (e) => _ctx.handleItemClick(item, void 0, e),
395
+ onContextmenu: (e) => _ctx.handleItemContextmenu(item, void 0, e)
396
+ }, [
397
+ vue.renderSlot(_ctx.$slots, "label", {
398
+ item,
399
+ label: item.label,
400
+ active: _ctx.modelValue
401
+ }, () => [
402
+ vue.createTextVNode(vue.toDisplayString(item.label), 1)
403
+ ])
404
+ ], 40, _hoisted_1),
405
+ _ctx.tabType === "simple" || _ctx.tabType === "indicator" ? (vue.openBlock(), vue.createBlock(_component_ElIcon, {
406
+ key: 0,
407
+ class: "ele-tab-corner-left"
408
+ }, {
409
+ default: vue.withCtx(() => [
410
+ vue.createVNode(_component_CornerLeftFilled)
411
+ ]),
412
+ _: 1
413
+ })) : vue.createCommentVNode("", true),
414
+ _ctx.tabType === "simple" || _ctx.tabType === "indicator" ? (vue.openBlock(), vue.createBlock(_component_ElIcon, {
415
+ key: 1,
416
+ class: "ele-tab-corner-right"
417
+ }, {
418
+ default: vue.withCtx(() => [
419
+ vue.createVNode(_component_CornerRightFilled)
420
+ ]),
421
+ _: 1
422
+ })) : vue.createCommentVNode("", true)
275
423
  ]),
276
424
  _: 2
277
425
  }, [
@@ -283,7 +431,32 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
283
431
  key: "0"
284
432
  } : void 0
285
433
  ]), 1040);
286
- }), 128))
434
+ }), 128)),
435
+ _ctx.contextMenu ? (vue.openBlock(), vue.createBlock(_component_EleDropdown, vue.mergeProps(
436
+ {
437
+ key: 0,
438
+ triggerKeys: [],
439
+ persistent: false,
440
+ placement: "bottom-start",
441
+ popperClass: "ele-tab-popup",
442
+ popperOptions: {
443
+ modifiers: [{ name: "offset", options: { offset: [0, 8] } }]
444
+ }
445
+ },
446
+ !_ctx.contextMenu || typeof _ctx.contextMenu == "boolean" ? {} : _ctx.contextMenu,
447
+ {
448
+ ref: "ctxMenuDropdownRef",
449
+ componentType: "pro",
450
+ preventContextmenu: true,
451
+ trigger: "contextmenu",
452
+ virtualTriggering: true,
453
+ virtualRef: _ctx.ctxMenuDropdownVirtualRef,
454
+ disabled: !_ctx.ctxMenuDropdownItems.length,
455
+ items: _ctx.ctxMenuDropdownItems,
456
+ onCommand: _ctx.handleItemCtxMenuClick,
457
+ onVisibleChange: _ctx.handleItemCtxMenuVisible
458
+ }
459
+ ), null, 16, ["virtualRef", "disabled", "items", "onCommand", "onVisibleChange"])) : vue.createCommentVNode("", true)
287
460
  ]),
288
461
  _: 2
289
462
  }, [
@@ -293,8 +466,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
293
466
  vue.renderSlot(_ctx.$slots, "add-icon")
294
467
  ]),
295
468
  key: "0"
296
- } : void 0,
297
- _ctx.$slots.addIcon ? {
469
+ } : _ctx.$slots.addIcon ? {
298
470
  name: "addIcon",
299
471
  fn: vue.withCtx(() => [
300
472
  vue.renderSlot(_ctx.$slots, "addIcon")