ele-admin-plus 1.2.1-beta.3 → 1.2.1-beta.5

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 (400) 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.js +7 -2
  6. package/es/ele-admin-layout/types.d.ts +2 -0
  7. package/es/ele-app/el.d.ts +3 -0
  8. package/es/ele-app/plus.d.ts +21 -0
  9. package/es/ele-app/style/overwrite/css-var.scss +0 -2
  10. package/es/ele-app/style/overwrite/date-picker/index.scss +13 -11
  11. package/es/ele-app/style/overwrite/index.js +0 -1
  12. package/es/ele-app/style/overwrite/index.scss +0 -1
  13. package/es/ele-app/style/scrollbar/css-var.scss +17 -16
  14. package/es/ele-app/types.d.ts +8 -1
  15. package/es/ele-basic-select/index.d.ts +2 -2
  16. package/es/ele-bottom-bar/index.d.ts +9 -2
  17. package/es/ele-bottom-bar/index.js +37 -15
  18. package/es/ele-bottom-bar/props.d.ts +2 -0
  19. package/es/ele-bottom-bar/props.js +3 -1
  20. package/es/ele-bottom-bar/style/index.scss +5 -0
  21. package/es/ele-check-card/index.d.ts +2 -2
  22. package/es/ele-cropper/components/cropper-tools.d.ts +9 -3
  23. package/es/ele-cropper/components/cropper-tools.js +42 -14
  24. package/es/ele-cropper/index.d.ts +3 -1
  25. package/es/ele-cropper/index.js +2 -1
  26. package/es/ele-cropper/props.d.ts +3 -1
  27. package/es/ele-cropper/props.js +2 -0
  28. package/es/ele-cropper/style/index.scss +3 -2
  29. package/es/ele-cropper/types.d.ts +16 -0
  30. package/es/ele-cropper-modal/index.d.ts +3 -1
  31. package/es/ele-cropper-modal/index.js +2 -1
  32. package/es/ele-cropper-modal/props.d.ts +1 -0
  33. package/es/ele-data-table/components/table-columns.d.ts +32 -0
  34. package/es/ele-data-table/components/table-columns.js +124 -0
  35. package/es/ele-data-table/index.d.ts +327 -23
  36. package/es/ele-data-table/index.js +202 -120
  37. package/es/ele-data-table/props.d.ts +14 -18
  38. package/es/ele-data-table/style/index.scss +0 -4
  39. package/es/ele-data-table/types.d.ts +5 -2
  40. package/es/ele-data-table/util.d.ts +1 -45
  41. package/es/ele-data-table/util.js +2 -110
  42. package/es/ele-drawer/index.d.ts +9 -8
  43. package/es/ele-drawer/index.js +8 -2
  44. package/es/ele-drawer/props.d.ts +2 -2
  45. package/es/ele-dropdown/components/dropdown-menu-item.d.ts +39 -0
  46. package/es/ele-dropdown/components/dropdown-menu-item.js +132 -0
  47. package/es/ele-dropdown/components/dropdown-menus.d.ts +44 -0
  48. package/es/ele-dropdown/components/dropdown-menus.js +111 -0
  49. package/es/ele-dropdown/components/pro-dropdown.d.ts +238 -0
  50. package/es/ele-dropdown/components/pro-dropdown.js +205 -0
  51. package/es/ele-dropdown/index.d.ts +521 -33
  52. package/es/ele-dropdown/index.js +147 -66
  53. package/es/ele-dropdown/props.d.ts +109 -15
  54. package/es/ele-dropdown/props.js +54 -7
  55. package/es/ele-dropdown/style/index.js +4 -1
  56. package/es/ele-dropdown/style/index.scss +226 -7
  57. package/es/ele-dropdown/types.d.ts +2 -2
  58. package/es/ele-edit-tag/index.d.ts +2 -2
  59. package/es/ele-file-list/components/file-grid-item.d.ts +11 -20
  60. package/es/ele-file-list/components/file-grid-item.js +19 -58
  61. package/es/ele-file-list/components/file-grid.d.ts +15 -19
  62. package/es/ele-file-list/components/file-grid.js +16 -39
  63. package/es/ele-file-list/components/file-table-item.d.ts +11 -20
  64. package/es/ele-file-list/components/file-table-item.js +19 -58
  65. package/es/ele-file-list/components/file-table.d.ts +15 -19
  66. package/es/ele-file-list/components/file-table.js +17 -37
  67. package/es/ele-file-list/index.d.ts +33 -12
  68. package/es/ele-file-list/index.js +118 -20
  69. package/es/ele-file-list/props.d.ts +4 -5
  70. package/es/ele-file-list/props.js +5 -8
  71. package/es/ele-file-list/style/index.scss +10 -5
  72. package/es/ele-file-list/types.d.ts +13 -1
  73. package/es/ele-icon-select/components/icon-grid.d.ts +1 -1
  74. package/es/ele-icon-select/index.d.ts +2 -2
  75. package/es/ele-image-viewer/index.d.ts +120 -0
  76. package/es/ele-image-viewer/index.js +88 -0
  77. package/es/ele-image-viewer/props.d.ts +58 -0
  78. package/es/ele-image-viewer/props.js +35 -0
  79. package/es/ele-image-viewer/style/css-var.scss +8 -0
  80. package/es/ele-image-viewer/style/index.js +2 -0
  81. package/es/ele-image-viewer/style/index.scss +117 -0
  82. package/es/ele-map-picker/components/map-view.d.ts +18 -18
  83. package/es/ele-menus/components/item-title.d.ts +48 -0
  84. package/es/ele-menus/components/item-title.js +108 -0
  85. package/es/ele-menus/components/menu-items.d.ts +78 -0
  86. package/es/ele-menus/components/menu-items.js +269 -0
  87. package/es/ele-menus/index.d.ts +77 -18
  88. package/es/ele-menus/index.js +280 -210
  89. package/es/ele-menus/props.d.ts +2 -2
  90. package/es/ele-menus/util.d.ts +1 -62
  91. package/es/ele-menus/util.js +3 -244
  92. package/es/ele-modal/index.d.ts +9 -9
  93. package/es/ele-modal/props.d.ts +2 -2
  94. package/es/ele-modal/util.d.ts +1 -1
  95. package/es/ele-modal/util.js +8 -4
  96. package/es/ele-pagination/index.d.ts +2 -2
  97. package/es/ele-pagination/props.d.ts +1 -1
  98. package/es/ele-popconfirm/index.d.ts +11 -14
  99. package/es/ele-popconfirm/index.js +31 -24
  100. package/es/ele-popconfirm/props.d.ts +3 -4
  101. package/es/ele-popover/index.d.ts +11 -14
  102. package/es/ele-popover/props.d.ts +0 -1
  103. package/es/ele-popover/props.js +1 -1
  104. package/es/ele-printer/util.js +1 -1
  105. package/es/ele-pro-layout/components/pro-iframe.d.ts +6 -6
  106. package/es/ele-pro-layout/components/pro-iframe.js +6 -4
  107. package/es/ele-pro-layout/index.d.ts +1 -1
  108. package/es/ele-pro-layout/index.js +20 -6
  109. package/es/ele-pro-layout/props.d.ts +3 -3
  110. package/es/ele-pro-layout/props.js +3 -3
  111. package/es/ele-pro-layout/types.d.ts +9 -5
  112. package/es/ele-pro-layout/util.d.ts +6 -0
  113. package/es/ele-pro-layout/util.js +12 -0
  114. package/es/ele-pro-table/components/table-tools.d.ts +25 -26
  115. package/es/ele-pro-table/components/table-tools.js +26 -18
  116. package/es/ele-pro-table/components/tool-column.d.ts +7 -7
  117. package/es/ele-pro-table/components/tool-column.js +4 -4
  118. package/es/ele-pro-table/components/tool-export.d.ts +5 -5
  119. package/es/ele-pro-table/components/tool-print-body-cell.js +1 -1
  120. package/es/ele-pro-table/components/tool-print-header-cell.js +3 -2
  121. package/es/ele-pro-table/components/tool-print.d.ts +5 -5
  122. package/es/ele-pro-table/index.d.ts +71 -85
  123. package/es/ele-pro-table/index.js +19 -23
  124. package/es/ele-pro-table/props.d.ts +9 -11
  125. package/es/ele-pro-table/props.js +1 -1
  126. package/es/ele-segmented/index.d.ts +3 -1
  127. package/es/ele-segmented/index.js +27 -3
  128. package/es/ele-segmented/style/index.scss +7 -1
  129. package/es/ele-steps/index.d.ts +12 -12
  130. package/es/ele-steps/props.d.ts +3 -3
  131. package/es/ele-tab-tool/index.d.ts +6 -1
  132. package/es/ele-tab-tool/index.js +44 -3
  133. package/es/ele-tab-tool/props.d.ts +2 -0
  134. package/es/ele-tab-tool/props.js +3 -1
  135. package/es/ele-tab-wrap/components/tab-dropdown.js +9 -26
  136. package/es/ele-tab-wrap/index.js +21 -2
  137. package/es/ele-table/style/index.scss +1 -2
  138. package/es/ele-table-select/index.d.ts +6 -6
  139. package/es/ele-tabs/index.d.ts +21 -19
  140. package/es/ele-tabs/index.js +240 -115
  141. package/es/ele-tabs/props.d.ts +1 -6
  142. package/es/ele-tabs/props.js +1 -1
  143. package/es/ele-tabs/style/index.scss +152 -176
  144. package/es/ele-tabs/types.d.ts +29 -6
  145. package/es/ele-tool/index.js +6 -1
  146. package/es/ele-toolbar/index.d.ts +9 -9
  147. package/es/ele-tooltip/index.d.ts +15 -15
  148. package/es/ele-tooltip/props.d.ts +2 -2
  149. package/es/ele-tooltip/style/css-var.scss +4 -0
  150. package/es/ele-tree-select/index.d.ts +5 -5
  151. package/es/ele-upload-list/components/list-item.d.ts +31 -5
  152. package/es/ele-upload-list/components/list-item.js +146 -66
  153. package/es/ele-upload-list/index.d.ts +55 -26
  154. package/es/ele-upload-list/index.js +180 -97
  155. package/es/ele-upload-list/props.d.ts +22 -9
  156. package/es/ele-upload-list/props.js +20 -8
  157. package/es/ele-upload-list/style/css-var.scss +8 -0
  158. package/es/ele-upload-list/style/index.js +1 -1
  159. package/es/ele-upload-list/style/index.scss +425 -135
  160. package/es/ele-upload-list/types.d.ts +35 -11
  161. package/es/ele-virtual-table/components/body-cell.d.ts +2 -2
  162. package/es/ele-virtual-table/components/header-cell.d.ts +1 -1
  163. package/es/ele-virtual-table/components/header-row.d.ts +1 -1
  164. package/es/ele-virtual-table/index.d.ts +14 -22
  165. package/es/ele-virtual-table/index.js +8 -6
  166. package/es/ele-virtual-table/props.d.ts +6 -8
  167. package/es/icons/CornerLeftFilled.d.ts +2 -0
  168. package/es/icons/CornerLeftFilled.js +26 -0
  169. package/es/icons/CornerRightFilled.d.ts +2 -0
  170. package/es/icons/CornerRightFilled.js +26 -0
  171. package/es/icons/EyeOutlined.d.ts +2 -0
  172. package/es/icons/EyeOutlined.js +30 -0
  173. package/es/icons/FileOutlined.js +4 -4
  174. package/es/icons/SizeCompactOutlined.js +4 -4
  175. package/es/icons/SizeMiddleOutlined.d.ts +2 -0
  176. package/es/icons/SizeMiddleOutlined.js +34 -0
  177. package/es/icons/SizeSlackOutlined.js +4 -4
  178. package/es/icons/index.d.ts +4 -0
  179. package/es/icons/index.js +162 -154
  180. package/es/lang/en_US.js +4 -1
  181. package/es/lang/zh_CN.js +4 -1
  182. package/es/lang/zh_TW.js +4 -1
  183. package/es/style/plus.scss +1 -0
  184. package/es/style/themes/default.scss +84 -6
  185. package/es/style/themes/rounded.scss +6 -3
  186. package/es/style/themes/theme-util.scss +4 -0
  187. package/es/style/util.scss +10 -3
  188. package/es/utils/core.d.ts +4 -2
  189. package/es/utils/hook.d.ts +2 -0
  190. package/es/utils/hook.js +5 -1
  191. package/es/utils/menu-util.js +11 -5
  192. package/es/utils/message-box.js +5 -1
  193. package/es/utils/message.js +2 -2
  194. package/lib/core-components.cjs +60 -58
  195. package/lib/core-components.d.ts +1 -0
  196. package/lib/ele-admin-layout/components/layout-tabs.cjs +17 -75
  197. package/lib/ele-admin-layout/components/layout-tabs.d.ts +1 -6
  198. package/lib/ele-admin-layout/index.cjs +7 -2
  199. package/lib/ele-admin-layout/types.d.ts +2 -0
  200. package/lib/ele-app/el.d.ts +3 -0
  201. package/lib/ele-app/plus.d.ts +21 -0
  202. package/lib/ele-app/style/overwrite/css-var.scss +0 -2
  203. package/lib/ele-app/style/overwrite/date-picker/index.scss +13 -11
  204. package/lib/ele-app/style/overwrite/index.cjs +0 -1
  205. package/lib/ele-app/style/overwrite/index.scss +0 -1
  206. package/lib/ele-app/style/scrollbar/css-var.scss +17 -16
  207. package/lib/ele-app/types.d.ts +8 -1
  208. package/lib/ele-basic-select/index.d.ts +2 -2
  209. package/lib/ele-bottom-bar/index.cjs +36 -14
  210. package/lib/ele-bottom-bar/index.d.ts +9 -2
  211. package/lib/ele-bottom-bar/props.cjs +3 -1
  212. package/lib/ele-bottom-bar/props.d.ts +2 -0
  213. package/lib/ele-bottom-bar/style/index.scss +5 -0
  214. package/lib/ele-check-card/index.d.ts +2 -2
  215. package/lib/ele-cropper/components/cropper-tools.cjs +41 -13
  216. package/lib/ele-cropper/components/cropper-tools.d.ts +9 -3
  217. package/lib/ele-cropper/index.cjs +2 -1
  218. package/lib/ele-cropper/index.d.ts +3 -1
  219. package/lib/ele-cropper/props.cjs +2 -0
  220. package/lib/ele-cropper/props.d.ts +3 -1
  221. package/lib/ele-cropper/style/index.scss +3 -2
  222. package/lib/ele-cropper/types.d.ts +16 -0
  223. package/lib/ele-cropper-modal/index.cjs +2 -1
  224. package/lib/ele-cropper-modal/index.d.ts +3 -1
  225. package/lib/ele-cropper-modal/props.d.ts +1 -0
  226. package/lib/ele-data-table/components/table-columns.cjs +123 -0
  227. package/lib/ele-data-table/components/table-columns.d.ts +32 -0
  228. package/lib/ele-data-table/index.cjs +199 -117
  229. package/lib/ele-data-table/index.d.ts +327 -23
  230. package/lib/ele-data-table/props.d.ts +14 -18
  231. package/lib/ele-data-table/style/index.scss +0 -4
  232. package/lib/ele-data-table/types.d.ts +5 -2
  233. package/lib/ele-data-table/util.cjs +0 -108
  234. package/lib/ele-data-table/util.d.ts +1 -45
  235. package/lib/ele-drawer/index.cjs +8 -2
  236. package/lib/ele-drawer/index.d.ts +9 -8
  237. package/lib/ele-drawer/props.d.ts +2 -2
  238. package/lib/ele-dropdown/components/dropdown-menu-item.cjs +131 -0
  239. package/lib/ele-dropdown/components/dropdown-menu-item.d.ts +39 -0
  240. package/lib/ele-dropdown/components/dropdown-menus.cjs +110 -0
  241. package/lib/ele-dropdown/components/dropdown-menus.d.ts +44 -0
  242. package/lib/ele-dropdown/components/pro-dropdown.cjs +204 -0
  243. package/lib/ele-dropdown/components/pro-dropdown.d.ts +238 -0
  244. package/lib/ele-dropdown/index.cjs +149 -68
  245. package/lib/ele-dropdown/index.d.ts +521 -33
  246. package/lib/ele-dropdown/props.cjs +53 -6
  247. package/lib/ele-dropdown/props.d.ts +109 -15
  248. package/lib/ele-dropdown/style/index.cjs +4 -1
  249. package/lib/ele-dropdown/style/index.scss +226 -7
  250. package/lib/ele-dropdown/types.d.ts +2 -2
  251. package/lib/ele-edit-tag/index.d.ts +2 -2
  252. package/lib/ele-file-list/components/file-grid-item.cjs +18 -57
  253. package/lib/ele-file-list/components/file-grid-item.d.ts +11 -20
  254. package/lib/ele-file-list/components/file-grid.cjs +15 -38
  255. package/lib/ele-file-list/components/file-grid.d.ts +15 -19
  256. package/lib/ele-file-list/components/file-table-item.cjs +18 -57
  257. package/lib/ele-file-list/components/file-table-item.d.ts +11 -20
  258. package/lib/ele-file-list/components/file-table.cjs +16 -36
  259. package/lib/ele-file-list/components/file-table.d.ts +15 -19
  260. package/lib/ele-file-list/index.cjs +117 -19
  261. package/lib/ele-file-list/index.d.ts +33 -12
  262. package/lib/ele-file-list/props.cjs +4 -7
  263. package/lib/ele-file-list/props.d.ts +4 -5
  264. package/lib/ele-file-list/style/index.scss +10 -5
  265. package/lib/ele-file-list/types.d.ts +13 -1
  266. package/lib/ele-icon-select/components/icon-grid.d.ts +1 -1
  267. package/lib/ele-icon-select/index.d.ts +2 -2
  268. package/lib/ele-image-viewer/index.cjs +87 -0
  269. package/lib/ele-image-viewer/index.d.ts +120 -0
  270. package/lib/ele-image-viewer/props.cjs +35 -0
  271. package/lib/ele-image-viewer/props.d.ts +58 -0
  272. package/lib/ele-image-viewer/style/css-var.scss +8 -0
  273. package/lib/ele-image-viewer/style/index.cjs +3 -0
  274. package/lib/ele-image-viewer/style/index.scss +117 -0
  275. package/lib/ele-map-picker/components/map-view.d.ts +18 -18
  276. package/lib/ele-menus/components/item-title.cjs +107 -0
  277. package/lib/ele-menus/components/item-title.d.ts +48 -0
  278. package/lib/ele-menus/components/menu-items.cjs +268 -0
  279. package/lib/ele-menus/components/menu-items.d.ts +78 -0
  280. package/lib/ele-menus/index.cjs +278 -208
  281. package/lib/ele-menus/index.d.ts +77 -18
  282. package/lib/ele-menus/props.d.ts +2 -2
  283. package/lib/ele-menus/util.cjs +1 -242
  284. package/lib/ele-menus/util.d.ts +1 -62
  285. package/lib/ele-modal/index.d.ts +9 -9
  286. package/lib/ele-modal/props.d.ts +2 -2
  287. package/lib/ele-modal/util.cjs +8 -4
  288. package/lib/ele-modal/util.d.ts +1 -1
  289. package/lib/ele-pagination/index.d.ts +2 -2
  290. package/lib/ele-pagination/props.d.ts +1 -1
  291. package/lib/ele-popconfirm/index.cjs +31 -24
  292. package/lib/ele-popconfirm/index.d.ts +11 -14
  293. package/lib/ele-popconfirm/props.d.ts +3 -4
  294. package/lib/ele-popover/index.d.ts +11 -14
  295. package/lib/ele-popover/props.cjs +1 -1
  296. package/lib/ele-popover/props.d.ts +0 -1
  297. package/lib/ele-printer/util.cjs +1 -1
  298. package/lib/ele-pro-layout/components/pro-iframe.cjs +6 -4
  299. package/lib/ele-pro-layout/components/pro-iframe.d.ts +6 -6
  300. package/lib/ele-pro-layout/index.cjs +19 -5
  301. package/lib/ele-pro-layout/index.d.ts +1 -1
  302. package/lib/ele-pro-layout/props.cjs +3 -3
  303. package/lib/ele-pro-layout/props.d.ts +3 -3
  304. package/lib/ele-pro-layout/types.d.ts +9 -5
  305. package/lib/ele-pro-layout/util.cjs +12 -0
  306. package/lib/ele-pro-layout/util.d.ts +6 -0
  307. package/lib/ele-pro-table/components/table-tools.cjs +24 -16
  308. package/lib/ele-pro-table/components/table-tools.d.ts +25 -26
  309. package/lib/ele-pro-table/components/tool-column.cjs +4 -4
  310. package/lib/ele-pro-table/components/tool-column.d.ts +7 -7
  311. package/lib/ele-pro-table/components/tool-export.d.ts +5 -5
  312. package/lib/ele-pro-table/components/tool-print-body-cell.cjs +1 -1
  313. package/lib/ele-pro-table/components/tool-print-header-cell.cjs +3 -2
  314. package/lib/ele-pro-table/components/tool-print.d.ts +5 -5
  315. package/lib/ele-pro-table/index.cjs +17 -21
  316. package/lib/ele-pro-table/index.d.ts +71 -85
  317. package/lib/ele-pro-table/props.cjs +1 -1
  318. package/lib/ele-pro-table/props.d.ts +9 -11
  319. package/lib/ele-segmented/index.cjs +26 -2
  320. package/lib/ele-segmented/index.d.ts +3 -1
  321. package/lib/ele-segmented/style/index.scss +7 -1
  322. package/lib/ele-steps/index.d.ts +12 -12
  323. package/lib/ele-steps/props.d.ts +3 -3
  324. package/lib/ele-tab-tool/index.cjs +43 -2
  325. package/lib/ele-tab-tool/index.d.ts +6 -1
  326. package/lib/ele-tab-tool/props.cjs +3 -1
  327. package/lib/ele-tab-tool/props.d.ts +2 -0
  328. package/lib/ele-tab-wrap/components/tab-dropdown.cjs +8 -25
  329. package/lib/ele-tab-wrap/index.cjs +20 -1
  330. package/lib/ele-table/style/index.scss +1 -2
  331. package/lib/ele-table-select/index.d.ts +6 -6
  332. package/lib/ele-tabs/index.cjs +238 -113
  333. package/lib/ele-tabs/index.d.ts +21 -19
  334. package/lib/ele-tabs/props.cjs +1 -1
  335. package/lib/ele-tabs/props.d.ts +1 -6
  336. package/lib/ele-tabs/style/index.scss +152 -176
  337. package/lib/ele-tabs/types.d.ts +29 -6
  338. package/lib/ele-tool/index.cjs +6 -1
  339. package/lib/ele-toolbar/index.d.ts +9 -9
  340. package/lib/ele-tooltip/index.d.ts +15 -15
  341. package/lib/ele-tooltip/props.d.ts +2 -2
  342. package/lib/ele-tooltip/style/css-var.scss +4 -0
  343. package/lib/ele-tree-select/index.d.ts +5 -5
  344. package/lib/ele-upload-list/components/list-item.cjs +144 -64
  345. package/lib/ele-upload-list/components/list-item.d.ts +31 -5
  346. package/lib/ele-upload-list/index.cjs +178 -95
  347. package/lib/ele-upload-list/index.d.ts +55 -26
  348. package/lib/ele-upload-list/props.cjs +20 -8
  349. package/lib/ele-upload-list/props.d.ts +22 -9
  350. package/lib/ele-upload-list/style/css-var.scss +8 -0
  351. package/lib/ele-upload-list/style/index.cjs +1 -1
  352. package/lib/ele-upload-list/style/index.scss +425 -135
  353. package/lib/ele-upload-list/types.d.ts +35 -11
  354. package/lib/ele-virtual-table/components/body-cell.d.ts +2 -2
  355. package/lib/ele-virtual-table/components/header-cell.d.ts +1 -1
  356. package/lib/ele-virtual-table/components/header-row.d.ts +1 -1
  357. package/lib/ele-virtual-table/index.cjs +7 -5
  358. package/lib/ele-virtual-table/index.d.ts +14 -22
  359. package/lib/ele-virtual-table/props.d.ts +6 -8
  360. package/lib/icons/CornerLeftFilled.cjs +25 -0
  361. package/lib/icons/CornerLeftFilled.d.ts +2 -0
  362. package/lib/icons/CornerRightFilled.cjs +25 -0
  363. package/lib/icons/CornerRightFilled.d.ts +2 -0
  364. package/lib/icons/EyeOutlined.cjs +29 -0
  365. package/lib/icons/EyeOutlined.d.ts +2 -0
  366. package/lib/icons/FileOutlined.cjs +4 -4
  367. package/lib/icons/SizeCompactOutlined.cjs +4 -4
  368. package/lib/icons/SizeMiddleOutlined.cjs +33 -0
  369. package/lib/icons/SizeMiddleOutlined.d.ts +2 -0
  370. package/lib/icons/SizeSlackOutlined.cjs +4 -4
  371. package/lib/icons/index.cjs +8 -0
  372. package/lib/icons/index.d.ts +4 -0
  373. package/lib/lang/en_US.cjs +4 -1
  374. package/lib/lang/zh_CN.cjs +4 -1
  375. package/lib/lang/zh_TW.cjs +4 -1
  376. package/lib/style/plus.scss +1 -0
  377. package/lib/style/themes/default.scss +84 -6
  378. package/lib/style/themes/rounded.scss +6 -3
  379. package/lib/style/themes/theme-util.scss +4 -0
  380. package/lib/style/util.scss +10 -3
  381. package/lib/utils/core.d.ts +4 -2
  382. package/lib/utils/hook.cjs +5 -1
  383. package/lib/utils/hook.d.ts +2 -0
  384. package/lib/utils/menu-util.cjs +9 -3
  385. package/lib/utils/message-box.cjs +4 -0
  386. package/lib/utils/message.cjs +1 -1
  387. package/package.json +36 -36
  388. package/typings/global.d.ts +1 -0
  389. package/es/ele-app/style/overwrite/image-viewer/css-var.scss +0 -8
  390. package/es/ele-app/style/overwrite/image-viewer/index.js +0 -1
  391. package/es/ele-app/style/overwrite/image-viewer/index.scss +0 -10
  392. package/es/ele-tabs/components/tab-title.d.ts +0 -52
  393. package/es/ele-tabs/components/tab-title.js +0 -115
  394. package/lib/ele-app/style/overwrite/image-viewer/css-var.scss +0 -8
  395. package/lib/ele-app/style/overwrite/image-viewer/index.cjs +0 -2
  396. package/lib/ele-app/style/overwrite/image-viewer/index.scss +0 -10
  397. package/lib/ele-tabs/components/tab-title.cjs +0 -114
  398. package/lib/ele-tabs/components/tab-title.d.ts +0 -52
  399. /package/es/{ele-app/style/overwrite/image-viewer → ele-image-viewer/style}/index.d.ts +0 -0
  400. /package/lib/{ele-app/style/overwrite/image-viewer → ele-image-viewer/style}/index.d.ts +0 -0
@@ -35,20 +35,19 @@ const _sfc_main = vue.defineComponent({
35
35
  order: String,
36
36
  /** 自定义列配置 */
37
37
  columns: Array,
38
- /** 右键菜单 */
39
- contextMenus: [Array, Function],
40
- /** 右键菜单属性 */
41
- contextMenuProps: Object
38
+ /** 文件右键菜单是否打开 */
39
+ ctxMenuDropdownVisible: Boolean,
40
+ /** 当前打开的右键菜单对应的文件数据 */
41
+ contextMenuFileItem: Object
42
42
  },
43
43
  emits: {
44
44
  checkAllChange: () => true,
45
45
  itemClick: (_item) => true,
46
46
  itemCheckChange: (_item) => true,
47
- itemContextMenu: (_option) => true,
47
+ itemContextOpen: (_option) => true,
48
48
  sortChange: (_sort) => true
49
49
  },
50
50
  setup(props, { emit }) {
51
- const itemRefs = vue.ref([]);
52
51
  const tableCols = vue.computed(() => {
53
52
  if (props.columns) {
54
53
  return props.columns;
@@ -75,12 +74,6 @@ const _sfc_main = vue.defineComponent({
75
74
  ];
76
75
  return cols;
77
76
  });
78
- const getContextMenus = (item) => {
79
- if (typeof props.contextMenus === "function") {
80
- return props.contextMenus(item);
81
- }
82
- return props.contextMenus;
83
- };
84
77
  const handleCheckAllChange = () => {
85
78
  emit("checkAllChange");
86
79
  };
@@ -99,27 +92,15 @@ const _sfc_main = vue.defineComponent({
99
92
  emit("sortChange", sort);
100
93
  }
101
94
  };
102
- const handleItemContextMenu = (option) => {
103
- emit("itemContextMenu", option);
104
- };
105
- const handleItemContextOpen = (ref2) => {
106
- if (itemRefs.value) {
107
- itemRefs.value.forEach((r) => {
108
- if ((r == null ? void 0 : r.dropdownRef) && r.dropdownRef !== ref2) {
109
- r.dropdownRef.handleClose();
110
- }
111
- });
112
- }
95
+ const handleItemContextOpen = (option) => {
96
+ emit("itemContextOpen", option);
113
97
  };
114
98
  return {
115
- itemRefs,
116
99
  tableCols,
117
- getContextMenus,
118
100
  handleCheckAllChange,
119
101
  handleItemClick,
120
102
  handleItemCheckChange,
121
103
  handleSortChange,
122
- handleItemContextMenu,
123
104
  handleItemContextOpen
124
105
  };
125
106
  }
@@ -161,7 +142,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
161
142
  }, null, 2)) : vue.createCommentVNode("", true)
162
143
  ])) : vue.createCommentVNode("", true),
163
144
  vue.createElementVNode("div", {
164
- class: "ele-file-list-item-name",
145
+ class: vue.normalizeClass(["ele-file-list-item-name", { "is-sortable": _ctx.sortable }]),
165
146
  onClick: _cache[1] || (_cache[1] = ($event) => _ctx.handleSortChange("name"))
166
147
  }, [
167
148
  vue.createElementVNode("span", null, vue.toDisplayString(_ctx.nameText), 1),
@@ -171,12 +152,15 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
171
152
  order: _ctx.order,
172
153
  name: "name"
173
154
  }, null, 8, ["sort", "order"])) : vue.createCommentVNode("", true)
174
- ]),
155
+ ], 2),
175
156
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.tableCols, (col) => {
176
157
  return vue.openBlock(), vue.createElementBlock("div", {
177
158
  key: col.prop,
178
159
  style: vue.normalizeStyle(col.headerStyle || col.style),
179
- class: "ele-file-list-item-cell",
160
+ class: vue.normalizeClass([
161
+ "ele-file-list-item-cell",
162
+ { "is-sortable": col.sortable }
163
+ ]),
180
164
  onClick: ($event) => _ctx.handleSortChange(col.prop, col)
181
165
  }, [
182
166
  vue.createElementVNode("span", null, [
@@ -195,7 +179,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
195
179
  order: _ctx.order,
196
180
  name: col.prop
197
181
  }, null, 8, ["sort", "order", "name"])) : vue.createCommentVNode("", true)
198
- ], 12, _hoisted_5);
182
+ ], 14, _hoisted_5);
199
183
  }), 128))
200
184
  ])
201
185
  ])
@@ -204,19 +188,15 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
204
188
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.data, (item) => {
205
189
  return vue.openBlock(), vue.createBlock(_component_FileTableItem, {
206
190
  key: item.key,
207
- ref_for: true,
208
- ref: "itemRefs",
209
191
  item,
210
192
  selectionType: _ctx.selectionType,
211
193
  selections: _ctx.selections,
212
194
  current: _ctx.current,
213
195
  icons: _ctx.icons,
214
196
  columns: _ctx.tableCols,
215
- contextMenus: _ctx.getContextMenus(item),
216
- contextMenuProps: _ctx.contextMenuProps,
197
+ ctxMenuDropdownVisible: _ctx.ctxMenuDropdownVisible && _ctx.contextMenuFileItem === item,
217
198
  onClick: _ctx.handleItemClick,
218
199
  onCheckChange: _ctx.handleItemCheckChange,
219
- onContextMenu: _ctx.handleItemContextMenu,
220
200
  onContextOpen: _ctx.handleItemContextOpen
221
201
  }, vue.createSlots({ _: 2 }, [
222
202
  vue.renderList(Object.keys(_ctx.$slots), (name) => {
@@ -227,7 +207,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
227
207
  ])
228
208
  };
229
209
  })
230
- ]), 1032, ["item", "selectionType", "selections", "current", "icons", "columns", "contextMenus", "contextMenuProps", "onClick", "onCheckChange", "onContextMenu", "onContextOpen"]);
210
+ ]), 1032, ["item", "selectionType", "selections", "current", "icons", "columns", "ctxMenuDropdownVisible", "onClick", "onCheckChange", "onContextOpen"]);
231
211
  }), 128))
232
212
  ])
233
213
  ]),
@@ -1,7 +1,5 @@
1
- import { PropType, Ref } from 'vue';
2
- import { EleDropdownProps, EleDropdownInstance } from '../../ele-app/plus';
3
- import { TableItemInstance } from '../props';
4
- import { IconItem, FileItem, ColumnItem, ItemContextMenuOption, SelectionType, ContextMenus } from '../types';
1
+ import { PropType } from 'vue';
2
+ import { IconItem, FileItem, ColumnItem, SelectionType, ContextOpenOption } from '../types';
5
3
 
6
4
  declare const _default: import('vue').DefineComponent<{
7
5
  /** 文件数据 */
@@ -32,25 +30,22 @@ declare const _default: import('vue').DefineComponent<{
32
30
  order: StringConstructor;
33
31
  /** 自定义列配置 */
34
32
  columns: PropType<ColumnItem[]>;
35
- /** 右键菜单 */
36
- contextMenus: PropType<ContextMenus>;
37
- /** 右键菜单属性 */
38
- contextMenuProps: PropType<EleDropdownProps>;
33
+ /** 文件右键菜单是否打开 */
34
+ ctxMenuDropdownVisible: BooleanConstructor;
35
+ /** 当前打开的右键菜单对应的文件数据 */
36
+ contextMenuFileItem: PropType<FileItem | null>;
39
37
  }, {
40
- itemRefs: Ref<TableItemInstance[]>;
41
38
  tableCols: import('vue').ComputedRef<ColumnItem[]>;
42
- getContextMenus: (item: FileItem) => import('../../ele-dropdown/types').DropdownItem[] | undefined;
43
39
  handleCheckAllChange: () => void;
44
40
  handleItemClick: (item: FileItem) => void;
45
41
  handleItemCheckChange: (item: FileItem) => void;
46
42
  handleSortChange: (sort: string, col?: ColumnItem) => void;
47
- handleItemContextMenu: (option: ItemContextMenuOption) => void;
48
- handleItemContextOpen: (ref: EleDropdownInstance) => void;
43
+ handleItemContextOpen: (option: ContextOpenOption) => void;
49
44
  }, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
50
45
  checkAllChange: () => true;
51
46
  itemClick: (_item: FileItem) => true;
52
47
  itemCheckChange: (_item: FileItem) => true;
53
- itemContextMenu: (_option: ItemContextMenuOption) => true;
48
+ itemContextOpen: (_option: ContextOpenOption) => true;
54
49
  sortChange: (_sort: string) => true;
55
50
  }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
56
51
  /** 文件数据 */
@@ -81,19 +76,20 @@ declare const _default: import('vue').DefineComponent<{
81
76
  order: StringConstructor;
82
77
  /** 自定义列配置 */
83
78
  columns: PropType<ColumnItem[]>;
84
- /** 右键菜单 */
85
- contextMenus: PropType<ContextMenus>;
86
- /** 右键菜单属性 */
87
- contextMenuProps: PropType<EleDropdownProps>;
79
+ /** 文件右键菜单是否打开 */
80
+ ctxMenuDropdownVisible: BooleanConstructor;
81
+ /** 当前打开的右键菜单对应的文件数据 */
82
+ contextMenuFileItem: PropType<FileItem | null>;
88
83
  }>> & {
89
84
  onItemClick?: ((_item: FileItem) => any) | undefined;
90
85
  onSortChange?: ((_sort: string) => any) | undefined;
91
86
  onCheckAllChange?: (() => any) | undefined;
92
87
  onItemCheckChange?: ((_item: FileItem) => any) | undefined;
93
- onItemContextMenu?: ((_option: ItemContextMenuOption) => any) | undefined;
88
+ onItemContextOpen?: ((_option: ContextOpenOption) => any) | undefined;
94
89
  }, {
95
90
  sortable: boolean;
96
- isIndeterminate: boolean;
91
+ ctxMenuDropdownVisible: boolean;
97
92
  isCheckAll: boolean;
93
+ isIndeterminate: boolean;
98
94
  }, {}>;
99
95
  export default _default;
@@ -2,24 +2,30 @@
2
2
  const vue = require("vue");
3
3
  const core = require("../utils/core");
4
4
  const receiver = require("../ele-config-provider/receiver");
5
+ const EleDropdown = require("../ele-dropdown/index");
5
6
  const FileGrid = require("./components/file-grid");
6
7
  const FileTable = require("./components/file-table");
7
8
  const props = require("./props");
8
9
  const GRID_ITEM_SEL = ".ele-file-list-body>.ele-file-list-item";
9
10
  const _sfc_main = vue.defineComponent({
10
11
  name: "EleFileList",
11
- components: { FileGrid, FileTable },
12
+ components: { EleDropdown, FileGrid, FileTable },
12
13
  props: props.fileListProps,
13
14
  emits: props.fileListEmits,
14
15
  setup(props2, { emit }) {
15
16
  const { lang } = receiver.useLocale("fileList", props2);
16
- const selectorStyle = vue.ref({
17
+ const selectorStyle = vue.reactive({
17
18
  top: "0px",
18
19
  left: "0px",
19
20
  width: "0px",
20
21
  height: "0px",
21
22
  display: "none"
22
23
  });
24
+ const ctxMenuDropdownRef = vue.ref(null);
25
+ const ctxMenuDropdownItems = vue.shallowRef([]);
26
+ const ctxMenuDropdownVirtualRef = vue.ref();
27
+ const ctxMenuDropdownVisible = vue.ref(false);
28
+ const contextMenuFileItem = vue.ref(null);
23
29
  const isCheckAll = vue.computed(() => {
24
30
  return !!(props2.data && props2.data.length && props2.selections && props2.selections.length && !props2.data.some(
25
31
  (d) => {
@@ -98,6 +104,62 @@ const _sfc_main = vue.defineComponent({
98
104
  const handleItemContextMenu = (option) => {
99
105
  emit("itemContextMenu", option);
100
106
  };
107
+ const handleItemCtxMenuClick = (key) => {
108
+ if (contextMenuFileItem.value != null) {
109
+ emit("itemContextMenu", { key, item: contextMenuFileItem.value });
110
+ }
111
+ };
112
+ const handleItemCtxMenuVisible = (visible) => {
113
+ ctxMenuDropdownVisible.value = visible;
114
+ if (visible && ctxMenuDropdownRef.value != null && contextMenuFileItem.value != null) {
115
+ emit(
116
+ "itemContextOpen",
117
+ ctxMenuDropdownRef.value,
118
+ contextMenuFileItem.value
119
+ );
120
+ }
121
+ };
122
+ const getContextMenus = (item) => {
123
+ if (typeof props2.contextMenus === "function") {
124
+ return props2.contextMenus(item);
125
+ }
126
+ return props2.contextMenus;
127
+ };
128
+ const hideAllDropdown = () => {
129
+ if (ctxMenuDropdownRef.value) {
130
+ ctxMenuDropdownRef.value.handleClose();
131
+ }
132
+ };
133
+ const showItemContextMenu = (item, triggerEl) => {
134
+ if (contextMenuFileItem.value != null && contextMenuFileItem.value === item) {
135
+ return;
136
+ }
137
+ hideAllDropdown();
138
+ vue.nextTick(() => {
139
+ contextMenuFileItem.value = item;
140
+ ctxMenuDropdownItems.value = getContextMenus(item) || [];
141
+ ctxMenuDropdownVirtualRef.value = triggerEl;
142
+ if (ctxMenuDropdownItems.value.length) {
143
+ vue.nextTick(() => {
144
+ ctxMenuDropdownRef.value && ctxMenuDropdownRef.value.handleOpen();
145
+ });
146
+ }
147
+ });
148
+ };
149
+ const handleItemContextOpen = (option) => {
150
+ if (props2.contextMenus == null) {
151
+ return;
152
+ }
153
+ option.e.preventDefault();
154
+ option.e.stopPropagation();
155
+ if (ctxMenuDropdownVirtualRef.value !== option.triggerEl) {
156
+ showItemContextMenu(option.item, option.triggerEl);
157
+ return;
158
+ }
159
+ if (ctxMenuDropdownItems.value.length && ctxMenuDropdownRef.value) {
160
+ ctxMenuDropdownRef.value.handleOpen();
161
+ }
162
+ };
101
163
  const handleMousedown = (event) => {
102
164
  if (!props2.boxChoose || props2.selectionType !== "checkbox") {
103
165
  return;
@@ -120,13 +182,11 @@ const _sfc_main = vue.defineComponent({
120
182
  Math.abs(moveY - downY),
121
183
  target.clientHeight - top
122
184
  );
123
- selectorStyle.value = {
124
- left: left + "px",
125
- top: top + "px",
126
- width: width + "px",
127
- height: height + "px",
128
- display: "block"
129
- };
185
+ selectorStyle.left = left + "px";
186
+ selectorStyle.top = top + "px";
187
+ selectorStyle.width = width + "px";
188
+ selectorStyle.height = height + "px";
189
+ selectorStyle.display = "block";
130
190
  if (width < 6 || height < 6) {
131
191
  items.forEach((item) => {
132
192
  item.classList.remove("is-active");
@@ -148,7 +208,7 @@ const _sfc_main = vue.defineComponent({
148
208
  });
149
209
  }, 60);
150
210
  const mouseupFn = (e) => {
151
- selectorStyle.value = { ...selectorStyle.value, display: "none" };
211
+ selectorStyle.display = "none";
152
212
  const moveX = Math.max(e.clientX, position.left);
153
213
  const moveY = Math.max(e.clientY, position.top);
154
214
  const left = Math.min(moveX, downX) - position.left;
@@ -181,9 +241,26 @@ const _sfc_main = vue.defineComponent({
181
241
  document.addEventListener("mousemove", mousemoveFn);
182
242
  document.addEventListener("mouseup", mouseupFn);
183
243
  };
244
+ vue.watch(
245
+ [() => props2.grid, () => props2.data],
246
+ () => {
247
+ hideAllDropdown();
248
+ ctxMenuDropdownVirtualRef.value = null;
249
+ contextMenuFileItem.value = null;
250
+ },
251
+ { deep: true }
252
+ );
253
+ vue.onBeforeUnmount(() => {
254
+ contextMenuFileItem.value = null;
255
+ });
184
256
  return {
185
257
  lang,
186
258
  selectorStyle,
259
+ ctxMenuDropdownRef,
260
+ ctxMenuDropdownItems,
261
+ ctxMenuDropdownVirtualRef,
262
+ ctxMenuDropdownVisible,
263
+ contextMenuFileItem,
187
264
  isCheckAll,
188
265
  isIndeterminate,
189
266
  handleCheckAllChange,
@@ -191,6 +268,9 @@ const _sfc_main = vue.defineComponent({
191
268
  handleItemClick,
192
269
  handleSortChange,
193
270
  handleItemContextMenu,
271
+ handleItemCtxMenuClick,
272
+ handleItemCtxMenuVisible,
273
+ handleItemContextOpen,
194
274
  handleMousedown
195
275
  };
196
276
  }
@@ -205,6 +285,7 @@ const _export_sfc = (sfc, props2) => {
205
285
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
206
286
  const _component_FileGrid = vue.resolveComponent("FileGrid");
207
287
  const _component_FileTable = vue.resolveComponent("FileTable");
288
+ const _component_EleDropdown = vue.resolveComponent("EleDropdown");
208
289
  return vue.openBlock(), vue.createElementBlock("div", {
209
290
  class: "ele-file-list-group",
210
291
  onMousedown: _cache[0] || (_cache[0] = (...args) => _ctx.handleMousedown && _ctx.handleMousedown(...args))
@@ -220,12 +301,12 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
220
301
  isIndeterminate: _ctx.isIndeterminate,
221
302
  checkAllText: _ctx.lang.selectAll,
222
303
  selectedText: _ctx.lang.selectTips,
223
- contextMenus: _ctx.contextMenus,
224
- contextMenuProps: _ctx.contextMenuProps,
304
+ ctxMenuDropdownVisible: _ctx.ctxMenuDropdownVisible,
305
+ contextMenuFileItem: _ctx.contextMenuFileItem,
225
306
  onCheckAllChange: _ctx.handleCheckAllChange,
226
307
  onItemClick: _ctx.handleItemClick,
227
308
  onItemCheckChange: _ctx.handleItemCheckChange,
228
- onItemContextMenu: _ctx.handleItemContextMenu
309
+ onItemContextOpen: _ctx.handleItemContextOpen
229
310
  }, vue.createSlots({ _: 2 }, [
230
311
  vue.renderList(Object.keys(_ctx.$slots), (name) => {
231
312
  return {
@@ -235,7 +316,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
235
316
  ])
236
317
  };
237
318
  })
238
- ]), 1032, ["data", "icons", "selectionType", "selections", "current", "isCheckAll", "isIndeterminate", "checkAllText", "selectedText", "contextMenus", "contextMenuProps", "onCheckAllChange", "onItemClick", "onItemCheckChange", "onItemContextMenu"])) : (vue.openBlock(), vue.createBlock(_component_FileTable, {
319
+ ]), 1032, ["data", "icons", "selectionType", "selections", "current", "isCheckAll", "isIndeterminate", "checkAllText", "selectedText", "ctxMenuDropdownVisible", "contextMenuFileItem", "onCheckAllChange", "onItemClick", "onItemCheckChange", "onItemContextOpen"])) : (vue.openBlock(), vue.createBlock(_component_FileTable, {
239
320
  key: 1,
240
321
  data: _ctx.data,
241
322
  icons: _ctx.icons,
@@ -251,12 +332,12 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
251
332
  sort: _ctx.sort,
252
333
  order: _ctx.order,
253
334
  columns: _ctx.columns,
254
- contextMenus: _ctx.contextMenus,
255
- contextMenuProps: _ctx.contextMenuProps,
335
+ ctxMenuDropdownVisible: _ctx.ctxMenuDropdownVisible,
336
+ contextMenuFileItem: _ctx.contextMenuFileItem,
256
337
  onCheckAllChange: _ctx.handleCheckAllChange,
257
338
  onItemClick: _ctx.handleItemClick,
258
339
  onItemCheckChange: _ctx.handleItemCheckChange,
259
- onItemContextMenu: _ctx.handleItemContextMenu,
340
+ onItemContextOpen: _ctx.handleItemContextOpen,
260
341
  onSortChange: _ctx.handleSortChange
261
342
  }, vue.createSlots({ _: 2 }, [
262
343
  vue.renderList(Object.keys(_ctx.$slots), (name) => {
@@ -267,11 +348,28 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
267
348
  ])
268
349
  };
269
350
  })
270
- ]), 1032, ["data", "icons", "selectionType", "selections", "current", "isCheckAll", "isIndeterminate", "nameText", "sizeText", "timeText", "sortable", "sort", "order", "columns", "contextMenus", "contextMenuProps", "onCheckAllChange", "onItemClick", "onItemCheckChange", "onItemContextMenu", "onSortChange"])),
351
+ ]), 1032, ["data", "icons", "selectionType", "selections", "current", "isCheckAll", "isIndeterminate", "nameText", "sizeText", "timeText", "sortable", "sort", "order", "columns", "ctxMenuDropdownVisible", "contextMenuFileItem", "onCheckAllChange", "onItemClick", "onItemCheckChange", "onItemContextOpen", "onSortChange"])),
271
352
  vue.createElementVNode("div", {
272
353
  class: "ele-file-list-selector",
273
354
  style: vue.normalizeStyle(_ctx.selectorStyle)
274
- }, null, 4)
355
+ }, null, 4),
356
+ _ctx.contextMenus ? (vue.openBlock(), vue.createBlock(_component_EleDropdown, vue.mergeProps({
357
+ key: 2,
358
+ persistent: false,
359
+ placement: "bottom-start",
360
+ popperClass: "ele-file-list-item-context"
361
+ }, _ctx.contextMenuProps || {}, {
362
+ ref: "ctxMenuDropdownRef",
363
+ componentType: "pro",
364
+ preventContextmenu: true,
365
+ trigger: "click",
366
+ virtualTriggering: true,
367
+ virtualRef: _ctx.ctxMenuDropdownVirtualRef,
368
+ disabled: !_ctx.ctxMenuDropdownItems.length,
369
+ items: _ctx.ctxMenuDropdownItems,
370
+ onCommand: _ctx.handleItemCtxMenuClick,
371
+ onVisibleChange: _ctx.handleItemCtxMenuVisible
372
+ }), null, 16, ["virtualRef", "disabled", "items", "onCommand", "onVisibleChange"])) : vue.createCommentVNode("", true)
275
373
  ], 32);
276
374
  }
277
375
  const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
@@ -1,5 +1,6 @@
1
- import { Ref } from 'vue';
2
- import { FileItem, SortValue, ItemContextMenuOption, FileListLocale } from './types';
1
+ import { EleDropdownInstance } from '../ele-app/plus';
2
+ import { DropdownItem } from '../ele-dropdown/types';
3
+ import { FileItem, SortValue, ItemContextMenuOption, ContextOpenOption, FileListLocale } from './types';
3
4
 
4
5
  declare const _default: import('vue').DefineComponent<{
5
6
  data: {
@@ -20,10 +21,7 @@ declare const _default: import('vue').DefineComponent<{
20
21
  type: import('vue').PropType<import('./types').IconItem[]>;
21
22
  default: () => import('./types').IconItem[];
22
23
  };
23
- smallIcons: {
24
- type: import('vue').PropType<import('./types').IconItem[]>;
25
- default: () => import('./types').IconItem[];
26
- };
24
+ smallIcons: import('vue').PropType<import('./types').IconItem[]>;
27
25
  columns: import('vue').PropType<import('./types').ColumnItem[]>;
28
26
  boxChoose: BooleanConstructor;
29
27
  contextMenus: import('vue').PropType<import('./types').ContextMenus>;
@@ -31,7 +29,29 @@ declare const _default: import('vue').DefineComponent<{
31
29
  locale: import('vue').PropType<Partial<FileListLocale>>;
32
30
  }, {
33
31
  lang: import('vue').ComputedRef<FileListLocale>;
34
- selectorStyle: Ref<Partial<import('vue').CSSProperties>>;
32
+ selectorStyle: {
33
+ top: string;
34
+ left: string;
35
+ width: string;
36
+ height: string;
37
+ display: string;
38
+ };
39
+ ctxMenuDropdownRef: import('vue').Ref<EleDropdownInstance>;
40
+ ctxMenuDropdownItems: import('vue').ShallowRef<DropdownItem[]>;
41
+ ctxMenuDropdownVirtualRef: import('vue').Ref<any>;
42
+ ctxMenuDropdownVisible: import('vue').Ref<any>;
43
+ contextMenuFileItem: import('vue').Ref<{
44
+ [x: string]: unknown;
45
+ [x: number]: unknown;
46
+ [x: symbol]: unknown;
47
+ key: string | number;
48
+ name: string;
49
+ url?: string | undefined;
50
+ thumbnail?: string | undefined;
51
+ isDirectory?: boolean | undefined;
52
+ length?: string | undefined;
53
+ updateTime?: string | undefined;
54
+ } | null | undefined>;
35
55
  isCheckAll: import('vue').ComputedRef<boolean>;
36
56
  isIndeterminate: import('vue').ComputedRef<boolean>;
37
57
  handleCheckAllChange: () => void;
@@ -39,6 +59,9 @@ declare const _default: import('vue').DefineComponent<{
39
59
  handleItemClick: (item: FileItem) => void;
40
60
  handleSortChange: (name: string) => void;
41
61
  handleItemContextMenu: (option: ItemContextMenuOption) => void;
62
+ handleItemCtxMenuClick: (key: string) => void;
63
+ handleItemCtxMenuVisible: (visible: boolean) => void;
64
+ handleItemContextOpen: (option: ContextOpenOption) => void;
42
65
  handleMousedown: (event: MouseEvent) => void;
43
66
  }, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
44
67
  itemClick: (_item: FileItem) => boolean;
@@ -46,6 +69,7 @@ declare const _default: import('vue').DefineComponent<{
46
69
  'update:selections': (_selection?: FileItem[]) => boolean;
47
70
  'update:current': (_current?: FileItem | null) => boolean;
48
71
  itemContextMenu: (_option: ItemContextMenuOption) => boolean;
72
+ itemContextOpen: (_dropdownRef: EleDropdownInstance, _item: FileItem) => boolean;
49
73
  }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
50
74
  data: {
51
75
  type: import('vue').PropType<FileItem[]>;
@@ -65,10 +89,7 @@ declare const _default: import('vue').DefineComponent<{
65
89
  type: import('vue').PropType<import('./types').IconItem[]>;
66
90
  default: () => import('./types').IconItem[];
67
91
  };
68
- smallIcons: {
69
- type: import('vue').PropType<import('./types').IconItem[]>;
70
- default: () => import('./types').IconItem[];
71
- };
92
+ smallIcons: import('vue').PropType<import('./types').IconItem[]>;
72
93
  columns: import('vue').PropType<import('./types').ColumnItem[]>;
73
94
  boxChoose: BooleanConstructor;
74
95
  contextMenus: import('vue').PropType<import('./types').ContextMenus>;
@@ -79,12 +100,12 @@ declare const _default: import('vue').DefineComponent<{
79
100
  onSortChange?: ((_sorter: SortValue) => any) | undefined;
80
101
  "onUpdate:selections"?: ((_selection?: FileItem[] | undefined) => any) | undefined;
81
102
  "onUpdate:current"?: ((_current?: FileItem | null | undefined) => any) | undefined;
103
+ onItemContextOpen?: ((_dropdownRef: EleDropdownInstance, _item: FileItem) => any) | undefined;
82
104
  onItemContextMenu?: ((_option: ItemContextMenuOption) => any) | undefined;
83
105
  }, {
84
106
  grid: boolean;
85
107
  sortable: boolean;
86
108
  icons: import('./types').IconItem[];
87
- smallIcons: import('./types').IconItem[];
88
109
  boxChoose: boolean;
89
110
  }, {}>;
90
111
  export default _default;
@@ -32,12 +32,7 @@ const fileListProps = {
32
32
  }
33
33
  },
34
34
  /** 表格模式后缀对应图标 */
35
- smallIcons: {
36
- type: Array,
37
- default: () => {
38
- return icons.smallIcons;
39
- }
40
- },
35
+ smallIcons: Array,
41
36
  /** 表格模式自定义列配置 */
42
37
  columns: Array,
43
38
  /** 多选时是否支持鼠标框选 */
@@ -59,7 +54,9 @@ const fileListEmits = {
59
54
  /** 更新单选选中数据 */
60
55
  "update:current": (_current) => true,
61
56
  /** item 右键菜单项点击事件 */
62
- itemContextMenu: (_option) => true
57
+ itemContextMenu: (_option) => true,
58
+ /** item 右键菜单打开事件 */
59
+ itemContextOpen: (_dropdownRef, _item) => true
63
60
  };
64
61
  exports.fileListEmits = fileListEmits;
65
62
  exports.fileListProps = fileListProps;
@@ -1,5 +1,5 @@
1
1
  import { PropType, ExtractPropTypes } from 'vue';
2
- import { EleDropdownProps } from '../ele-app/plus';
2
+ import { EleDropdownProps, EleDropdownInstance } from '../ele-app/plus';
3
3
  import { default as FileGridItem } from './components/file-grid-item';
4
4
  import { default as FileTableItem } from './components/file-table-item';
5
5
  import { IconItem, FileItem, SortValue, ItemContextMenuOption, ColumnItem, SelectionType, ContextMenus, FileListLocale } from './types';
@@ -36,10 +36,7 @@ export declare const fileListProps: {
36
36
  default: () => IconItem[];
37
37
  };
38
38
  /** 表格模式后缀对应图标 */
39
- smallIcons: {
40
- type: PropType<IconItem[]>;
41
- default: () => IconItem[];
42
- };
39
+ smallIcons: PropType<IconItem[]>;
43
40
  /** 表格模式自定义列配置 */
44
41
  columns: PropType<ColumnItem[]>;
45
42
  /** 多选时是否支持鼠标框选 */
@@ -66,6 +63,8 @@ export declare const fileListEmits: {
66
63
  'update:current': (_current?: FileItem | null) => boolean;
67
64
  /** item 右键菜单项点击事件 */
68
65
  itemContextMenu: (_option: ItemContextMenuOption) => boolean;
66
+ /** item 右键菜单打开事件 */
67
+ itemContextOpen: (_dropdownRef: EleDropdownInstance, _item: FileItem) => boolean;
69
68
  };
70
69
  /**
71
70
  * 网格 item 实例
@@ -131,10 +131,12 @@
131
131
  .ele-file-list-body {
132
132
  padding-top: eleVar('file', 'item-space');
133
133
  padding-left: eleVar('file', 'item-space');
134
+ box-sizing: border-box;
134
135
  }
135
136
 
136
137
  /* item */
137
138
  .ele-file-list-item {
139
+ flex-shrink: 0;
138
140
  width: eleVar('file', 'item-width');
139
141
  margin-right: eleVar('file', 'item-space');
140
142
  margin-bottom: eleVar('file', 'item-space');
@@ -171,7 +173,7 @@
171
173
  width: eleVar('file', 'image-size');
172
174
  height: eleVar('file', 'image-size');
173
175
  border-radius: eleVar('file', 'image-radius');
174
- object-fit: cover;
176
+ object-fit: contain;
175
177
  }
176
178
  }
177
179
 
@@ -332,7 +334,7 @@
332
334
 
333
335
  & > .ele-file-list-item-image {
334
336
  border-radius: eleVar('file', 'td-image-radius');
335
- object-fit: cover;
337
+ object-fit: contain;
336
338
  }
337
339
  }
338
340
 
@@ -393,10 +395,13 @@
393
395
  .ele-file-list-item-name,
394
396
  .ele-file-list-item-cell {
395
397
  transition: color $transition-base;
396
- cursor: pointer;
397
398
 
398
- &:hover {
399
- color: elVar('color-primary');
399
+ &.is-sortable {
400
+ cursor: pointer;
401
+
402
+ &:hover {
403
+ color: elVar('color-primary');
404
+ }
400
405
  }
401
406
  }
402
407
  }
@@ -23,7 +23,7 @@ export type IconItemType = 'file' | 'dir';
23
23
  */
24
24
  export interface FileItem extends Record<string | number | symbol, unknown> {
25
25
  /** 唯一标识 */
26
- key: string;
26
+ key: string | number;
27
27
  /** 文件名称 */
28
28
  name: string;
29
29
  /** 文件访问地址 */
@@ -93,6 +93,18 @@ export type ContextMenusFunc = (item: FileItem) => DropdownItem[];
93
93
  */
94
94
  export type ContextMenus = DropdownItem[] | ContextMenusFunc;
95
95
 
96
+ /**
97
+ * 右键菜单打开参数
98
+ */
99
+ export interface ContextOpenOption {
100
+ /** 数据 */
101
+ item: FileItem;
102
+ /** 触发节点 */
103
+ triggerEl: HTMLElement;
104
+ /** 事件对象 */
105
+ e: MouseEvent;
106
+ }
107
+
96
108
  /**
97
109
  * 国际化
98
110
  */