@element-plus/nightly 0.0.20260224 → 0.0.20260225

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 (307) hide show
  1. package/dist/index.css +1 -1
  2. package/dist/index.full.js +13 -6
  3. package/dist/index.full.min.js +8 -8
  4. package/dist/index.full.min.js.map +1 -1
  5. package/dist/index.full.min.mjs +3 -3
  6. package/dist/index.full.min.mjs.map +1 -1
  7. package/dist/index.full.mjs +13 -6
  8. package/dist/locale/af.js +1 -1
  9. package/dist/locale/af.min.js +1 -1
  10. package/dist/locale/af.min.mjs +1 -1
  11. package/dist/locale/af.mjs +1 -1
  12. package/dist/locale/ar-eg.js +1 -1
  13. package/dist/locale/ar-eg.min.js +1 -1
  14. package/dist/locale/ar-eg.min.mjs +1 -1
  15. package/dist/locale/ar-eg.mjs +1 -1
  16. package/dist/locale/ar.js +1 -1
  17. package/dist/locale/ar.min.js +1 -1
  18. package/dist/locale/ar.min.mjs +1 -1
  19. package/dist/locale/ar.mjs +1 -1
  20. package/dist/locale/az.js +1 -1
  21. package/dist/locale/az.min.js +1 -1
  22. package/dist/locale/az.min.mjs +1 -1
  23. package/dist/locale/az.mjs +1 -1
  24. package/dist/locale/bg.js +1 -1
  25. package/dist/locale/bg.min.js +1 -1
  26. package/dist/locale/bg.min.mjs +1 -1
  27. package/dist/locale/bg.mjs +1 -1
  28. package/dist/locale/bn.js +1 -1
  29. package/dist/locale/bn.min.js +1 -1
  30. package/dist/locale/bn.min.mjs +1 -1
  31. package/dist/locale/bn.mjs +1 -1
  32. package/dist/locale/ca.js +1 -1
  33. package/dist/locale/ca.min.js +1 -1
  34. package/dist/locale/ca.min.mjs +1 -1
  35. package/dist/locale/ca.mjs +1 -1
  36. package/dist/locale/ckb.js +1 -1
  37. package/dist/locale/ckb.min.js +1 -1
  38. package/dist/locale/ckb.min.mjs +1 -1
  39. package/dist/locale/ckb.mjs +1 -1
  40. package/dist/locale/cs.js +1 -1
  41. package/dist/locale/cs.min.js +1 -1
  42. package/dist/locale/cs.min.mjs +1 -1
  43. package/dist/locale/cs.mjs +1 -1
  44. package/dist/locale/da.js +1 -1
  45. package/dist/locale/da.min.js +1 -1
  46. package/dist/locale/da.min.mjs +1 -1
  47. package/dist/locale/da.mjs +1 -1
  48. package/dist/locale/de.js +1 -1
  49. package/dist/locale/de.min.js +1 -1
  50. package/dist/locale/de.min.mjs +1 -1
  51. package/dist/locale/de.mjs +1 -1
  52. package/dist/locale/el.js +1 -1
  53. package/dist/locale/el.min.js +1 -1
  54. package/dist/locale/el.min.mjs +1 -1
  55. package/dist/locale/el.mjs +1 -1
  56. package/dist/locale/en.js +1 -1
  57. package/dist/locale/en.min.js +1 -1
  58. package/dist/locale/en.min.mjs +1 -1
  59. package/dist/locale/en.mjs +1 -1
  60. package/dist/locale/eo.js +1 -1
  61. package/dist/locale/eo.min.js +1 -1
  62. package/dist/locale/eo.min.mjs +1 -1
  63. package/dist/locale/eo.mjs +1 -1
  64. package/dist/locale/es.js +1 -1
  65. package/dist/locale/es.min.js +1 -1
  66. package/dist/locale/es.min.mjs +1 -1
  67. package/dist/locale/es.mjs +1 -1
  68. package/dist/locale/et.js +1 -1
  69. package/dist/locale/et.min.js +1 -1
  70. package/dist/locale/et.min.mjs +1 -1
  71. package/dist/locale/et.mjs +1 -1
  72. package/dist/locale/eu.js +1 -1
  73. package/dist/locale/eu.min.js +1 -1
  74. package/dist/locale/eu.min.mjs +1 -1
  75. package/dist/locale/eu.mjs +1 -1
  76. package/dist/locale/fa.js +1 -1
  77. package/dist/locale/fa.min.js +1 -1
  78. package/dist/locale/fa.min.mjs +1 -1
  79. package/dist/locale/fa.mjs +1 -1
  80. package/dist/locale/fi.js +1 -1
  81. package/dist/locale/fi.min.js +1 -1
  82. package/dist/locale/fi.min.mjs +1 -1
  83. package/dist/locale/fi.mjs +1 -1
  84. package/dist/locale/fr.js +1 -1
  85. package/dist/locale/fr.min.js +1 -1
  86. package/dist/locale/fr.min.mjs +1 -1
  87. package/dist/locale/fr.mjs +1 -1
  88. package/dist/locale/he.js +1 -1
  89. package/dist/locale/he.min.js +1 -1
  90. package/dist/locale/he.min.mjs +1 -1
  91. package/dist/locale/he.mjs +1 -1
  92. package/dist/locale/hi.js +1 -1
  93. package/dist/locale/hi.min.js +1 -1
  94. package/dist/locale/hi.min.mjs +1 -1
  95. package/dist/locale/hi.mjs +1 -1
  96. package/dist/locale/hr.js +1 -1
  97. package/dist/locale/hr.min.js +1 -1
  98. package/dist/locale/hr.min.mjs +1 -1
  99. package/dist/locale/hr.mjs +1 -1
  100. package/dist/locale/hu.js +1 -1
  101. package/dist/locale/hu.min.js +1 -1
  102. package/dist/locale/hu.min.mjs +1 -1
  103. package/dist/locale/hu.mjs +1 -1
  104. package/dist/locale/hy-am.js +1 -1
  105. package/dist/locale/hy-am.min.js +1 -1
  106. package/dist/locale/hy-am.min.mjs +1 -1
  107. package/dist/locale/hy-am.mjs +1 -1
  108. package/dist/locale/id.js +1 -1
  109. package/dist/locale/id.min.js +1 -1
  110. package/dist/locale/id.min.mjs +1 -1
  111. package/dist/locale/id.mjs +1 -1
  112. package/dist/locale/it.js +1 -1
  113. package/dist/locale/it.min.js +1 -1
  114. package/dist/locale/it.min.mjs +1 -1
  115. package/dist/locale/it.mjs +1 -1
  116. package/dist/locale/ja.js +1 -1
  117. package/dist/locale/ja.min.js +1 -1
  118. package/dist/locale/ja.min.mjs +1 -1
  119. package/dist/locale/ja.mjs +1 -1
  120. package/dist/locale/kk.js +1 -1
  121. package/dist/locale/kk.min.js +1 -1
  122. package/dist/locale/kk.min.mjs +1 -1
  123. package/dist/locale/kk.mjs +1 -1
  124. package/dist/locale/km.js +1 -1
  125. package/dist/locale/km.min.js +1 -1
  126. package/dist/locale/km.min.mjs +1 -1
  127. package/dist/locale/km.mjs +1 -1
  128. package/dist/locale/ko.js +1 -1
  129. package/dist/locale/ko.min.js +1 -1
  130. package/dist/locale/ko.min.mjs +1 -1
  131. package/dist/locale/ko.mjs +1 -1
  132. package/dist/locale/ku.js +1 -1
  133. package/dist/locale/ku.min.js +1 -1
  134. package/dist/locale/ku.min.mjs +1 -1
  135. package/dist/locale/ku.mjs +1 -1
  136. package/dist/locale/ky.js +1 -1
  137. package/dist/locale/ky.min.js +1 -1
  138. package/dist/locale/ky.min.mjs +1 -1
  139. package/dist/locale/ky.mjs +1 -1
  140. package/dist/locale/lo.js +1 -1
  141. package/dist/locale/lo.min.js +1 -1
  142. package/dist/locale/lo.min.mjs +1 -1
  143. package/dist/locale/lo.mjs +1 -1
  144. package/dist/locale/lt.js +1 -1
  145. package/dist/locale/lt.min.js +1 -1
  146. package/dist/locale/lt.min.mjs +1 -1
  147. package/dist/locale/lt.mjs +1 -1
  148. package/dist/locale/lv.js +1 -1
  149. package/dist/locale/lv.min.js +1 -1
  150. package/dist/locale/lv.min.mjs +1 -1
  151. package/dist/locale/lv.mjs +1 -1
  152. package/dist/locale/mg.js +1 -1
  153. package/dist/locale/mg.min.js +1 -1
  154. package/dist/locale/mg.min.mjs +1 -1
  155. package/dist/locale/mg.mjs +1 -1
  156. package/dist/locale/mn.js +1 -1
  157. package/dist/locale/mn.min.js +1 -1
  158. package/dist/locale/mn.min.mjs +1 -1
  159. package/dist/locale/mn.mjs +1 -1
  160. package/dist/locale/ms.js +1 -1
  161. package/dist/locale/ms.min.js +1 -1
  162. package/dist/locale/ms.min.mjs +1 -1
  163. package/dist/locale/ms.mjs +1 -1
  164. package/dist/locale/my.js +1 -1
  165. package/dist/locale/my.min.js +1 -1
  166. package/dist/locale/my.min.mjs +1 -1
  167. package/dist/locale/my.mjs +1 -1
  168. package/dist/locale/nb-no.js +1 -1
  169. package/dist/locale/nb-no.min.js +1 -1
  170. package/dist/locale/nb-no.min.mjs +1 -1
  171. package/dist/locale/nb-no.mjs +1 -1
  172. package/dist/locale/nl.js +1 -1
  173. package/dist/locale/nl.min.js +1 -1
  174. package/dist/locale/nl.min.mjs +1 -1
  175. package/dist/locale/nl.mjs +1 -1
  176. package/dist/locale/no.js +1 -1
  177. package/dist/locale/no.min.js +1 -1
  178. package/dist/locale/no.min.mjs +1 -1
  179. package/dist/locale/no.mjs +1 -1
  180. package/dist/locale/pa.js +1 -1
  181. package/dist/locale/pa.min.js +1 -1
  182. package/dist/locale/pa.min.mjs +1 -1
  183. package/dist/locale/pa.mjs +1 -1
  184. package/dist/locale/pl.js +1 -1
  185. package/dist/locale/pl.min.js +1 -1
  186. package/dist/locale/pl.min.mjs +1 -1
  187. package/dist/locale/pl.mjs +1 -1
  188. package/dist/locale/pt-br.js +1 -1
  189. package/dist/locale/pt-br.min.js +1 -1
  190. package/dist/locale/pt-br.min.mjs +1 -1
  191. package/dist/locale/pt-br.mjs +1 -1
  192. package/dist/locale/pt.js +1 -1
  193. package/dist/locale/pt.min.js +1 -1
  194. package/dist/locale/pt.min.mjs +1 -1
  195. package/dist/locale/pt.mjs +1 -1
  196. package/dist/locale/ro.js +1 -1
  197. package/dist/locale/ro.min.js +1 -1
  198. package/dist/locale/ro.min.mjs +1 -1
  199. package/dist/locale/ro.mjs +1 -1
  200. package/dist/locale/ru.js +1 -1
  201. package/dist/locale/ru.min.js +1 -1
  202. package/dist/locale/ru.min.mjs +1 -1
  203. package/dist/locale/ru.mjs +1 -1
  204. package/dist/locale/sk.js +1 -1
  205. package/dist/locale/sk.min.js +1 -1
  206. package/dist/locale/sk.min.mjs +1 -1
  207. package/dist/locale/sk.mjs +1 -1
  208. package/dist/locale/sl.js +1 -1
  209. package/dist/locale/sl.min.js +1 -1
  210. package/dist/locale/sl.min.mjs +1 -1
  211. package/dist/locale/sl.mjs +1 -1
  212. package/dist/locale/sr.js +1 -1
  213. package/dist/locale/sr.min.js +1 -1
  214. package/dist/locale/sr.min.mjs +1 -1
  215. package/dist/locale/sr.mjs +1 -1
  216. package/dist/locale/sv.js +1 -1
  217. package/dist/locale/sv.min.js +1 -1
  218. package/dist/locale/sv.min.mjs +1 -1
  219. package/dist/locale/sv.mjs +1 -1
  220. package/dist/locale/sw.js +1 -1
  221. package/dist/locale/sw.min.js +1 -1
  222. package/dist/locale/sw.min.mjs +1 -1
  223. package/dist/locale/sw.mjs +1 -1
  224. package/dist/locale/ta.js +1 -1
  225. package/dist/locale/ta.min.js +1 -1
  226. package/dist/locale/ta.min.mjs +1 -1
  227. package/dist/locale/ta.mjs +1 -1
  228. package/dist/locale/te.js +1 -1
  229. package/dist/locale/te.min.js +1 -1
  230. package/dist/locale/te.min.mjs +1 -1
  231. package/dist/locale/te.mjs +1 -1
  232. package/dist/locale/th.js +1 -1
  233. package/dist/locale/th.min.js +1 -1
  234. package/dist/locale/th.min.mjs +1 -1
  235. package/dist/locale/th.mjs +1 -1
  236. package/dist/locale/tk.js +1 -1
  237. package/dist/locale/tk.min.js +1 -1
  238. package/dist/locale/tk.min.mjs +1 -1
  239. package/dist/locale/tk.mjs +1 -1
  240. package/dist/locale/tr.js +1 -1
  241. package/dist/locale/tr.min.js +1 -1
  242. package/dist/locale/tr.min.mjs +1 -1
  243. package/dist/locale/tr.mjs +1 -1
  244. package/dist/locale/ug-cn.js +1 -1
  245. package/dist/locale/ug-cn.min.js +1 -1
  246. package/dist/locale/ug-cn.min.mjs +1 -1
  247. package/dist/locale/ug-cn.mjs +1 -1
  248. package/dist/locale/uk.js +1 -1
  249. package/dist/locale/uk.min.js +1 -1
  250. package/dist/locale/uk.min.mjs +1 -1
  251. package/dist/locale/uk.mjs +1 -1
  252. package/dist/locale/uz-uz.js +1 -1
  253. package/dist/locale/uz-uz.min.js +1 -1
  254. package/dist/locale/uz-uz.min.mjs +1 -1
  255. package/dist/locale/uz-uz.mjs +1 -1
  256. package/dist/locale/vi.js +1 -1
  257. package/dist/locale/vi.min.js +1 -1
  258. package/dist/locale/vi.min.mjs +1 -1
  259. package/dist/locale/vi.mjs +1 -1
  260. package/dist/locale/zh-cn.js +1 -1
  261. package/dist/locale/zh-cn.min.js +1 -1
  262. package/dist/locale/zh-cn.min.mjs +1 -1
  263. package/dist/locale/zh-cn.mjs +1 -1
  264. package/dist/locale/zh-hk.js +1 -1
  265. package/dist/locale/zh-hk.min.js +1 -1
  266. package/dist/locale/zh-hk.min.mjs +1 -1
  267. package/dist/locale/zh-hk.mjs +1 -1
  268. package/dist/locale/zh-mo.js +1 -1
  269. package/dist/locale/zh-mo.min.js +1 -1
  270. package/dist/locale/zh-mo.min.mjs +1 -1
  271. package/dist/locale/zh-mo.mjs +1 -1
  272. package/dist/locale/zh-tw.js +1 -1
  273. package/dist/locale/zh-tw.min.js +1 -1
  274. package/dist/locale/zh-tw.min.mjs +1 -1
  275. package/dist/locale/zh-tw.mjs +1 -1
  276. package/es/components/tree/src/tree-node.vue.mjs.map +1 -1
  277. package/es/components/tree/src/tree-node.vue2.mjs +1 -1
  278. package/es/components/tree/src/tree-node.vue2.mjs.map +1 -1
  279. package/es/components/tree/src/tree.vue.mjs.map +1 -1
  280. package/es/components/tree/src/tree.vue2.mjs +1 -1
  281. package/es/components/tree/src/tree.vue2.mjs.map +1 -1
  282. package/es/components/upload/src/ajax.mjs +10 -3
  283. package/es/components/upload/src/ajax.mjs.map +1 -1
  284. package/es/components/upload/src/upload.d.ts +1 -1
  285. package/es/components/upload/src/upload.mjs.map +1 -1
  286. package/es/version.d.ts +1 -1
  287. package/es/version.mjs +1 -1
  288. package/es/version.mjs.map +1 -1
  289. package/lib/components/tree/src/tree-node.vue.js.map +1 -1
  290. package/lib/components/tree/src/tree-node.vue2.js +1 -1
  291. package/lib/components/tree/src/tree-node.vue2.js.map +1 -1
  292. package/lib/components/tree/src/tree.vue.js.map +1 -1
  293. package/lib/components/tree/src/tree.vue2.js +1 -1
  294. package/lib/components/tree/src/tree.vue2.js.map +1 -1
  295. package/lib/components/upload/src/ajax.js +9 -2
  296. package/lib/components/upload/src/ajax.js.map +1 -1
  297. package/lib/components/upload/src/upload.d.ts +1 -1
  298. package/lib/components/upload/src/upload.js.map +1 -1
  299. package/lib/version.d.ts +1 -1
  300. package/lib/version.js +1 -1
  301. package/lib/version.js.map +1 -1
  302. package/package.json +2 -2
  303. package/theme-chalk/el-checkbox-button.css +1 -1
  304. package/theme-chalk/index.css +1 -1
  305. package/theme-chalk/src/checkbox-button.scss +6 -0
  306. package/theme-chalk/src/common/var.scss +1 -0
  307. package/web-types.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"upload.mjs","sources":["../../../../../../packages/components/upload/src/upload.ts"],"sourcesContent":["import { NOOP, buildProps, definePropType, mutable } from '@element-plus/utils'\nimport { ajaxUpload } from './ajax'\n\nimport type { Awaitable, Mutable } from '@element-plus/utils'\nimport type { UploadAjaxError } from './ajax'\nimport type { ExtractPublicPropTypes } from 'vue'\nimport type Upload from './upload.vue'\n\n/**\n * @deprecated Removed after 3.0.0, Use `UploadProps` instead.\n */\nexport const uploadListTypes = ['text', 'picture', 'picture-card'] as const\n\nlet fileId = 1\nexport const genFileId = () => Date.now() + fileId++\n\nexport type UploadStatus = 'ready' | 'uploading' | 'success' | 'fail'\nexport interface UploadProgressEvent extends ProgressEvent {\n percent: number\n}\n\nexport interface UploadRequestOptions {\n action: string\n method: string\n data: Record<string, string | Blob | [Blob, string]>\n filename: string\n file: UploadRawFile\n headers: Headers | Record<string, string | number | null | undefined>\n onError: (evt: UploadAjaxError) => void\n onProgress: (evt: UploadProgressEvent) => void\n onSuccess: (response: any) => void\n withCredentials: boolean\n}\nexport interface UploadFile {\n name: string\n percentage?: number\n status: UploadStatus\n size?: number\n response?: unknown\n uid: number\n url?: string\n raw?: UploadRawFile\n}\nexport type UploadUserFile = Omit<UploadFile, 'status' | 'uid'> &\n Partial<Pick<UploadFile, 'status' | 'uid'>>\n\nexport type UploadFiles = UploadFile[]\nexport interface UploadRawFile extends File {\n uid: number\n isDirectory?: boolean\n}\nexport type UploadRequestHandler = (\n options: UploadRequestOptions\n) => XMLHttpRequest | Promise<unknown>\nexport interface UploadHooks {\n beforeUpload: (\n rawFile: UploadRawFile\n ) => Awaitable<void | undefined | null | boolean | File | Blob>\n beforeRemove: (\n uploadFile: UploadFile,\n uploadFiles: UploadFiles\n ) => Awaitable<boolean>\n onRemove: (uploadFile: UploadFile, uploadFiles: UploadFiles) => void\n onChange: (uploadFile: UploadFile, uploadFiles: UploadFiles) => void\n onPreview: (uploadFile: UploadFile) => void\n onSuccess: (\n response: any,\n uploadFile: UploadFile,\n uploadFiles: UploadFiles\n ) => void\n onProgress: (\n evt: UploadProgressEvent,\n uploadFile: UploadFile,\n uploadFiles: UploadFiles\n ) => void\n onError: (\n error: Error,\n uploadFile: UploadFile,\n uploadFiles: UploadFiles\n ) => void\n onExceed: (files: File[], uploadFiles: UploadUserFile[]) => void\n}\n\nexport type UploadData = Mutable<Record<string, any>>\n\nexport type ListType = 'text' | 'picture' | 'picture-card'\nexport type Crossorigin = 'anonymous' | 'use-credentials' | ''\n\nexport interface UploadBaseProps {\n /**\n * @description request URL\n */\n action?: string\n /**\n * @description request headers\n */\n headers?: Headers | Record<string, any>\n /**\n * @description set upload request method\n */\n method?: string\n /**\n * @description additions options of request\n */\n data?:\n | Awaitable<UploadData>\n | ((rawFile: UploadRawFile) => Awaitable<UploadData>)\n /**\n * @description whether uploading multiple files is permitted\n */\n multiple?: boolean\n /**\n * @description key name for uploaded file\n */\n name?: string\n /**\n * @description whether to activate drag and drop mode\n */\n drag?: boolean\n /**\n * @description whether cookies are sent\n */\n withCredentials?: boolean\n /**\n * @description whether to show the uploaded file list\n */\n showFileList?: boolean\n /**\n * @description accepted [file types](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-accept), will not work when `thumbnail-mode === true`\n */\n accept?: string\n /**\n * @description default uploaded files\n */\n fileList?: UploadUserFile[]\n /**\n * @description whether to auto upload file\n */\n autoUpload?: boolean\n /**\n * @description type of file list\n */\n listType?: ListType\n /**\n * @description override default xhr behavior, allowing you to implement your own upload-file's request\n */\n httpRequest?: UploadRequestHandler\n /**\n * @description whether to disable upload\n */\n disabled?: boolean\n /**\n * @description maximum number of uploads allowed\n */\n limit?: number\n /**\n * @description whether to support uploading directory\n */\n directory?: boolean\n}\n\nexport interface UploadProps extends UploadBaseProps {\n /**\n * @description hook function before uploading with the file to be uploaded as its parameter. If `false` is returned or a `Promise` is returned and then is rejected, uploading will be aborted\n */\n beforeUpload?: UploadHooks['beforeUpload']\n /**\n * @description hook function before removing a file with the file and file list as its parameters. If `false` is returned or a `Promise` is returned and then is rejected, removing will be aborted\n */\n beforeRemove?: UploadHooks['beforeRemove']\n /**\n * @description hook function when files are removed\n */\n onRemove?: UploadHooks['onRemove']\n /**\n * @description hook function when select file or upload file success or upload file fail\n */\n onChange?: UploadHooks['onChange']\n /**\n * @description hook function when clicking the uploaded files\n */\n onPreview?: UploadHooks['onPreview']\n /**\n * @description hook function when uploaded successfully\n */\n onSuccess?: UploadHooks['onSuccess']\n /**\n * @description hook function when some progress occurs\n */\n onProgress?: UploadHooks['onProgress']\n /**\n * @description hook function when some errors occurs\n */\n onError?: UploadHooks['onError']\n /**\n * @description hook function when limit is exceeded\n */\n onExceed?: UploadHooks['onExceed']\n /**\n * @description set HTML attribute: crossorigin.\n */\n crossorigin?: Crossorigin\n}\n\n/**\n * @deprecated Removed after 3.0.0, Use `UploadBaseProps` instead.\n */\nexport const uploadBaseProps = buildProps({\n /**\n * @description request URL\n */\n action: {\n type: String,\n default: '#',\n },\n /**\n * @description request headers\n */\n headers: {\n type: definePropType<Headers | Record<string, any>>(Object),\n },\n /**\n * @description set upload request method\n */\n method: {\n type: String,\n default: 'post',\n },\n /**\n * @description additions options of request\n */\n data: {\n type: definePropType<\n | Awaitable<UploadData>\n | ((rawFile: UploadRawFile) => Awaitable<UploadData>)\n >([Object, Function, Promise]),\n default: () => mutable({} as const),\n },\n /**\n * @description whether uploading multiple files is permitted\n */\n multiple: Boolean,\n /**\n * @description key name for uploaded file\n */\n name: {\n type: String,\n default: 'file',\n },\n /**\n * @description whether to activate drag and drop mode\n */\n drag: Boolean,\n /**\n * @description whether cookies are sent\n */\n withCredentials: Boolean,\n /**\n * @description whether to show the uploaded file list\n */\n showFileList: {\n type: Boolean,\n default: true,\n },\n /**\n * @description accepted [file types](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-accept), will not work when `thumbnail-mode === true`\n */\n accept: {\n type: String,\n default: '',\n },\n /**\n * @description default uploaded files\n */\n fileList: {\n type: definePropType<UploadUserFile[]>(Array),\n default: () => mutable([] as const),\n },\n /**\n * @description whether to auto upload file\n */\n autoUpload: {\n type: Boolean,\n default: true,\n },\n /**\n * @description type of file list\n */\n listType: {\n type: String,\n values: uploadListTypes,\n default: 'text',\n },\n /**\n * @description override default xhr behavior, allowing you to implement your own upload-file's request\n */\n httpRequest: {\n type: definePropType<UploadRequestHandler>(Function),\n default: ajaxUpload,\n },\n /**\n * @description whether to disable upload\n */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /**\n * @description maximum number of uploads allowed\n */\n limit: Number,\n /**\n * @description whether to support uploading directory\n */\n directory: Boolean,\n} as const)\n\n/**\n * @deprecated Removed after 3.0.0, Use `UploadProps` instead.\n */\nexport const uploadProps = buildProps({\n ...uploadBaseProps,\n /**\n * @description hook function before uploading with the file to be uploaded as its parameter. If `false` is returned or a `Promise` is returned and then is rejected, uploading will be aborted\n */\n beforeUpload: {\n type: definePropType<UploadHooks['beforeUpload']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function before removing a file with the file and file list as its parameters. If `false` is returned or a `Promise` is returned and then is rejected, removing will be aborted\n */\n beforeRemove: {\n type: definePropType<UploadHooks['beforeRemove']>(Function),\n },\n /**\n * @description hook function when files are removed\n */\n onRemove: {\n type: definePropType<UploadHooks['onRemove']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when select file or upload file success or upload file fail\n */\n onChange: {\n type: definePropType<UploadHooks['onChange']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when clicking the uploaded files\n */\n onPreview: {\n type: definePropType<UploadHooks['onPreview']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when uploaded successfully\n */\n onSuccess: {\n type: definePropType<UploadHooks['onSuccess']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when some progress occurs\n */\n onProgress: {\n type: definePropType<UploadHooks['onProgress']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when some errors occurs\n */\n onError: {\n type: definePropType<UploadHooks['onError']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when limit is exceeded\n */\n onExceed: {\n type: definePropType<UploadHooks['onExceed']>(Function),\n default: NOOP,\n },\n /**\n * @description set HTML attribute: crossorigin.\n */\n crossorigin: {\n type: definePropType<'anonymous' | 'use-credentials' | ''>(String),\n },\n} as const)\n\n/**\n * @deprecated Removed after 3.0.0, Use `UploadProps` instead.\n */\nexport type UploadPropsPublic = ExtractPublicPropTypes<typeof uploadProps>\n\nexport type UploadInstance = InstanceType<typeof Upload> & unknown\n\nexport const uploadBasePropsDefaults = {\n action: '#',\n method: 'post',\n data: () => mutable({}),\n name: 'file',\n showFileList: true,\n accept: '',\n fileList: () => mutable([]),\n autoUpload: true,\n listType: 'text',\n httpRequest: ajaxUpload,\n disabled: undefined,\n} as const\n\nexport const uploadPropsDefaults = {\n ...uploadBasePropsDefaults,\n beforeUpload: NOOP,\n onRemove: NOOP,\n onChange: NOOP,\n onPreview: NOOP,\n onSuccess: NOOP,\n onProgress: NOOP,\n onError: NOOP,\n onExceed: NOOP,\n} as const\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upload.mjs","sources":["../../../../../../packages/components/upload/src/upload.ts"],"sourcesContent":["import { NOOP, buildProps, definePropType, mutable } from '@element-plus/utils'\nimport { ajaxUpload } from './ajax'\n\nimport type { Awaitable, Mutable } from '@element-plus/utils'\nimport type { UploadAjaxError } from './ajax'\nimport type { ExtractPublicPropTypes } from 'vue'\nimport type Upload from './upload.vue'\n\n/**\n * @deprecated Removed after 3.0.0, Use `UploadProps` instead.\n */\nexport const uploadListTypes = ['text', 'picture', 'picture-card'] as const\n\nlet fileId = 1\nexport const genFileId = () => Date.now() + fileId++\n\nexport type UploadStatus = 'ready' | 'uploading' | 'success' | 'fail'\nexport interface UploadProgressEvent extends ProgressEvent {\n percent: number\n}\n\nexport interface UploadRequestOptions {\n action: string\n method: string\n data: Record<string, string | Blob | [string | Blob, string] | string[]>\n filename: string\n file: UploadRawFile\n headers: Headers | Record<string, string | number | null | undefined>\n onError: (evt: UploadAjaxError) => void\n onProgress: (evt: UploadProgressEvent) => void\n onSuccess: (response: any) => void\n withCredentials: boolean\n}\nexport interface UploadFile {\n name: string\n percentage?: number\n status: UploadStatus\n size?: number\n response?: unknown\n uid: number\n url?: string\n raw?: UploadRawFile\n}\nexport type UploadUserFile = Omit<UploadFile, 'status' | 'uid'> &\n Partial<Pick<UploadFile, 'status' | 'uid'>>\n\nexport type UploadFiles = UploadFile[]\nexport interface UploadRawFile extends File {\n uid: number\n isDirectory?: boolean\n}\nexport type UploadRequestHandler = (\n options: UploadRequestOptions\n) => XMLHttpRequest | Promise<unknown>\nexport interface UploadHooks {\n beforeUpload: (\n rawFile: UploadRawFile\n ) => Awaitable<void | undefined | null | boolean | File | Blob>\n beforeRemove: (\n uploadFile: UploadFile,\n uploadFiles: UploadFiles\n ) => Awaitable<boolean>\n onRemove: (uploadFile: UploadFile, uploadFiles: UploadFiles) => void\n onChange: (uploadFile: UploadFile, uploadFiles: UploadFiles) => void\n onPreview: (uploadFile: UploadFile) => void\n onSuccess: (\n response: any,\n uploadFile: UploadFile,\n uploadFiles: UploadFiles\n ) => void\n onProgress: (\n evt: UploadProgressEvent,\n uploadFile: UploadFile,\n uploadFiles: UploadFiles\n ) => void\n onError: (\n error: Error,\n uploadFile: UploadFile,\n uploadFiles: UploadFiles\n ) => void\n onExceed: (files: File[], uploadFiles: UploadUserFile[]) => void\n}\n\nexport type UploadData = Mutable<Record<string, any>>\n\nexport type ListType = 'text' | 'picture' | 'picture-card'\nexport type Crossorigin = 'anonymous' | 'use-credentials' | ''\n\nexport interface UploadBaseProps {\n /**\n * @description request URL\n */\n action?: string\n /**\n * @description request headers\n */\n headers?: Headers | Record<string, any>\n /**\n * @description set upload request method\n */\n method?: string\n /**\n * @description additions options of request\n */\n data?:\n | Awaitable<UploadData>\n | ((rawFile: UploadRawFile) => Awaitable<UploadData>)\n /**\n * @description whether uploading multiple files is permitted\n */\n multiple?: boolean\n /**\n * @description key name for uploaded file\n */\n name?: string\n /**\n * @description whether to activate drag and drop mode\n */\n drag?: boolean\n /**\n * @description whether cookies are sent\n */\n withCredentials?: boolean\n /**\n * @description whether to show the uploaded file list\n */\n showFileList?: boolean\n /**\n * @description accepted [file types](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-accept), will not work when `thumbnail-mode === true`\n */\n accept?: string\n /**\n * @description default uploaded files\n */\n fileList?: UploadUserFile[]\n /**\n * @description whether to auto upload file\n */\n autoUpload?: boolean\n /**\n * @description type of file list\n */\n listType?: ListType\n /**\n * @description override default xhr behavior, allowing you to implement your own upload-file's request\n */\n httpRequest?: UploadRequestHandler\n /**\n * @description whether to disable upload\n */\n disabled?: boolean\n /**\n * @description maximum number of uploads allowed\n */\n limit?: number\n /**\n * @description whether to support uploading directory\n */\n directory?: boolean\n}\n\nexport interface UploadProps extends UploadBaseProps {\n /**\n * @description hook function before uploading with the file to be uploaded as its parameter. If `false` is returned or a `Promise` is returned and then is rejected, uploading will be aborted\n */\n beforeUpload?: UploadHooks['beforeUpload']\n /**\n * @description hook function before removing a file with the file and file list as its parameters. If `false` is returned or a `Promise` is returned and then is rejected, removing will be aborted\n */\n beforeRemove?: UploadHooks['beforeRemove']\n /**\n * @description hook function when files are removed\n */\n onRemove?: UploadHooks['onRemove']\n /**\n * @description hook function when select file or upload file success or upload file fail\n */\n onChange?: UploadHooks['onChange']\n /**\n * @description hook function when clicking the uploaded files\n */\n onPreview?: UploadHooks['onPreview']\n /**\n * @description hook function when uploaded successfully\n */\n onSuccess?: UploadHooks['onSuccess']\n /**\n * @description hook function when some progress occurs\n */\n onProgress?: UploadHooks['onProgress']\n /**\n * @description hook function when some errors occurs\n */\n onError?: UploadHooks['onError']\n /**\n * @description hook function when limit is exceeded\n */\n onExceed?: UploadHooks['onExceed']\n /**\n * @description set HTML attribute: crossorigin.\n */\n crossorigin?: Crossorigin\n}\n\n/**\n * @deprecated Removed after 3.0.0, Use `UploadBaseProps` instead.\n */\nexport const uploadBaseProps = buildProps({\n /**\n * @description request URL\n */\n action: {\n type: String,\n default: '#',\n },\n /**\n * @description request headers\n */\n headers: {\n type: definePropType<Headers | Record<string, any>>(Object),\n },\n /**\n * @description set upload request method\n */\n method: {\n type: String,\n default: 'post',\n },\n /**\n * @description additions options of request\n */\n data: {\n type: definePropType<\n | Awaitable<UploadData>\n | ((rawFile: UploadRawFile) => Awaitable<UploadData>)\n >([Object, Function, Promise]),\n default: () => mutable({} as const),\n },\n /**\n * @description whether uploading multiple files is permitted\n */\n multiple: Boolean,\n /**\n * @description key name for uploaded file\n */\n name: {\n type: String,\n default: 'file',\n },\n /**\n * @description whether to activate drag and drop mode\n */\n drag: Boolean,\n /**\n * @description whether cookies are sent\n */\n withCredentials: Boolean,\n /**\n * @description whether to show the uploaded file list\n */\n showFileList: {\n type: Boolean,\n default: true,\n },\n /**\n * @description accepted [file types](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-accept), will not work when `thumbnail-mode === true`\n */\n accept: {\n type: String,\n default: '',\n },\n /**\n * @description default uploaded files\n */\n fileList: {\n type: definePropType<UploadUserFile[]>(Array),\n default: () => mutable([] as const),\n },\n /**\n * @description whether to auto upload file\n */\n autoUpload: {\n type: Boolean,\n default: true,\n },\n /**\n * @description type of file list\n */\n listType: {\n type: String,\n values: uploadListTypes,\n default: 'text',\n },\n /**\n * @description override default xhr behavior, allowing you to implement your own upload-file's request\n */\n httpRequest: {\n type: definePropType<UploadRequestHandler>(Function),\n default: ajaxUpload,\n },\n /**\n * @description whether to disable upload\n */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /**\n * @description maximum number of uploads allowed\n */\n limit: Number,\n /**\n * @description whether to support uploading directory\n */\n directory: Boolean,\n} as const)\n\n/**\n * @deprecated Removed after 3.0.0, Use `UploadProps` instead.\n */\nexport const uploadProps = buildProps({\n ...uploadBaseProps,\n /**\n * @description hook function before uploading with the file to be uploaded as its parameter. If `false` is returned or a `Promise` is returned and then is rejected, uploading will be aborted\n */\n beforeUpload: {\n type: definePropType<UploadHooks['beforeUpload']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function before removing a file with the file and file list as its parameters. If `false` is returned or a `Promise` is returned and then is rejected, removing will be aborted\n */\n beforeRemove: {\n type: definePropType<UploadHooks['beforeRemove']>(Function),\n },\n /**\n * @description hook function when files are removed\n */\n onRemove: {\n type: definePropType<UploadHooks['onRemove']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when select file or upload file success or upload file fail\n */\n onChange: {\n type: definePropType<UploadHooks['onChange']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when clicking the uploaded files\n */\n onPreview: {\n type: definePropType<UploadHooks['onPreview']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when uploaded successfully\n */\n onSuccess: {\n type: definePropType<UploadHooks['onSuccess']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when some progress occurs\n */\n onProgress: {\n type: definePropType<UploadHooks['onProgress']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when some errors occurs\n */\n onError: {\n type: definePropType<UploadHooks['onError']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when limit is exceeded\n */\n onExceed: {\n type: definePropType<UploadHooks['onExceed']>(Function),\n default: NOOP,\n },\n /**\n * @description set HTML attribute: crossorigin.\n */\n crossorigin: {\n type: definePropType<'anonymous' | 'use-credentials' | ''>(String),\n },\n} as const)\n\n/**\n * @deprecated Removed after 3.0.0, Use `UploadProps` instead.\n */\nexport type UploadPropsPublic = ExtractPublicPropTypes<typeof uploadProps>\n\nexport type UploadInstance = InstanceType<typeof Upload> & unknown\n\nexport const uploadBasePropsDefaults = {\n action: '#',\n method: 'post',\n data: () => mutable({}),\n name: 'file',\n showFileList: true,\n accept: '',\n fileList: () => mutable([]),\n autoUpload: true,\n listType: 'text',\n httpRequest: ajaxUpload,\n disabled: undefined,\n} as const\n\nexport const uploadPropsDefaults = {\n ...uploadBasePropsDefaults,\n beforeUpload: NOOP,\n onRemove: NOOP,\n onChange: NOOP,\n onPreview: NOOP,\n onSuccess: NOOP,\n onProgress: NOOP,\n onError: NOOP,\n onExceed: NOOP,\n} as const\n"],"names":[],"mappings":"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"}
package/es/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const version = "0.0.20260224";
1
+ export declare const version = "0.0.20260225";
package/es/version.mjs CHANGED
@@ -1,4 +1,4 @@
1
- const version = "0.0.20260224";
1
+ const version = "0.0.20260225";
2
2
 
3
3
  export { version };
4
4
  //# sourceMappingURL=version.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.mjs","sources":["../../../packages/element-plus/version.ts"],"sourcesContent":["export const version = '0.0.20260224'\n"],"names":[],"mappings":"AAAO,MAAM,OAAA,GAAU;;;;"}
1
+ {"version":3,"file":"version.mjs","sources":["../../../packages/element-plus/version.ts"],"sourcesContent":["export const version = '0.0.20260225'\n"],"names":[],"mappings":"AAAO,MAAM,OAAA,GAAU;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"tree-node.vue.js","sources":["../../../../../../packages/components/tree/src/tree-node.vue"],"sourcesContent":["<template>\n <div\n v-show=\"node.visible\"\n ref=\"node$\"\n :class=\"[\n ns.b('node'),\n ns.is('expanded', expanded),\n ns.is('current', node.isCurrent),\n ns.is('hidden', !node.visible),\n ns.is('focusable', !node.disabled),\n ns.is('checked', !node.disabled && node.checked),\n getNodeClass(node),\n ]\"\n role=\"treeitem\"\n tabindex=\"-1\"\n :aria-expanded=\"expanded\"\n :aria-disabled=\"node.disabled\"\n :aria-checked=\"node.checked\"\n :draggable=\"tree.props.draggable\"\n :data-key=\"getNodeKey(node)\"\n @click.stop=\"handleClick\"\n @contextmenu=\"handleContextMenu\"\n @dragstart.stop=\"handleDragStart\"\n @dragover.stop=\"handleDragOver\"\n @dragend.stop=\"handleDragEnd\"\n @drop.stop=\"handleDrop\"\n >\n <div\n :class=\"ns.be('node', 'content')\"\n :style=\"{ paddingLeft: (node.level - 1) * tree.props.indent + 'px' }\"\n >\n <el-icon\n v-if=\"tree.props.icon || CaretRight\"\n :class=\"[\n ns.be('node', 'expand-icon'),\n ns.is('leaf', node.isLeaf),\n {\n expanded: !node.isLeaf && expanded,\n },\n ]\"\n @click.stop=\"handleExpandIconClick\"\n >\n <component :is=\"tree.props.icon || CaretRight\" />\n </el-icon>\n <el-checkbox\n v-if=\"showCheckbox\"\n :model-value=\"node.checked\"\n :indeterminate=\"node.indeterminate\"\n :disabled=\"!!node.disabled\"\n @click.stop\n @change=\"handleCheckChange\"\n />\n <el-icon\n v-if=\"node.loading\"\n :class=\"[ns.be('node', 'loading-icon'), ns.is('loading')]\"\n >\n <loading />\n </el-icon>\n <node-content :node=\"node\" :render-content=\"renderContent\" />\n </div>\n <el-collapse-transition>\n <div\n v-if=\"!renderAfterExpand || childNodeRendered\"\n v-show=\"expanded\"\n :class=\"ns.be('node', 'children')\"\n role=\"group\"\n :aria-expanded=\"expanded\"\n @click.stop\n >\n <el-tree-node\n v-for=\"child in node.childNodes\"\n :key=\"getNodeKey(child)\"\n :render-content=\"renderContent\"\n :render-after-expand=\"renderAfterExpand\"\n :show-checkbox=\"showCheckbox\"\n :node=\"child\"\n :accordion=\"accordion\"\n :props=\"props\"\n @node-expand=\"handleChildNodeExpand\"\n />\n </div>\n </el-collapse-transition>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n defineComponent,\n getCurrentInstance,\n inject,\n nextTick,\n provide,\n ref,\n watch,\n} from 'vue'\nimport { debugWarn, isFunction, isString } from '@element-plus/utils'\nimport ElCollapseTransition from '@element-plus/components/collapse-transition'\nimport ElCheckbox from '@element-plus/components/checkbox'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { CaretRight, Loading } from '@element-plus/icons-vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport NodeContent from './tree-node-content.vue'\nimport { getNodeKey as getNodeKeyUtil, handleCurrentChange } from './model/util'\nimport { useNodeExpandEventBroadcast } from './model/useNodeExpandEventBroadcast'\nimport { dragEventsKey } from './model/useDragNode'\nimport Node from './model/node'\nimport { NODE_INSTANCE_INJECTION_KEY, ROOT_TREE_INJECTION_KEY } from './tokens'\n\nimport type { ComponentInternalInstance, PropType } from 'vue'\nimport type { RootTreeType, TreeNodeData, TreeOptionProps } from './tree.type'\nimport type { CheckboxValueType } from '@element-plus/components/checkbox'\n\nexport default defineComponent({\n name: 'ElTreeNode',\n components: {\n ElCollapseTransition,\n ElCheckbox,\n NodeContent,\n ElIcon,\n Loading,\n },\n props: {\n node: {\n type: Node,\n default: () => ({}),\n },\n props: {\n type: Object as PropType<TreeOptionProps>,\n default: () => ({}),\n },\n accordion: Boolean,\n renderContent: Function,\n renderAfterExpand: Boolean,\n showCheckbox: Boolean,\n },\n emits: ['node-expand'],\n setup(props, ctx) {\n const ns = useNamespace('tree')\n const { broadcastExpanded } = useNodeExpandEventBroadcast(props)\n const tree = inject<RootTreeType>(ROOT_TREE_INJECTION_KEY)!\n const expanded = ref(false)\n const childNodeRendered = ref(false)\n const oldChecked = ref<boolean>()\n const oldIndeterminate = ref<boolean>()\n const node$ = ref<HTMLElement>()\n const dragEvents = inject(dragEventsKey)!\n const instance = getCurrentInstance()\n\n provide(NODE_INSTANCE_INJECTION_KEY, instance)\n if (!tree) {\n debugWarn('Tree', \"Can not find node's tree.\")\n }\n\n if (props.node.expanded) {\n expanded.value = true\n childNodeRendered.value = true\n }\n\n const childrenKey = tree.props.props['children'] || 'children'\n watch(\n () => {\n const children = props.node.data?.[childrenKey]\n return children && [...children]\n },\n () => {\n props.node.updateChildren()\n }\n )\n\n watch(\n () => props.node.indeterminate,\n (val) => {\n handleSelectChange(props.node.checked, val)\n }\n )\n\n watch(\n () => props.node.checked,\n (val) => {\n handleSelectChange(val, props.node.indeterminate)\n }\n )\n\n watch(\n () => props.node.childNodes.length,\n () => props.node.reInitChecked()\n )\n\n watch(\n () => props.node.expanded,\n (val) => {\n nextTick(() => (expanded.value = val))\n if (val) {\n childNodeRendered.value = true\n }\n }\n )\n\n const getNodeKey = (node: Node): any => {\n return getNodeKeyUtil(tree.props.nodeKey, node.data)\n }\n\n const getNodeClass = (node: Node) => {\n const nodeClassFunc = props.props.class\n if (!nodeClassFunc) {\n return {}\n }\n let className\n if (isFunction(nodeClassFunc)) {\n const { data } = node\n className = nodeClassFunc(data, node)\n } else {\n className = nodeClassFunc\n }\n\n if (isString(className)) {\n return { [className]: true }\n } else {\n return className\n }\n }\n\n const handleSelectChange = (checked: boolean, indeterminate: boolean) => {\n if (\n oldChecked.value !== checked ||\n oldIndeterminate.value !== indeterminate\n ) {\n tree.ctx.emit('check-change', props.node.data, checked, indeterminate)\n }\n oldChecked.value = checked\n oldIndeterminate.value = indeterminate\n }\n\n const handleClick = (e: MouseEvent) => {\n handleCurrentChange(tree.store, tree.ctx.emit, () => {\n const nodeKeyProp = tree?.props?.nodeKey\n if (nodeKeyProp) {\n const curNodeKey = getNodeKey(props.node)\n tree.store.value.setCurrentNodeKey(curNodeKey)\n } else {\n tree.store.value.setCurrentNode(props.node)\n }\n })\n tree.currentNode.value = props.node\n\n if (tree.props.expandOnClickNode) {\n handleExpandIconClick()\n }\n\n if (\n (tree.props.checkOnClickNode ||\n (props.node.isLeaf &&\n tree.props.checkOnClickLeaf &&\n props.showCheckbox)) &&\n !props.node.disabled\n ) {\n handleCheckChange(!props.node.checked)\n }\n tree.ctx.emit('node-click', props.node.data, props.node, instance, e)\n }\n\n const handleContextMenu = (event: Event) => {\n if (tree.instance.vnode.props?.['onNodeContextmenu']) {\n event.stopPropagation()\n event.preventDefault()\n }\n tree.ctx.emit(\n 'node-contextmenu',\n event,\n props.node.data,\n props.node,\n instance\n )\n }\n\n const handleExpandIconClick = () => {\n if (props.node.isLeaf) return\n if (expanded.value) {\n tree.ctx.emit('node-collapse', props.node.data, props.node, instance)\n props.node.collapse()\n } else {\n props.node.expand(() => {\n ctx.emit('node-expand', props.node.data, props.node, instance)\n })\n }\n }\n\n const handleCheckChange = (value: CheckboxValueType) => {\n const checkStrictly = tree?.props.checkStrictly\n const childNodes = props.node.childNodes\n if (!checkStrictly && childNodes.length) {\n value = childNodes.some((node) => !node.isEffectivelyChecked)\n }\n props.node.setChecked(value as boolean, !checkStrictly)\n nextTick(() => {\n const store = tree.store.value\n tree.ctx.emit('check', props.node.data, {\n checkedNodes: store.getCheckedNodes(),\n checkedKeys: store.getCheckedKeys(),\n halfCheckedNodes: store.getHalfCheckedNodes(),\n halfCheckedKeys: store.getHalfCheckedKeys(),\n })\n })\n }\n\n const handleChildNodeExpand = (\n nodeData: TreeNodeData,\n node: Node,\n instance: ComponentInternalInstance\n ) => {\n broadcastExpanded(node)\n tree.ctx.emit('node-expand', nodeData, node, instance)\n }\n\n const handleDragStart = (event: DragEvent) => {\n if (!tree.props.draggable) return\n dragEvents.treeNodeDragStart({ event, treeNode: props })\n }\n\n const handleDragOver = (event: DragEvent) => {\n event.preventDefault()\n if (!tree.props.draggable) return\n dragEvents.treeNodeDragOver({\n event,\n treeNode: { $el: node$.value, node: props.node },\n })\n }\n\n const handleDrop = (event: DragEvent) => {\n event.preventDefault()\n }\n\n const handleDragEnd = (event: DragEvent) => {\n if (!tree.props.draggable) return\n dragEvents.treeNodeDragEnd(event)\n }\n\n return {\n ns,\n node$,\n tree,\n expanded,\n childNodeRendered,\n oldChecked,\n oldIndeterminate,\n getNodeKey,\n getNodeClass,\n handleSelectChange,\n handleClick,\n handleContextMenu,\n handleExpandIconClick,\n handleCheckChange,\n handleChildNodeExpand,\n handleDragStart,\n handleDragOver,\n handleDrop,\n handleDragEnd,\n CaretRight,\n }\n },\n})\n</script>\n"],"names":["_createElementBlock","_normalizeClass","_createElementVNode","_normalizeStyle","_openBlock","_createBlock","_withModifiers","_resolveDynamicComponent","_createCommentVNode","_createVNode","_withCtx","_Fragment","_renderList","_vShow"],"mappings":"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"}
1
+ {"version":3,"file":"tree-node.vue.js","sources":["../../../../../../packages/components/tree/src/tree-node.vue"],"sourcesContent":["<template>\n <div\n v-show=\"node.visible\"\n ref=\"node$\"\n :class=\"[\n ns.b('node'),\n ns.is('expanded', expanded),\n ns.is('current', node.isCurrent),\n ns.is('hidden', !node.visible),\n ns.is('focusable', !node.disabled),\n ns.is('checked', !node.disabled && node.checked),\n getNodeClass(node),\n ]\"\n role=\"treeitem\"\n tabindex=\"-1\"\n :aria-expanded=\"expanded\"\n :aria-disabled=\"node.disabled\"\n :aria-checked=\"node.checked\"\n :draggable=\"tree.props.draggable\"\n :data-key=\"getNodeKey(node)\"\n @click.stop=\"handleClick\"\n @contextmenu=\"handleContextMenu\"\n @dragstart.stop=\"handleDragStart\"\n @dragover.stop=\"handleDragOver\"\n @dragend.stop=\"handleDragEnd\"\n @drop.stop=\"handleDrop\"\n >\n <div\n :class=\"ns.be('node', 'content')\"\n :style=\"{ paddingLeft: (node.level - 1) * tree.props.indent + 'px' }\"\n >\n <el-icon\n v-if=\"tree.props.icon || CaretRight\"\n :class=\"[\n ns.be('node', 'expand-icon'),\n ns.is('leaf', node.isLeaf),\n {\n expanded: !node.isLeaf && expanded,\n },\n ]\"\n @click.stop=\"handleExpandIconClick\"\n >\n <component :is=\"tree.props.icon || CaretRight\" />\n </el-icon>\n <el-checkbox\n v-if=\"showCheckbox\"\n :model-value=\"node.checked\"\n :indeterminate=\"node.indeterminate\"\n :disabled=\"!!node.disabled\"\n @click.stop\n @change=\"handleCheckChange\"\n />\n <el-icon\n v-if=\"node.loading\"\n :class=\"[ns.be('node', 'loading-icon'), ns.is('loading')]\"\n >\n <loading />\n </el-icon>\n <node-content :node=\"node\" :render-content=\"renderContent\" />\n </div>\n <el-collapse-transition>\n <div\n v-if=\"!renderAfterExpand || childNodeRendered\"\n v-show=\"expanded\"\n :class=\"ns.be('node', 'children')\"\n role=\"group\"\n :aria-expanded=\"expanded\"\n @click.stop\n >\n <el-tree-node\n v-for=\"child in node.childNodes\"\n :key=\"getNodeKey(child)\"\n :render-content=\"renderContent\"\n :render-after-expand=\"renderAfterExpand\"\n :show-checkbox=\"showCheckbox\"\n :node=\"child\"\n :accordion=\"accordion\"\n :props=\"props\"\n @node-expand=\"handleChildNodeExpand\"\n />\n </div>\n </el-collapse-transition>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n defineComponent,\n getCurrentInstance,\n inject,\n nextTick,\n provide,\n ref,\n watch,\n} from 'vue'\nimport { debugWarn, isFunction, isString } from '@element-plus/utils'\nimport ElCollapseTransition from '@element-plus/components/collapse-transition'\nimport ElCheckbox from '@element-plus/components/checkbox'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { CaretRight, Loading } from '@element-plus/icons-vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport NodeContent from './tree-node-content.vue'\nimport { getNodeKey as getNodeKeyUtil, handleCurrentChange } from './model/util'\nimport { useNodeExpandEventBroadcast } from './model/useNodeExpandEventBroadcast'\nimport { dragEventsKey } from './model/useDragNode'\nimport Node from './model/node'\nimport { NODE_INSTANCE_INJECTION_KEY, ROOT_TREE_INJECTION_KEY } from './tokens'\n\nimport type { ComponentInternalInstance, PropType } from 'vue'\nimport type { RootTreeType, TreeNodeData, TreeOptionProps } from './tree.type'\nimport type { CheckboxValueType } from '@element-plus/components/checkbox'\n\nexport default defineComponent({\n name: 'ElTreeNode',\n components: {\n ElCollapseTransition,\n ElCheckbox,\n NodeContent,\n ElIcon,\n Loading,\n },\n props: {\n node: {\n type: Node,\n default: () => ({}),\n },\n props: {\n type: Object as PropType<TreeOptionProps>,\n default: () => ({}),\n },\n accordion: Boolean,\n renderContent: Function,\n renderAfterExpand: Boolean,\n showCheckbox: Boolean,\n },\n emits: ['node-expand'],\n setup(props, ctx) {\n const ns = useNamespace('tree')\n const { broadcastExpanded } = useNodeExpandEventBroadcast(props)\n const tree = inject<RootTreeType>(ROOT_TREE_INJECTION_KEY)!\n const expanded = ref(false)\n const childNodeRendered = ref(false)\n const oldChecked = ref<boolean>()\n const oldIndeterminate = ref<boolean>()\n const node$ = ref<HTMLElement>()\n const dragEvents = inject(dragEventsKey)!\n const instance = getCurrentInstance()\n\n provide(NODE_INSTANCE_INJECTION_KEY, instance)\n if (!tree) {\n debugWarn('Tree', \"Can not find node's tree.\")\n }\n\n if (props.node.expanded) {\n expanded.value = true\n childNodeRendered.value = true\n }\n\n const childrenKey = tree.props.props['children'] || 'children'\n watch(\n () => {\n const children = props.node.data?.[childrenKey]\n return children && [...children]\n },\n () => {\n props.node.updateChildren()\n }\n )\n\n watch(\n () => props.node.indeterminate,\n (val) => {\n handleSelectChange(props.node.checked, val)\n }\n )\n\n watch(\n () => props.node.checked,\n (val) => {\n handleSelectChange(val, props.node.indeterminate)\n }\n )\n\n watch(\n () => props.node.childNodes.length,\n () => props.node.reInitChecked()\n )\n\n watch(\n () => props.node.expanded,\n (val) => {\n nextTick(() => (expanded.value = val))\n if (val) {\n childNodeRendered.value = true\n }\n }\n )\n\n const getNodeKey = (node: Node): any => {\n return tree.props.nodeKey\n ? getNodeKeyUtil(tree.props.nodeKey, node.data)\n : node.id\n }\n\n const getNodeClass = (node: Node) => {\n const nodeClassFunc = props.props.class\n if (!nodeClassFunc) {\n return {}\n }\n let className\n if (isFunction(nodeClassFunc)) {\n const { data } = node\n className = nodeClassFunc(data, node)\n } else {\n className = nodeClassFunc\n }\n\n if (isString(className)) {\n return { [className]: true }\n } else {\n return className\n }\n }\n\n const handleSelectChange = (checked: boolean, indeterminate: boolean) => {\n if (\n oldChecked.value !== checked ||\n oldIndeterminate.value !== indeterminate\n ) {\n tree.ctx.emit('check-change', props.node.data, checked, indeterminate)\n }\n oldChecked.value = checked\n oldIndeterminate.value = indeterminate\n }\n\n const handleClick = (e: MouseEvent) => {\n handleCurrentChange(tree.store, tree.ctx.emit, () => {\n const nodeKeyProp = tree?.props?.nodeKey\n if (nodeKeyProp) {\n const curNodeKey = getNodeKey(props.node)\n tree.store.value.setCurrentNodeKey(curNodeKey)\n } else {\n tree.store.value.setCurrentNode(props.node)\n }\n })\n tree.currentNode.value = props.node\n\n if (tree.props.expandOnClickNode) {\n handleExpandIconClick()\n }\n\n if (\n (tree.props.checkOnClickNode ||\n (props.node.isLeaf &&\n tree.props.checkOnClickLeaf &&\n props.showCheckbox)) &&\n !props.node.disabled\n ) {\n handleCheckChange(!props.node.checked)\n }\n tree.ctx.emit('node-click', props.node.data, props.node, instance, e)\n }\n\n const handleContextMenu = (event: Event) => {\n if (tree.instance.vnode.props?.['onNodeContextmenu']) {\n event.stopPropagation()\n event.preventDefault()\n }\n tree.ctx.emit(\n 'node-contextmenu',\n event,\n props.node.data,\n props.node,\n instance\n )\n }\n\n const handleExpandIconClick = () => {\n if (props.node.isLeaf) return\n if (expanded.value) {\n tree.ctx.emit('node-collapse', props.node.data, props.node, instance)\n props.node.collapse()\n } else {\n props.node.expand(() => {\n ctx.emit('node-expand', props.node.data, props.node, instance)\n })\n }\n }\n\n const handleCheckChange = (value: CheckboxValueType) => {\n const checkStrictly = tree?.props.checkStrictly\n const childNodes = props.node.childNodes\n if (!checkStrictly && childNodes.length) {\n value = childNodes.some((node) => !node.isEffectivelyChecked)\n }\n props.node.setChecked(value as boolean, !checkStrictly)\n nextTick(() => {\n const store = tree.store.value\n tree.ctx.emit('check', props.node.data, {\n checkedNodes: store.getCheckedNodes(),\n checkedKeys: store.getCheckedKeys(),\n halfCheckedNodes: store.getHalfCheckedNodes(),\n halfCheckedKeys: store.getHalfCheckedKeys(),\n })\n })\n }\n\n const handleChildNodeExpand = (\n nodeData: TreeNodeData,\n node: Node,\n instance: ComponentInternalInstance\n ) => {\n broadcastExpanded(node)\n tree.ctx.emit('node-expand', nodeData, node, instance)\n }\n\n const handleDragStart = (event: DragEvent) => {\n if (!tree.props.draggable) return\n dragEvents.treeNodeDragStart({ event, treeNode: props })\n }\n\n const handleDragOver = (event: DragEvent) => {\n event.preventDefault()\n if (!tree.props.draggable) return\n dragEvents.treeNodeDragOver({\n event,\n treeNode: { $el: node$.value, node: props.node },\n })\n }\n\n const handleDrop = (event: DragEvent) => {\n event.preventDefault()\n }\n\n const handleDragEnd = (event: DragEvent) => {\n if (!tree.props.draggable) return\n dragEvents.treeNodeDragEnd(event)\n }\n\n return {\n ns,\n node$,\n tree,\n expanded,\n childNodeRendered,\n oldChecked,\n oldIndeterminate,\n getNodeKey,\n getNodeClass,\n handleSelectChange,\n handleClick,\n handleContextMenu,\n handleExpandIconClick,\n handleCheckChange,\n handleChildNodeExpand,\n handleDragStart,\n handleDragOver,\n handleDrop,\n handleDragEnd,\n CaretRight,\n }\n },\n})\n</script>\n"],"names":["_createElementBlock","_normalizeClass","_createElementVNode","_normalizeStyle","_openBlock","_createBlock","_withModifiers","_resolveDynamicComponent","_createCommentVNode","_createVNode","_withCtx","_Fragment","_renderList","_vShow"],"mappings":"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"}
@@ -97,7 +97,7 @@ var _sfc_main = vue.defineComponent({
97
97
  }
98
98
  );
99
99
  const getNodeKey = (node) => {
100
- return util.getNodeKey(tree.props.nodeKey, node.data);
100
+ return tree.props.nodeKey ? util.getNodeKey(tree.props.nodeKey, node.data) : node.id;
101
101
  };
102
102
  const getNodeClass = (node) => {
103
103
  const nodeClassFunc = props.props.class;
@@ -1 +1 @@
1
- {"version":3,"file":"tree-node.vue2.js","sources":["../../../../../../packages/components/tree/src/tree-node.vue"],"sourcesContent":["<template>\n <div\n v-show=\"node.visible\"\n ref=\"node$\"\n :class=\"[\n ns.b('node'),\n ns.is('expanded', expanded),\n ns.is('current', node.isCurrent),\n ns.is('hidden', !node.visible),\n ns.is('focusable', !node.disabled),\n ns.is('checked', !node.disabled && node.checked),\n getNodeClass(node),\n ]\"\n role=\"treeitem\"\n tabindex=\"-1\"\n :aria-expanded=\"expanded\"\n :aria-disabled=\"node.disabled\"\n :aria-checked=\"node.checked\"\n :draggable=\"tree.props.draggable\"\n :data-key=\"getNodeKey(node)\"\n @click.stop=\"handleClick\"\n @contextmenu=\"handleContextMenu\"\n @dragstart.stop=\"handleDragStart\"\n @dragover.stop=\"handleDragOver\"\n @dragend.stop=\"handleDragEnd\"\n @drop.stop=\"handleDrop\"\n >\n <div\n :class=\"ns.be('node', 'content')\"\n :style=\"{ paddingLeft: (node.level - 1) * tree.props.indent + 'px' }\"\n >\n <el-icon\n v-if=\"tree.props.icon || CaretRight\"\n :class=\"[\n ns.be('node', 'expand-icon'),\n ns.is('leaf', node.isLeaf),\n {\n expanded: !node.isLeaf && expanded,\n },\n ]\"\n @click.stop=\"handleExpandIconClick\"\n >\n <component :is=\"tree.props.icon || CaretRight\" />\n </el-icon>\n <el-checkbox\n v-if=\"showCheckbox\"\n :model-value=\"node.checked\"\n :indeterminate=\"node.indeterminate\"\n :disabled=\"!!node.disabled\"\n @click.stop\n @change=\"handleCheckChange\"\n />\n <el-icon\n v-if=\"node.loading\"\n :class=\"[ns.be('node', 'loading-icon'), ns.is('loading')]\"\n >\n <loading />\n </el-icon>\n <node-content :node=\"node\" :render-content=\"renderContent\" />\n </div>\n <el-collapse-transition>\n <div\n v-if=\"!renderAfterExpand || childNodeRendered\"\n v-show=\"expanded\"\n :class=\"ns.be('node', 'children')\"\n role=\"group\"\n :aria-expanded=\"expanded\"\n @click.stop\n >\n <el-tree-node\n v-for=\"child in node.childNodes\"\n :key=\"getNodeKey(child)\"\n :render-content=\"renderContent\"\n :render-after-expand=\"renderAfterExpand\"\n :show-checkbox=\"showCheckbox\"\n :node=\"child\"\n :accordion=\"accordion\"\n :props=\"props\"\n @node-expand=\"handleChildNodeExpand\"\n />\n </div>\n </el-collapse-transition>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n defineComponent,\n getCurrentInstance,\n inject,\n nextTick,\n provide,\n ref,\n watch,\n} from 'vue'\nimport { debugWarn, isFunction, isString } from '@element-plus/utils'\nimport ElCollapseTransition from '@element-plus/components/collapse-transition'\nimport ElCheckbox from '@element-plus/components/checkbox'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { CaretRight, Loading } from '@element-plus/icons-vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport NodeContent from './tree-node-content.vue'\nimport { getNodeKey as getNodeKeyUtil, handleCurrentChange } from './model/util'\nimport { useNodeExpandEventBroadcast } from './model/useNodeExpandEventBroadcast'\nimport { dragEventsKey } from './model/useDragNode'\nimport Node from './model/node'\nimport { NODE_INSTANCE_INJECTION_KEY, ROOT_TREE_INJECTION_KEY } from './tokens'\n\nimport type { ComponentInternalInstance, PropType } from 'vue'\nimport type { RootTreeType, TreeNodeData, TreeOptionProps } from './tree.type'\nimport type { CheckboxValueType } from '@element-plus/components/checkbox'\n\nexport default defineComponent({\n name: 'ElTreeNode',\n components: {\n ElCollapseTransition,\n ElCheckbox,\n NodeContent,\n ElIcon,\n Loading,\n },\n props: {\n node: {\n type: Node,\n default: () => ({}),\n },\n props: {\n type: Object as PropType<TreeOptionProps>,\n default: () => ({}),\n },\n accordion: Boolean,\n renderContent: Function,\n renderAfterExpand: Boolean,\n showCheckbox: Boolean,\n },\n emits: ['node-expand'],\n setup(props, ctx) {\n const ns = useNamespace('tree')\n const { broadcastExpanded } = useNodeExpandEventBroadcast(props)\n const tree = inject<RootTreeType>(ROOT_TREE_INJECTION_KEY)!\n const expanded = ref(false)\n const childNodeRendered = ref(false)\n const oldChecked = ref<boolean>()\n const oldIndeterminate = ref<boolean>()\n const node$ = ref<HTMLElement>()\n const dragEvents = inject(dragEventsKey)!\n const instance = getCurrentInstance()\n\n provide(NODE_INSTANCE_INJECTION_KEY, instance)\n if (!tree) {\n debugWarn('Tree', \"Can not find node's tree.\")\n }\n\n if (props.node.expanded) {\n expanded.value = true\n childNodeRendered.value = true\n }\n\n const childrenKey = tree.props.props['children'] || 'children'\n watch(\n () => {\n const children = props.node.data?.[childrenKey]\n return children && [...children]\n },\n () => {\n props.node.updateChildren()\n }\n )\n\n watch(\n () => props.node.indeterminate,\n (val) => {\n handleSelectChange(props.node.checked, val)\n }\n )\n\n watch(\n () => props.node.checked,\n (val) => {\n handleSelectChange(val, props.node.indeterminate)\n }\n )\n\n watch(\n () => props.node.childNodes.length,\n () => props.node.reInitChecked()\n )\n\n watch(\n () => props.node.expanded,\n (val) => {\n nextTick(() => (expanded.value = val))\n if (val) {\n childNodeRendered.value = true\n }\n }\n )\n\n const getNodeKey = (node: Node): any => {\n return getNodeKeyUtil(tree.props.nodeKey, node.data)\n }\n\n const getNodeClass = (node: Node) => {\n const nodeClassFunc = props.props.class\n if (!nodeClassFunc) {\n return {}\n }\n let className\n if (isFunction(nodeClassFunc)) {\n const { data } = node\n className = nodeClassFunc(data, node)\n } else {\n className = nodeClassFunc\n }\n\n if (isString(className)) {\n return { [className]: true }\n } else {\n return className\n }\n }\n\n const handleSelectChange = (checked: boolean, indeterminate: boolean) => {\n if (\n oldChecked.value !== checked ||\n oldIndeterminate.value !== indeterminate\n ) {\n tree.ctx.emit('check-change', props.node.data, checked, indeterminate)\n }\n oldChecked.value = checked\n oldIndeterminate.value = indeterminate\n }\n\n const handleClick = (e: MouseEvent) => {\n handleCurrentChange(tree.store, tree.ctx.emit, () => {\n const nodeKeyProp = tree?.props?.nodeKey\n if (nodeKeyProp) {\n const curNodeKey = getNodeKey(props.node)\n tree.store.value.setCurrentNodeKey(curNodeKey)\n } else {\n tree.store.value.setCurrentNode(props.node)\n }\n })\n tree.currentNode.value = props.node\n\n if (tree.props.expandOnClickNode) {\n handleExpandIconClick()\n }\n\n if (\n (tree.props.checkOnClickNode ||\n (props.node.isLeaf &&\n tree.props.checkOnClickLeaf &&\n props.showCheckbox)) &&\n !props.node.disabled\n ) {\n handleCheckChange(!props.node.checked)\n }\n tree.ctx.emit('node-click', props.node.data, props.node, instance, e)\n }\n\n const handleContextMenu = (event: Event) => {\n if (tree.instance.vnode.props?.['onNodeContextmenu']) {\n event.stopPropagation()\n event.preventDefault()\n }\n tree.ctx.emit(\n 'node-contextmenu',\n event,\n props.node.data,\n props.node,\n instance\n )\n }\n\n const handleExpandIconClick = () => {\n if (props.node.isLeaf) return\n if (expanded.value) {\n tree.ctx.emit('node-collapse', props.node.data, props.node, instance)\n props.node.collapse()\n } else {\n props.node.expand(() => {\n ctx.emit('node-expand', props.node.data, props.node, instance)\n })\n }\n }\n\n const handleCheckChange = (value: CheckboxValueType) => {\n const checkStrictly = tree?.props.checkStrictly\n const childNodes = props.node.childNodes\n if (!checkStrictly && childNodes.length) {\n value = childNodes.some((node) => !node.isEffectivelyChecked)\n }\n props.node.setChecked(value as boolean, !checkStrictly)\n nextTick(() => {\n const store = tree.store.value\n tree.ctx.emit('check', props.node.data, {\n checkedNodes: store.getCheckedNodes(),\n checkedKeys: store.getCheckedKeys(),\n halfCheckedNodes: store.getHalfCheckedNodes(),\n halfCheckedKeys: store.getHalfCheckedKeys(),\n })\n })\n }\n\n const handleChildNodeExpand = (\n nodeData: TreeNodeData,\n node: Node,\n instance: ComponentInternalInstance\n ) => {\n broadcastExpanded(node)\n tree.ctx.emit('node-expand', nodeData, node, instance)\n }\n\n const handleDragStart = (event: DragEvent) => {\n if (!tree.props.draggable) return\n dragEvents.treeNodeDragStart({ event, treeNode: props })\n }\n\n const handleDragOver = (event: DragEvent) => {\n event.preventDefault()\n if (!tree.props.draggable) return\n dragEvents.treeNodeDragOver({\n event,\n treeNode: { $el: node$.value, node: props.node },\n })\n }\n\n const handleDrop = (event: DragEvent) => {\n event.preventDefault()\n }\n\n const handleDragEnd = (event: DragEvent) => {\n if (!tree.props.draggable) return\n dragEvents.treeNodeDragEnd(event)\n }\n\n return {\n ns,\n node$,\n tree,\n expanded,\n childNodeRendered,\n oldChecked,\n oldIndeterminate,\n getNodeKey,\n getNodeClass,\n handleSelectChange,\n handleClick,\n handleContextMenu,\n handleExpandIconClick,\n handleCheckChange,\n handleChildNodeExpand,\n handleDragStart,\n handleDragOver,\n handleDrop,\n handleDragEnd,\n CaretRight,\n }\n },\n})\n</script>\n"],"names":["defineComponent","ElCollapseTransition","ElCheckbox","NodeContent","ElIcon","Loading","Node","useNamespace","useNodeExpandEventBroadcast","inject","ROOT_TREE_INJECTION_KEY","ref","dragEventsKey","getCurrentInstance","provide","NODE_INSTANCE_INJECTION_KEY","debugWarn","watch","nextTick","getNodeKeyUtil","isFunction","isString","handleCurrentChange","instance","CaretRight"],"mappings":"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"}
1
+ {"version":3,"file":"tree-node.vue2.js","sources":["../../../../../../packages/components/tree/src/tree-node.vue"],"sourcesContent":["<template>\n <div\n v-show=\"node.visible\"\n ref=\"node$\"\n :class=\"[\n ns.b('node'),\n ns.is('expanded', expanded),\n ns.is('current', node.isCurrent),\n ns.is('hidden', !node.visible),\n ns.is('focusable', !node.disabled),\n ns.is('checked', !node.disabled && node.checked),\n getNodeClass(node),\n ]\"\n role=\"treeitem\"\n tabindex=\"-1\"\n :aria-expanded=\"expanded\"\n :aria-disabled=\"node.disabled\"\n :aria-checked=\"node.checked\"\n :draggable=\"tree.props.draggable\"\n :data-key=\"getNodeKey(node)\"\n @click.stop=\"handleClick\"\n @contextmenu=\"handleContextMenu\"\n @dragstart.stop=\"handleDragStart\"\n @dragover.stop=\"handleDragOver\"\n @dragend.stop=\"handleDragEnd\"\n @drop.stop=\"handleDrop\"\n >\n <div\n :class=\"ns.be('node', 'content')\"\n :style=\"{ paddingLeft: (node.level - 1) * tree.props.indent + 'px' }\"\n >\n <el-icon\n v-if=\"tree.props.icon || CaretRight\"\n :class=\"[\n ns.be('node', 'expand-icon'),\n ns.is('leaf', node.isLeaf),\n {\n expanded: !node.isLeaf && expanded,\n },\n ]\"\n @click.stop=\"handleExpandIconClick\"\n >\n <component :is=\"tree.props.icon || CaretRight\" />\n </el-icon>\n <el-checkbox\n v-if=\"showCheckbox\"\n :model-value=\"node.checked\"\n :indeterminate=\"node.indeterminate\"\n :disabled=\"!!node.disabled\"\n @click.stop\n @change=\"handleCheckChange\"\n />\n <el-icon\n v-if=\"node.loading\"\n :class=\"[ns.be('node', 'loading-icon'), ns.is('loading')]\"\n >\n <loading />\n </el-icon>\n <node-content :node=\"node\" :render-content=\"renderContent\" />\n </div>\n <el-collapse-transition>\n <div\n v-if=\"!renderAfterExpand || childNodeRendered\"\n v-show=\"expanded\"\n :class=\"ns.be('node', 'children')\"\n role=\"group\"\n :aria-expanded=\"expanded\"\n @click.stop\n >\n <el-tree-node\n v-for=\"child in node.childNodes\"\n :key=\"getNodeKey(child)\"\n :render-content=\"renderContent\"\n :render-after-expand=\"renderAfterExpand\"\n :show-checkbox=\"showCheckbox\"\n :node=\"child\"\n :accordion=\"accordion\"\n :props=\"props\"\n @node-expand=\"handleChildNodeExpand\"\n />\n </div>\n </el-collapse-transition>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n defineComponent,\n getCurrentInstance,\n inject,\n nextTick,\n provide,\n ref,\n watch,\n} from 'vue'\nimport { debugWarn, isFunction, isString } from '@element-plus/utils'\nimport ElCollapseTransition from '@element-plus/components/collapse-transition'\nimport ElCheckbox from '@element-plus/components/checkbox'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { CaretRight, Loading } from '@element-plus/icons-vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport NodeContent from './tree-node-content.vue'\nimport { getNodeKey as getNodeKeyUtil, handleCurrentChange } from './model/util'\nimport { useNodeExpandEventBroadcast } from './model/useNodeExpandEventBroadcast'\nimport { dragEventsKey } from './model/useDragNode'\nimport Node from './model/node'\nimport { NODE_INSTANCE_INJECTION_KEY, ROOT_TREE_INJECTION_KEY } from './tokens'\n\nimport type { ComponentInternalInstance, PropType } from 'vue'\nimport type { RootTreeType, TreeNodeData, TreeOptionProps } from './tree.type'\nimport type { CheckboxValueType } from '@element-plus/components/checkbox'\n\nexport default defineComponent({\n name: 'ElTreeNode',\n components: {\n ElCollapseTransition,\n ElCheckbox,\n NodeContent,\n ElIcon,\n Loading,\n },\n props: {\n node: {\n type: Node,\n default: () => ({}),\n },\n props: {\n type: Object as PropType<TreeOptionProps>,\n default: () => ({}),\n },\n accordion: Boolean,\n renderContent: Function,\n renderAfterExpand: Boolean,\n showCheckbox: Boolean,\n },\n emits: ['node-expand'],\n setup(props, ctx) {\n const ns = useNamespace('tree')\n const { broadcastExpanded } = useNodeExpandEventBroadcast(props)\n const tree = inject<RootTreeType>(ROOT_TREE_INJECTION_KEY)!\n const expanded = ref(false)\n const childNodeRendered = ref(false)\n const oldChecked = ref<boolean>()\n const oldIndeterminate = ref<boolean>()\n const node$ = ref<HTMLElement>()\n const dragEvents = inject(dragEventsKey)!\n const instance = getCurrentInstance()\n\n provide(NODE_INSTANCE_INJECTION_KEY, instance)\n if (!tree) {\n debugWarn('Tree', \"Can not find node's tree.\")\n }\n\n if (props.node.expanded) {\n expanded.value = true\n childNodeRendered.value = true\n }\n\n const childrenKey = tree.props.props['children'] || 'children'\n watch(\n () => {\n const children = props.node.data?.[childrenKey]\n return children && [...children]\n },\n () => {\n props.node.updateChildren()\n }\n )\n\n watch(\n () => props.node.indeterminate,\n (val) => {\n handleSelectChange(props.node.checked, val)\n }\n )\n\n watch(\n () => props.node.checked,\n (val) => {\n handleSelectChange(val, props.node.indeterminate)\n }\n )\n\n watch(\n () => props.node.childNodes.length,\n () => props.node.reInitChecked()\n )\n\n watch(\n () => props.node.expanded,\n (val) => {\n nextTick(() => (expanded.value = val))\n if (val) {\n childNodeRendered.value = true\n }\n }\n )\n\n const getNodeKey = (node: Node): any => {\n return tree.props.nodeKey\n ? getNodeKeyUtil(tree.props.nodeKey, node.data)\n : node.id\n }\n\n const getNodeClass = (node: Node) => {\n const nodeClassFunc = props.props.class\n if (!nodeClassFunc) {\n return {}\n }\n let className\n if (isFunction(nodeClassFunc)) {\n const { data } = node\n className = nodeClassFunc(data, node)\n } else {\n className = nodeClassFunc\n }\n\n if (isString(className)) {\n return { [className]: true }\n } else {\n return className\n }\n }\n\n const handleSelectChange = (checked: boolean, indeterminate: boolean) => {\n if (\n oldChecked.value !== checked ||\n oldIndeterminate.value !== indeterminate\n ) {\n tree.ctx.emit('check-change', props.node.data, checked, indeterminate)\n }\n oldChecked.value = checked\n oldIndeterminate.value = indeterminate\n }\n\n const handleClick = (e: MouseEvent) => {\n handleCurrentChange(tree.store, tree.ctx.emit, () => {\n const nodeKeyProp = tree?.props?.nodeKey\n if (nodeKeyProp) {\n const curNodeKey = getNodeKey(props.node)\n tree.store.value.setCurrentNodeKey(curNodeKey)\n } else {\n tree.store.value.setCurrentNode(props.node)\n }\n })\n tree.currentNode.value = props.node\n\n if (tree.props.expandOnClickNode) {\n handleExpandIconClick()\n }\n\n if (\n (tree.props.checkOnClickNode ||\n (props.node.isLeaf &&\n tree.props.checkOnClickLeaf &&\n props.showCheckbox)) &&\n !props.node.disabled\n ) {\n handleCheckChange(!props.node.checked)\n }\n tree.ctx.emit('node-click', props.node.data, props.node, instance, e)\n }\n\n const handleContextMenu = (event: Event) => {\n if (tree.instance.vnode.props?.['onNodeContextmenu']) {\n event.stopPropagation()\n event.preventDefault()\n }\n tree.ctx.emit(\n 'node-contextmenu',\n event,\n props.node.data,\n props.node,\n instance\n )\n }\n\n const handleExpandIconClick = () => {\n if (props.node.isLeaf) return\n if (expanded.value) {\n tree.ctx.emit('node-collapse', props.node.data, props.node, instance)\n props.node.collapse()\n } else {\n props.node.expand(() => {\n ctx.emit('node-expand', props.node.data, props.node, instance)\n })\n }\n }\n\n const handleCheckChange = (value: CheckboxValueType) => {\n const checkStrictly = tree?.props.checkStrictly\n const childNodes = props.node.childNodes\n if (!checkStrictly && childNodes.length) {\n value = childNodes.some((node) => !node.isEffectivelyChecked)\n }\n props.node.setChecked(value as boolean, !checkStrictly)\n nextTick(() => {\n const store = tree.store.value\n tree.ctx.emit('check', props.node.data, {\n checkedNodes: store.getCheckedNodes(),\n checkedKeys: store.getCheckedKeys(),\n halfCheckedNodes: store.getHalfCheckedNodes(),\n halfCheckedKeys: store.getHalfCheckedKeys(),\n })\n })\n }\n\n const handleChildNodeExpand = (\n nodeData: TreeNodeData,\n node: Node,\n instance: ComponentInternalInstance\n ) => {\n broadcastExpanded(node)\n tree.ctx.emit('node-expand', nodeData, node, instance)\n }\n\n const handleDragStart = (event: DragEvent) => {\n if (!tree.props.draggable) return\n dragEvents.treeNodeDragStart({ event, treeNode: props })\n }\n\n const handleDragOver = (event: DragEvent) => {\n event.preventDefault()\n if (!tree.props.draggable) return\n dragEvents.treeNodeDragOver({\n event,\n treeNode: { $el: node$.value, node: props.node },\n })\n }\n\n const handleDrop = (event: DragEvent) => {\n event.preventDefault()\n }\n\n const handleDragEnd = (event: DragEvent) => {\n if (!tree.props.draggable) return\n dragEvents.treeNodeDragEnd(event)\n }\n\n return {\n ns,\n node$,\n tree,\n expanded,\n childNodeRendered,\n oldChecked,\n oldIndeterminate,\n getNodeKey,\n getNodeClass,\n handleSelectChange,\n handleClick,\n handleContextMenu,\n handleExpandIconClick,\n handleCheckChange,\n handleChildNodeExpand,\n handleDragStart,\n handleDragOver,\n handleDrop,\n handleDragEnd,\n CaretRight,\n }\n },\n})\n</script>\n"],"names":["defineComponent","ElCollapseTransition","ElCheckbox","NodeContent","ElIcon","Loading","Node","useNamespace","useNodeExpandEventBroadcast","inject","ROOT_TREE_INJECTION_KEY","ref","dragEventsKey","getCurrentInstance","provide","NODE_INSTANCE_INJECTION_KEY","debugWarn","watch","nextTick","getNodeKeyUtil","isFunction","isString","handleCurrentChange","instance","CaretRight"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tree.vue.js","sources":["../../../../../../packages/components/tree/src/tree.vue"],"sourcesContent":["<template>\n <div\n ref=\"el$\"\n :class=\"[\n ns.b(),\n ns.is('dragging', !!dragState.draggingNode),\n ns.is('drop-not-allow', !dragState.allowDrop),\n ns.is('drop-inner', dragState.dropType === 'inner'),\n { [ns.m('highlight-current')]: highlightCurrent },\n ]\"\n role=\"tree\"\n >\n <el-tree-node\n v-for=\"child in root.childNodes\"\n :key=\"getNodeKey(child)\"\n :node=\"child\"\n :props=\"props\"\n :accordion=\"accordion\"\n :render-after-expand=\"renderAfterExpand\"\n :show-checkbox=\"showCheckbox\"\n :render-content=\"renderContent\"\n @node-expand=\"handleNodeExpand\"\n />\n <div v-if=\"isEmpty\" :class=\"ns.e('empty-block')\">\n <slot name=\"empty\">\n <span :class=\"ns.e('empty-text')\">\n {{ emptyText ?? t('el.tree.emptyText') }}\n </span>\n </slot>\n </div>\n <div\n v-show=\"dragState.showDropIndicator\"\n ref=\"dropIndicator$\"\n :class=\"ns.e('drop-indicator')\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n getCurrentInstance,\n provide,\n ref,\n watch,\n} from 'vue'\nimport { isEqual } from 'lodash-unified'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { formItemContextKey } from '@element-plus/components/form'\nimport TreeStore from './model/tree-store'\nimport { getNodeKey as getNodeKeyUtil, handleCurrentChange } from './model/util'\nimport ElTreeNode from './tree-node.vue'\nimport { useNodeExpandEventBroadcast } from './model/useNodeExpandEventBroadcast'\nimport { useDragNodeHandler } from './model/useDragNode'\nimport { useKeydown } from './model/useKeydown'\nimport { ROOT_TREE_INJECTION_KEY } from './tokens'\nimport { treeEmits, treeProps } from './tree'\n\nimport type Node from './model/node'\nimport type { ComponentInternalInstance } from 'vue'\nimport type { Nullable } from '@element-plus/utils'\nimport type { FilterValue, TreeData, TreeKey, TreeNodeData } from './tree.type'\n\nexport default defineComponent({\n name: 'ElTree',\n components: { ElTreeNode },\n props: treeProps,\n emits: treeEmits,\n setup(props, ctx) {\n const { t } = useLocale()\n const ns = useNamespace('tree')\n\n const store = ref<TreeStore>(\n new TreeStore({\n key: props.nodeKey,\n data: props.data,\n lazy: props.lazy,\n props: props.props,\n load: props.load,\n currentNodeKey: props.currentNodeKey,\n checkStrictly: props.checkStrictly,\n checkDescendants: props.checkDescendants,\n defaultCheckedKeys: props.defaultCheckedKeys,\n defaultExpandedKeys: props.defaultExpandedKeys,\n autoExpandParent: props.autoExpandParent,\n defaultExpandAll: props.defaultExpandAll,\n filterNodeMethod: props.filterNodeMethod,\n })\n )\n\n store.value.initialize()\n\n const root = ref<Node>(store.value.root)\n const currentNode = ref<Node | null>(null)\n const el$ = ref<Nullable<HTMLElement>>(null)\n const dropIndicator$ = ref<Nullable<HTMLElement>>(null)\n\n const { broadcastExpanded } = useNodeExpandEventBroadcast(props)\n\n const { dragState } = useDragNodeHandler({\n props,\n ctx,\n el$,\n dropIndicator$,\n store,\n })\n\n useKeydown({ el$ }, store)\n\n const instance = getCurrentInstance()\n\n const isSelectTree = computed(() => {\n let parent = instance?.parent\n while (parent) {\n if (parent.type.name === 'ElTreeSelect') {\n return true\n }\n parent = parent.parent\n }\n return false\n })\n\n const isEmpty = computed(() => {\n const { childNodes } = root.value\n return (\n (!childNodes ||\n childNodes.length === 0 ||\n childNodes.every(({ visible }) => !visible)) &&\n !isSelectTree.value\n )\n })\n\n watch(\n () => props.currentNodeKey,\n (newVal) => {\n store.value.setCurrentNodeKey(newVal ?? null)\n }\n )\n\n watch(\n () => props.defaultCheckedKeys,\n (newVal, oldVal) => {\n if (isEqual(newVal, oldVal)) return\n\n store.value.setDefaultCheckedKey(newVal ?? [])\n }\n )\n\n watch(\n () => props.defaultExpandedKeys,\n (newVal) => {\n store.value.setDefaultExpandedKeys(newVal ?? [])\n }\n )\n\n watch(\n () => props.data,\n (newVal) => {\n store.value.setData(newVal)\n },\n { deep: true }\n )\n\n watch(\n () => props.checkStrictly,\n (newVal) => {\n store.value.checkStrictly = newVal\n }\n )\n\n const filter = (value: FilterValue) => {\n if (!props.filterNodeMethod)\n throw new Error('[Tree] filterNodeMethod is required when filter')\n store.value.filter(value)\n }\n\n const getNodeKey = (node: Node) => {\n return getNodeKeyUtil(props.nodeKey, node.data)\n }\n\n const requireNodeKey = (methodName: string) => {\n if (!props.nodeKey) {\n throw new Error(`[Tree] nodeKey is required in ${methodName}`)\n }\n }\n\n const getNodePath = (data: TreeKey | TreeNodeData) => {\n requireNodeKey('getNodePath')\n\n const node = store.value.getNode(data)\n if (!node) return []\n const path = [node.data]\n let parent = node.parent\n while (parent && parent !== root.value) {\n path.push(parent.data)\n parent = parent.parent\n }\n return path.reverse()\n }\n\n const getCheckedNodes = (\n leafOnly?: boolean,\n includeHalfChecked?: boolean\n ): TreeNodeData[] => {\n return store.value.getCheckedNodes(leafOnly, includeHalfChecked)\n }\n\n const getCheckedKeys = (leafOnly?: boolean): TreeKey[] => {\n return store.value.getCheckedKeys(leafOnly)\n }\n\n const getCurrentNode = () => {\n const currentNode = store.value.getCurrentNode()\n return currentNode ? currentNode.data : null\n }\n\n const getCurrentKey = (): TreeKey | null => {\n requireNodeKey('getCurrentKey')\n\n const currentNode = getCurrentNode()\n return currentNode ? currentNode[props.nodeKey!] : null\n }\n\n const setCheckedNodes = (nodes: Node[], leafOnly?: boolean) => {\n requireNodeKey('setCheckedNodes')\n\n store.value.setCheckedNodes(nodes, leafOnly)\n }\n\n const setCheckedKeys = (keys: TreeKey[], leafOnly?: boolean) => {\n requireNodeKey('setCheckedKeys')\n\n store.value.setCheckedKeys(keys, leafOnly)\n }\n\n const setChecked = (\n data: TreeKey | TreeNodeData,\n checked: boolean,\n deep: boolean\n ) => {\n store.value.setChecked(data, checked, deep)\n }\n\n const getHalfCheckedNodes = (): TreeNodeData[] => {\n return store.value.getHalfCheckedNodes()\n }\n\n const getHalfCheckedKeys = (): TreeKey[] => {\n return store.value.getHalfCheckedKeys()\n }\n\n const setCurrentNode = (node: Node, shouldAutoExpandParent = true) => {\n requireNodeKey('setCurrentNode')\n\n handleCurrentChange(store, ctx.emit, () => {\n broadcastExpanded(node)\n store.value.setUserCurrentNode(node, shouldAutoExpandParent)\n })\n }\n\n const setCurrentKey = (\n key: TreeKey | null = null,\n shouldAutoExpandParent = true\n ) => {\n requireNodeKey('setCurrentKey')\n\n handleCurrentChange(store, ctx.emit, () => {\n broadcastExpanded()\n store.value.setCurrentNodeKey(key, shouldAutoExpandParent)\n })\n }\n\n const getNode = (data: TreeKey | TreeNodeData): Node => {\n return store.value.getNode(data)\n }\n\n const remove = (data: TreeNodeData | Node) => {\n store.value.remove(data)\n }\n\n const append = (\n data: TreeNodeData,\n parentNode: TreeNodeData | TreeKey | Node\n ) => {\n store.value.append(data, parentNode)\n }\n\n const insertBefore = (\n data: TreeNodeData,\n refNode: TreeKey | TreeNodeData | Node\n ) => {\n store.value.insertBefore(data, refNode)\n }\n\n const insertAfter = (\n data: TreeNodeData,\n refNode: TreeKey | TreeNodeData | Node\n ) => {\n store.value.insertAfter(data, refNode)\n }\n\n const handleNodeExpand = (\n nodeData: TreeNodeData,\n node: Node,\n instance: ComponentInternalInstance\n ) => {\n broadcastExpanded(node)\n ctx.emit('node-expand', nodeData, node, instance)\n }\n\n const updateKeyChildren = (key: TreeKey, data: TreeData) => {\n requireNodeKey('updateKeyChildren')\n\n store.value.updateChildren(key, data)\n }\n\n provide(ROOT_TREE_INJECTION_KEY, {\n ctx,\n props,\n store,\n root,\n currentNode,\n instance,\n })\n\n provide(formItemContextKey, undefined)\n\n return {\n ns,\n // ref\n store,\n root,\n currentNode,\n dragState,\n el$,\n dropIndicator$,\n\n // computed\n isEmpty,\n\n // methods\n filter,\n getNodeKey,\n getNodePath,\n getCheckedNodes,\n getCheckedKeys,\n getCurrentNode,\n getCurrentKey,\n setCheckedNodes,\n setCheckedKeys,\n setChecked,\n getHalfCheckedNodes,\n getHalfCheckedKeys,\n setCurrentNode,\n setCurrentKey,\n t,\n getNode,\n remove,\n append,\n insertBefore,\n insertAfter,\n handleNodeExpand,\n updateKeyChildren,\n }\n },\n})\n</script>\n"],"names":["_openBlock","_createElementBlock","_normalizeClass","_Fragment","_renderList","_createBlock","_renderSlot","_createElementVNode","_toDisplayString","_withDirectives","_vShow"],"mappings":";;;;;;;;;;AACE,EAAA,OAAAA,eAAA,EAAAC,sBAAA;AAAA,IAkCM,KAAA;AAAA,IAAA;AAAA,MAjCJ,GAAA,EAAI,KAAA;AAAA,MACH,OAAKC,kBAAA,CAAA;AAAA,QAAU,IAAA,IAAG,CAAA,EAAC;AAAA,QAAU,IAAA,CAAA,GAAG,EAAA,CAAE,UAAA,EAAA,CAAA,CAAe,IAAA,CAAA,UAAU,YAAY,CAAA;AAAA,QAAS,KAAA,EAAA,CAAG,EAAA,CAAE,kBAAA,CAAoB,IAAA,CAAA,UAAU,SAAS,CAAA;AAAA,QAAS,KAAA,EAAA,CAAG,EAAA,CAAE,cAAe,IAAA,CAAA,SAAA,CAAU,aAAQ,OAAA,CAAA;AAAA,QAAA,EAAA,CAAwB,IAAA,CAAA,EAAA,CAAG,EAAC,mBAAA,CAAA,GAAwB,IAAA,CAAA,gBAAA;AAAgB,OAAA,CAAA;AAAA,MAOhP,IAAA,EAAK;AAAA,KAAA;AAAA;OAELF,aAAA,CAAA,IAAA,CAAA,EAAAC,sBAAA;AAAA,QAUEE,YAAA;AAAA,QAAA,IAAA;AAAA,QAAAC,cAAA,CATgB,IAAA,CAAA,IAAA,CAAK,UAAA,EAAU,CAAxB,KAAA,KAAK;kCADdC,eAAA,CAUE,uBAAA,EAAA;AAAA,YARC,GAAA,EAAK,IAAA,YAAW,KAAK,CAAA;AAAA,YACrB,IAAA,EAAM,KAAA;AAAA,YACN,OAAO,IAAA,CAAA,KAAA;AAAA,YACP,WAAW,IAAA,CAAA,SAAA;AAAA,YACX,uBAAqB,IAAA,CAAA,iBAAA;AAAA,YACrB,iBAAe,IAAA,CAAA,YAAA;AAAA,YACf,kBAAgB,IAAA,CAAA,aAAA;AAAA,YAChB,cAAa,IAAA,CAAA;AAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,cAAA,CAAA,CAAA;AAAA;;;;MAEL,IAAA,CAAA,OAAA,IAAAL,aAAA,EAAA,EAAXC,sBAAA;AAAA,QAMM,KAAA;AAAA,QAAA;AAAA,UAAA,GAAA,EAAA,CAAA;AAAA,UANe,OAAKC,kBAAA,CAAE,IAAA,IAAG,CAAA,CAAC,aAAA,CAAA;AAAA,SAAA;AAAA;UAC9BI,eAIO,IAAA,sBAJP,MAAA;;AAIO,YAAA,OAAA;AAAA,cAHLC,sBAAA;AAAA,gBAEO,MAAA;AAAA,gBAAA;AAAA,kBAFA,OAAKL,kBAAA,CAAE,IAAA,CAAA,EAAA,CAAG,CAAA,CAAC,YAAA,CAAA;AAAA,iBAAA;AAAA,gBACbM,qBAAA,EAAA,GAAA,IAAA,CAAA,SAAA,KAAA,YAAa,IAAA,CAAA,CAAA,CAAC,mBAAA,CAAA,CAAA;AAAA,gBAAA;AAAA;AAAA;AAAA,aAAA;AAAA,UAAA,CAAA;AAAA;;;;MAIvBC,kBAAA,CAAAF,sBAAA;AAAA,QAIE,KAAA;AAAA,QAAA;AAAA,UAFA,GAAA,EAAI,gBAAA;AAAA,UACH,OAAKL,kBAAA,CAAE,IAAA,CAAA,EAAA,CAAG,CAAA,CAAC,gBAAA,CAAA;AAAA,SAAA;AAAA;;;;QAFJ,CAAAQ,SAAA,EAAA,IAAA,CAAA,SAAA,CAAU,iBAAiB;AAAA,OAAA;AAAA;;;;;;;;;"}
1
+ {"version":3,"file":"tree.vue.js","sources":["../../../../../../packages/components/tree/src/tree.vue"],"sourcesContent":["<template>\n <div\n ref=\"el$\"\n :class=\"[\n ns.b(),\n ns.is('dragging', !!dragState.draggingNode),\n ns.is('drop-not-allow', !dragState.allowDrop),\n ns.is('drop-inner', dragState.dropType === 'inner'),\n { [ns.m('highlight-current')]: highlightCurrent },\n ]\"\n role=\"tree\"\n >\n <el-tree-node\n v-for=\"child in root.childNodes\"\n :key=\"getNodeKey(child)\"\n :node=\"child\"\n :props=\"props\"\n :accordion=\"accordion\"\n :render-after-expand=\"renderAfterExpand\"\n :show-checkbox=\"showCheckbox\"\n :render-content=\"renderContent\"\n @node-expand=\"handleNodeExpand\"\n />\n <div v-if=\"isEmpty\" :class=\"ns.e('empty-block')\">\n <slot name=\"empty\">\n <span :class=\"ns.e('empty-text')\">\n {{ emptyText ?? t('el.tree.emptyText') }}\n </span>\n </slot>\n </div>\n <div\n v-show=\"dragState.showDropIndicator\"\n ref=\"dropIndicator$\"\n :class=\"ns.e('drop-indicator')\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n getCurrentInstance,\n provide,\n ref,\n watch,\n} from 'vue'\nimport { isEqual } from 'lodash-unified'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { formItemContextKey } from '@element-plus/components/form'\nimport TreeStore from './model/tree-store'\nimport { getNodeKey as getNodeKeyUtil, handleCurrentChange } from './model/util'\nimport ElTreeNode from './tree-node.vue'\nimport { useNodeExpandEventBroadcast } from './model/useNodeExpandEventBroadcast'\nimport { useDragNodeHandler } from './model/useDragNode'\nimport { useKeydown } from './model/useKeydown'\nimport { ROOT_TREE_INJECTION_KEY } from './tokens'\nimport { treeEmits, treeProps } from './tree'\n\nimport type Node from './model/node'\nimport type { ComponentInternalInstance } from 'vue'\nimport type { Nullable } from '@element-plus/utils'\nimport type { FilterValue, TreeData, TreeKey, TreeNodeData } from './tree.type'\n\nexport default defineComponent({\n name: 'ElTree',\n components: { ElTreeNode },\n props: treeProps,\n emits: treeEmits,\n setup(props, ctx) {\n const { t } = useLocale()\n const ns = useNamespace('tree')\n\n const store = ref<TreeStore>(\n new TreeStore({\n key: props.nodeKey,\n data: props.data,\n lazy: props.lazy,\n props: props.props,\n load: props.load,\n currentNodeKey: props.currentNodeKey,\n checkStrictly: props.checkStrictly,\n checkDescendants: props.checkDescendants,\n defaultCheckedKeys: props.defaultCheckedKeys,\n defaultExpandedKeys: props.defaultExpandedKeys,\n autoExpandParent: props.autoExpandParent,\n defaultExpandAll: props.defaultExpandAll,\n filterNodeMethod: props.filterNodeMethod,\n })\n )\n\n store.value.initialize()\n\n const root = ref<Node>(store.value.root)\n const currentNode = ref<Node | null>(null)\n const el$ = ref<Nullable<HTMLElement>>(null)\n const dropIndicator$ = ref<Nullable<HTMLElement>>(null)\n\n const { broadcastExpanded } = useNodeExpandEventBroadcast(props)\n\n const { dragState } = useDragNodeHandler({\n props,\n ctx,\n el$,\n dropIndicator$,\n store,\n })\n\n useKeydown({ el$ }, store)\n\n const instance = getCurrentInstance()\n\n const isSelectTree = computed(() => {\n let parent = instance?.parent\n while (parent) {\n if (parent.type.name === 'ElTreeSelect') {\n return true\n }\n parent = parent.parent\n }\n return false\n })\n\n const isEmpty = computed(() => {\n const { childNodes } = root.value\n return (\n (!childNodes ||\n childNodes.length === 0 ||\n childNodes.every(({ visible }) => !visible)) &&\n !isSelectTree.value\n )\n })\n\n watch(\n () => props.currentNodeKey,\n (newVal) => {\n store.value.setCurrentNodeKey(newVal ?? null)\n }\n )\n\n watch(\n () => props.defaultCheckedKeys,\n (newVal, oldVal) => {\n if (isEqual(newVal, oldVal)) return\n\n store.value.setDefaultCheckedKey(newVal ?? [])\n }\n )\n\n watch(\n () => props.defaultExpandedKeys,\n (newVal) => {\n store.value.setDefaultExpandedKeys(newVal ?? [])\n }\n )\n\n watch(\n () => props.data,\n (newVal) => {\n store.value.setData(newVal)\n },\n { deep: true }\n )\n\n watch(\n () => props.checkStrictly,\n (newVal) => {\n store.value.checkStrictly = newVal\n }\n )\n\n const filter = (value: FilterValue) => {\n if (!props.filterNodeMethod)\n throw new Error('[Tree] filterNodeMethod is required when filter')\n store.value.filter(value)\n }\n\n const getNodeKey = (node: Node) => {\n return props.nodeKey ? getNodeKeyUtil(props.nodeKey, node.data) : node.id\n }\n\n const requireNodeKey = (methodName: string) => {\n if (!props.nodeKey) {\n throw new Error(`[Tree] nodeKey is required in ${methodName}`)\n }\n }\n\n const getNodePath = (data: TreeKey | TreeNodeData) => {\n requireNodeKey('getNodePath')\n\n const node = store.value.getNode(data)\n if (!node) return []\n const path = [node.data]\n let parent = node.parent\n while (parent && parent !== root.value) {\n path.push(parent.data)\n parent = parent.parent\n }\n return path.reverse()\n }\n\n const getCheckedNodes = (\n leafOnly?: boolean,\n includeHalfChecked?: boolean\n ): TreeNodeData[] => {\n return store.value.getCheckedNodes(leafOnly, includeHalfChecked)\n }\n\n const getCheckedKeys = (leafOnly?: boolean): TreeKey[] => {\n return store.value.getCheckedKeys(leafOnly)\n }\n\n const getCurrentNode = () => {\n const currentNode = store.value.getCurrentNode()\n return currentNode ? currentNode.data : null\n }\n\n const getCurrentKey = (): TreeKey | null => {\n requireNodeKey('getCurrentKey')\n\n const currentNode = getCurrentNode()\n return currentNode ? currentNode[props.nodeKey!] : null\n }\n\n const setCheckedNodes = (nodes: Node[], leafOnly?: boolean) => {\n requireNodeKey('setCheckedNodes')\n\n store.value.setCheckedNodes(nodes, leafOnly)\n }\n\n const setCheckedKeys = (keys: TreeKey[], leafOnly?: boolean) => {\n requireNodeKey('setCheckedKeys')\n\n store.value.setCheckedKeys(keys, leafOnly)\n }\n\n const setChecked = (\n data: TreeKey | TreeNodeData,\n checked: boolean,\n deep: boolean\n ) => {\n store.value.setChecked(data, checked, deep)\n }\n\n const getHalfCheckedNodes = (): TreeNodeData[] => {\n return store.value.getHalfCheckedNodes()\n }\n\n const getHalfCheckedKeys = (): TreeKey[] => {\n return store.value.getHalfCheckedKeys()\n }\n\n const setCurrentNode = (node: Node, shouldAutoExpandParent = true) => {\n requireNodeKey('setCurrentNode')\n\n handleCurrentChange(store, ctx.emit, () => {\n broadcastExpanded(node)\n store.value.setUserCurrentNode(node, shouldAutoExpandParent)\n })\n }\n\n const setCurrentKey = (\n key: TreeKey | null = null,\n shouldAutoExpandParent = true\n ) => {\n requireNodeKey('setCurrentKey')\n\n handleCurrentChange(store, ctx.emit, () => {\n broadcastExpanded()\n store.value.setCurrentNodeKey(key, shouldAutoExpandParent)\n })\n }\n\n const getNode = (data: TreeKey | TreeNodeData): Node => {\n return store.value.getNode(data)\n }\n\n const remove = (data: TreeNodeData | Node) => {\n store.value.remove(data)\n }\n\n const append = (\n data: TreeNodeData,\n parentNode: TreeNodeData | TreeKey | Node\n ) => {\n store.value.append(data, parentNode)\n }\n\n const insertBefore = (\n data: TreeNodeData,\n refNode: TreeKey | TreeNodeData | Node\n ) => {\n store.value.insertBefore(data, refNode)\n }\n\n const insertAfter = (\n data: TreeNodeData,\n refNode: TreeKey | TreeNodeData | Node\n ) => {\n store.value.insertAfter(data, refNode)\n }\n\n const handleNodeExpand = (\n nodeData: TreeNodeData,\n node: Node,\n instance: ComponentInternalInstance\n ) => {\n broadcastExpanded(node)\n ctx.emit('node-expand', nodeData, node, instance)\n }\n\n const updateKeyChildren = (key: TreeKey, data: TreeData) => {\n requireNodeKey('updateKeyChildren')\n\n store.value.updateChildren(key, data)\n }\n\n provide(ROOT_TREE_INJECTION_KEY, {\n ctx,\n props,\n store,\n root,\n currentNode,\n instance,\n })\n\n provide(formItemContextKey, undefined)\n\n return {\n ns,\n // ref\n store,\n root,\n currentNode,\n dragState,\n el$,\n dropIndicator$,\n\n // computed\n isEmpty,\n\n // methods\n filter,\n getNodeKey,\n getNodePath,\n getCheckedNodes,\n getCheckedKeys,\n getCurrentNode,\n getCurrentKey,\n setCheckedNodes,\n setCheckedKeys,\n setChecked,\n getHalfCheckedNodes,\n getHalfCheckedKeys,\n setCurrentNode,\n setCurrentKey,\n t,\n getNode,\n remove,\n append,\n insertBefore,\n insertAfter,\n handleNodeExpand,\n updateKeyChildren,\n }\n },\n})\n</script>\n"],"names":["_openBlock","_createElementBlock","_normalizeClass","_Fragment","_renderList","_createBlock","_renderSlot","_createElementVNode","_toDisplayString","_withDirectives","_vShow"],"mappings":";;;;;;;;;;AACE,EAAA,OAAAA,eAAA,EAAAC,sBAAA;AAAA,IAkCM,KAAA;AAAA,IAAA;AAAA,MAjCJ,GAAA,EAAI,KAAA;AAAA,MACH,OAAKC,kBAAA,CAAA;AAAA,QAAU,IAAA,IAAG,CAAA,EAAC;AAAA,QAAU,IAAA,CAAA,GAAG,EAAA,CAAE,UAAA,EAAA,CAAA,CAAe,IAAA,CAAA,UAAU,YAAY,CAAA;AAAA,QAAS,KAAA,EAAA,CAAG,EAAA,CAAE,kBAAA,CAAoB,IAAA,CAAA,UAAU,SAAS,CAAA;AAAA,QAAS,KAAA,EAAA,CAAG,EAAA,CAAE,cAAe,IAAA,CAAA,SAAA,CAAU,aAAQ,OAAA,CAAA;AAAA,QAAA,EAAA,CAAwB,IAAA,CAAA,EAAA,CAAG,EAAC,mBAAA,CAAA,GAAwB,IAAA,CAAA,gBAAA;AAAgB,OAAA,CAAA;AAAA,MAOhP,IAAA,EAAK;AAAA,KAAA;AAAA;OAELF,aAAA,CAAA,IAAA,CAAA,EAAAC,sBAAA;AAAA,QAUEE,YAAA;AAAA,QAAA,IAAA;AAAA,QAAAC,cAAA,CATgB,IAAA,CAAA,IAAA,CAAK,UAAA,EAAU,CAAxB,KAAA,KAAK;kCADdC,eAAA,CAUE,uBAAA,EAAA;AAAA,YARC,GAAA,EAAK,IAAA,YAAW,KAAK,CAAA;AAAA,YACrB,IAAA,EAAM,KAAA;AAAA,YACN,OAAO,IAAA,CAAA,KAAA;AAAA,YACP,WAAW,IAAA,CAAA,SAAA;AAAA,YACX,uBAAqB,IAAA,CAAA,iBAAA;AAAA,YACrB,iBAAe,IAAA,CAAA,YAAA;AAAA,YACf,kBAAgB,IAAA,CAAA,aAAA;AAAA,YAChB,cAAa,IAAA,CAAA;AAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,cAAA,CAAA,CAAA;AAAA;;;;MAEL,IAAA,CAAA,OAAA,IAAAL,aAAA,EAAA,EAAXC,sBAAA;AAAA,QAMM,KAAA;AAAA,QAAA;AAAA,UAAA,GAAA,EAAA,CAAA;AAAA,UANe,OAAKC,kBAAA,CAAE,IAAA,IAAG,CAAA,CAAC,aAAA,CAAA;AAAA,SAAA;AAAA;UAC9BI,eAIO,IAAA,sBAJP,MAAA;;AAIO,YAAA,OAAA;AAAA,cAHLC,sBAAA;AAAA,gBAEO,MAAA;AAAA,gBAAA;AAAA,kBAFA,OAAKL,kBAAA,CAAE,IAAA,CAAA,EAAA,CAAG,CAAA,CAAC,YAAA,CAAA;AAAA,iBAAA;AAAA,gBACbM,qBAAA,EAAA,GAAA,IAAA,CAAA,SAAA,KAAA,YAAa,IAAA,CAAA,CAAA,CAAC,mBAAA,CAAA,CAAA;AAAA,gBAAA;AAAA;AAAA;AAAA,aAAA;AAAA,UAAA,CAAA;AAAA;;;;MAIvBC,kBAAA,CAAAF,sBAAA;AAAA,QAIE,KAAA;AAAA,QAAA;AAAA,UAFA,GAAA,EAAI,gBAAA;AAAA,UACH,OAAKL,kBAAA,CAAE,IAAA,CAAA,EAAA,CAAG,CAAA,CAAC,gBAAA,CAAA;AAAA,SAAA;AAAA;;;;QAFJ,CAAAQ,SAAA,EAAA,IAAA,CAAA,SAAA,CAAU,iBAAiB;AAAA,OAAA;AAAA;;;;;;;;;"}
@@ -108,7 +108,7 @@ var _sfc_main = vue.defineComponent({
108
108
  store.value.filter(value);
109
109
  };
110
110
  const getNodeKey = (node) => {
111
- return util.getNodeKey(props.nodeKey, node.data);
111
+ return props.nodeKey ? util.getNodeKey(props.nodeKey, node.data) : node.id;
112
112
  };
113
113
  const requireNodeKey = (methodName) => {
114
114
  if (!props.nodeKey) {
@@ -1 +1 @@
1
- {"version":3,"file":"tree.vue2.js","sources":["../../../../../../packages/components/tree/src/tree.vue"],"sourcesContent":["<template>\n <div\n ref=\"el$\"\n :class=\"[\n ns.b(),\n ns.is('dragging', !!dragState.draggingNode),\n ns.is('drop-not-allow', !dragState.allowDrop),\n ns.is('drop-inner', dragState.dropType === 'inner'),\n { [ns.m('highlight-current')]: highlightCurrent },\n ]\"\n role=\"tree\"\n >\n <el-tree-node\n v-for=\"child in root.childNodes\"\n :key=\"getNodeKey(child)\"\n :node=\"child\"\n :props=\"props\"\n :accordion=\"accordion\"\n :render-after-expand=\"renderAfterExpand\"\n :show-checkbox=\"showCheckbox\"\n :render-content=\"renderContent\"\n @node-expand=\"handleNodeExpand\"\n />\n <div v-if=\"isEmpty\" :class=\"ns.e('empty-block')\">\n <slot name=\"empty\">\n <span :class=\"ns.e('empty-text')\">\n {{ emptyText ?? t('el.tree.emptyText') }}\n </span>\n </slot>\n </div>\n <div\n v-show=\"dragState.showDropIndicator\"\n ref=\"dropIndicator$\"\n :class=\"ns.e('drop-indicator')\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n getCurrentInstance,\n provide,\n ref,\n watch,\n} from 'vue'\nimport { isEqual } from 'lodash-unified'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { formItemContextKey } from '@element-plus/components/form'\nimport TreeStore from './model/tree-store'\nimport { getNodeKey as getNodeKeyUtil, handleCurrentChange } from './model/util'\nimport ElTreeNode from './tree-node.vue'\nimport { useNodeExpandEventBroadcast } from './model/useNodeExpandEventBroadcast'\nimport { useDragNodeHandler } from './model/useDragNode'\nimport { useKeydown } from './model/useKeydown'\nimport { ROOT_TREE_INJECTION_KEY } from './tokens'\nimport { treeEmits, treeProps } from './tree'\n\nimport type Node from './model/node'\nimport type { ComponentInternalInstance } from 'vue'\nimport type { Nullable } from '@element-plus/utils'\nimport type { FilterValue, TreeData, TreeKey, TreeNodeData } from './tree.type'\n\nexport default defineComponent({\n name: 'ElTree',\n components: { ElTreeNode },\n props: treeProps,\n emits: treeEmits,\n setup(props, ctx) {\n const { t } = useLocale()\n const ns = useNamespace('tree')\n\n const store = ref<TreeStore>(\n new TreeStore({\n key: props.nodeKey,\n data: props.data,\n lazy: props.lazy,\n props: props.props,\n load: props.load,\n currentNodeKey: props.currentNodeKey,\n checkStrictly: props.checkStrictly,\n checkDescendants: props.checkDescendants,\n defaultCheckedKeys: props.defaultCheckedKeys,\n defaultExpandedKeys: props.defaultExpandedKeys,\n autoExpandParent: props.autoExpandParent,\n defaultExpandAll: props.defaultExpandAll,\n filterNodeMethod: props.filterNodeMethod,\n })\n )\n\n store.value.initialize()\n\n const root = ref<Node>(store.value.root)\n const currentNode = ref<Node | null>(null)\n const el$ = ref<Nullable<HTMLElement>>(null)\n const dropIndicator$ = ref<Nullable<HTMLElement>>(null)\n\n const { broadcastExpanded } = useNodeExpandEventBroadcast(props)\n\n const { dragState } = useDragNodeHandler({\n props,\n ctx,\n el$,\n dropIndicator$,\n store,\n })\n\n useKeydown({ el$ }, store)\n\n const instance = getCurrentInstance()\n\n const isSelectTree = computed(() => {\n let parent = instance?.parent\n while (parent) {\n if (parent.type.name === 'ElTreeSelect') {\n return true\n }\n parent = parent.parent\n }\n return false\n })\n\n const isEmpty = computed(() => {\n const { childNodes } = root.value\n return (\n (!childNodes ||\n childNodes.length === 0 ||\n childNodes.every(({ visible }) => !visible)) &&\n !isSelectTree.value\n )\n })\n\n watch(\n () => props.currentNodeKey,\n (newVal) => {\n store.value.setCurrentNodeKey(newVal ?? null)\n }\n )\n\n watch(\n () => props.defaultCheckedKeys,\n (newVal, oldVal) => {\n if (isEqual(newVal, oldVal)) return\n\n store.value.setDefaultCheckedKey(newVal ?? [])\n }\n )\n\n watch(\n () => props.defaultExpandedKeys,\n (newVal) => {\n store.value.setDefaultExpandedKeys(newVal ?? [])\n }\n )\n\n watch(\n () => props.data,\n (newVal) => {\n store.value.setData(newVal)\n },\n { deep: true }\n )\n\n watch(\n () => props.checkStrictly,\n (newVal) => {\n store.value.checkStrictly = newVal\n }\n )\n\n const filter = (value: FilterValue) => {\n if (!props.filterNodeMethod)\n throw new Error('[Tree] filterNodeMethod is required when filter')\n store.value.filter(value)\n }\n\n const getNodeKey = (node: Node) => {\n return getNodeKeyUtil(props.nodeKey, node.data)\n }\n\n const requireNodeKey = (methodName: string) => {\n if (!props.nodeKey) {\n throw new Error(`[Tree] nodeKey is required in ${methodName}`)\n }\n }\n\n const getNodePath = (data: TreeKey | TreeNodeData) => {\n requireNodeKey('getNodePath')\n\n const node = store.value.getNode(data)\n if (!node) return []\n const path = [node.data]\n let parent = node.parent\n while (parent && parent !== root.value) {\n path.push(parent.data)\n parent = parent.parent\n }\n return path.reverse()\n }\n\n const getCheckedNodes = (\n leafOnly?: boolean,\n includeHalfChecked?: boolean\n ): TreeNodeData[] => {\n return store.value.getCheckedNodes(leafOnly, includeHalfChecked)\n }\n\n const getCheckedKeys = (leafOnly?: boolean): TreeKey[] => {\n return store.value.getCheckedKeys(leafOnly)\n }\n\n const getCurrentNode = () => {\n const currentNode = store.value.getCurrentNode()\n return currentNode ? currentNode.data : null\n }\n\n const getCurrentKey = (): TreeKey | null => {\n requireNodeKey('getCurrentKey')\n\n const currentNode = getCurrentNode()\n return currentNode ? currentNode[props.nodeKey!] : null\n }\n\n const setCheckedNodes = (nodes: Node[], leafOnly?: boolean) => {\n requireNodeKey('setCheckedNodes')\n\n store.value.setCheckedNodes(nodes, leafOnly)\n }\n\n const setCheckedKeys = (keys: TreeKey[], leafOnly?: boolean) => {\n requireNodeKey('setCheckedKeys')\n\n store.value.setCheckedKeys(keys, leafOnly)\n }\n\n const setChecked = (\n data: TreeKey | TreeNodeData,\n checked: boolean,\n deep: boolean\n ) => {\n store.value.setChecked(data, checked, deep)\n }\n\n const getHalfCheckedNodes = (): TreeNodeData[] => {\n return store.value.getHalfCheckedNodes()\n }\n\n const getHalfCheckedKeys = (): TreeKey[] => {\n return store.value.getHalfCheckedKeys()\n }\n\n const setCurrentNode = (node: Node, shouldAutoExpandParent = true) => {\n requireNodeKey('setCurrentNode')\n\n handleCurrentChange(store, ctx.emit, () => {\n broadcastExpanded(node)\n store.value.setUserCurrentNode(node, shouldAutoExpandParent)\n })\n }\n\n const setCurrentKey = (\n key: TreeKey | null = null,\n shouldAutoExpandParent = true\n ) => {\n requireNodeKey('setCurrentKey')\n\n handleCurrentChange(store, ctx.emit, () => {\n broadcastExpanded()\n store.value.setCurrentNodeKey(key, shouldAutoExpandParent)\n })\n }\n\n const getNode = (data: TreeKey | TreeNodeData): Node => {\n return store.value.getNode(data)\n }\n\n const remove = (data: TreeNodeData | Node) => {\n store.value.remove(data)\n }\n\n const append = (\n data: TreeNodeData,\n parentNode: TreeNodeData | TreeKey | Node\n ) => {\n store.value.append(data, parentNode)\n }\n\n const insertBefore = (\n data: TreeNodeData,\n refNode: TreeKey | TreeNodeData | Node\n ) => {\n store.value.insertBefore(data, refNode)\n }\n\n const insertAfter = (\n data: TreeNodeData,\n refNode: TreeKey | TreeNodeData | Node\n ) => {\n store.value.insertAfter(data, refNode)\n }\n\n const handleNodeExpand = (\n nodeData: TreeNodeData,\n node: Node,\n instance: ComponentInternalInstance\n ) => {\n broadcastExpanded(node)\n ctx.emit('node-expand', nodeData, node, instance)\n }\n\n const updateKeyChildren = (key: TreeKey, data: TreeData) => {\n requireNodeKey('updateKeyChildren')\n\n store.value.updateChildren(key, data)\n }\n\n provide(ROOT_TREE_INJECTION_KEY, {\n ctx,\n props,\n store,\n root,\n currentNode,\n instance,\n })\n\n provide(formItemContextKey, undefined)\n\n return {\n ns,\n // ref\n store,\n root,\n currentNode,\n dragState,\n el$,\n dropIndicator$,\n\n // computed\n isEmpty,\n\n // methods\n filter,\n getNodeKey,\n getNodePath,\n getCheckedNodes,\n getCheckedKeys,\n getCurrentNode,\n getCurrentKey,\n setCheckedNodes,\n setCheckedKeys,\n setChecked,\n getHalfCheckedNodes,\n getHalfCheckedKeys,\n setCurrentNode,\n setCurrentKey,\n t,\n getNode,\n remove,\n append,\n insertBefore,\n insertAfter,\n handleNodeExpand,\n updateKeyChildren,\n }\n },\n})\n</script>\n"],"names":["defineComponent","ElTreeNode","treeProps","treeEmits","useLocale","useNamespace","ref","TreeStore","useNodeExpandEventBroadcast","useDragNodeHandler","useKeydown","getCurrentInstance","computed","watch","isEqual","getNodeKeyUtil","currentNode","handleCurrentChange","instance","provide","ROOT_TREE_INJECTION_KEY","formItemContextKey"],"mappings":"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"}
1
+ {"version":3,"file":"tree.vue2.js","sources":["../../../../../../packages/components/tree/src/tree.vue"],"sourcesContent":["<template>\n <div\n ref=\"el$\"\n :class=\"[\n ns.b(),\n ns.is('dragging', !!dragState.draggingNode),\n ns.is('drop-not-allow', !dragState.allowDrop),\n ns.is('drop-inner', dragState.dropType === 'inner'),\n { [ns.m('highlight-current')]: highlightCurrent },\n ]\"\n role=\"tree\"\n >\n <el-tree-node\n v-for=\"child in root.childNodes\"\n :key=\"getNodeKey(child)\"\n :node=\"child\"\n :props=\"props\"\n :accordion=\"accordion\"\n :render-after-expand=\"renderAfterExpand\"\n :show-checkbox=\"showCheckbox\"\n :render-content=\"renderContent\"\n @node-expand=\"handleNodeExpand\"\n />\n <div v-if=\"isEmpty\" :class=\"ns.e('empty-block')\">\n <slot name=\"empty\">\n <span :class=\"ns.e('empty-text')\">\n {{ emptyText ?? t('el.tree.emptyText') }}\n </span>\n </slot>\n </div>\n <div\n v-show=\"dragState.showDropIndicator\"\n ref=\"dropIndicator$\"\n :class=\"ns.e('drop-indicator')\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n getCurrentInstance,\n provide,\n ref,\n watch,\n} from 'vue'\nimport { isEqual } from 'lodash-unified'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { formItemContextKey } from '@element-plus/components/form'\nimport TreeStore from './model/tree-store'\nimport { getNodeKey as getNodeKeyUtil, handleCurrentChange } from './model/util'\nimport ElTreeNode from './tree-node.vue'\nimport { useNodeExpandEventBroadcast } from './model/useNodeExpandEventBroadcast'\nimport { useDragNodeHandler } from './model/useDragNode'\nimport { useKeydown } from './model/useKeydown'\nimport { ROOT_TREE_INJECTION_KEY } from './tokens'\nimport { treeEmits, treeProps } from './tree'\n\nimport type Node from './model/node'\nimport type { ComponentInternalInstance } from 'vue'\nimport type { Nullable } from '@element-plus/utils'\nimport type { FilterValue, TreeData, TreeKey, TreeNodeData } from './tree.type'\n\nexport default defineComponent({\n name: 'ElTree',\n components: { ElTreeNode },\n props: treeProps,\n emits: treeEmits,\n setup(props, ctx) {\n const { t } = useLocale()\n const ns = useNamespace('tree')\n\n const store = ref<TreeStore>(\n new TreeStore({\n key: props.nodeKey,\n data: props.data,\n lazy: props.lazy,\n props: props.props,\n load: props.load,\n currentNodeKey: props.currentNodeKey,\n checkStrictly: props.checkStrictly,\n checkDescendants: props.checkDescendants,\n defaultCheckedKeys: props.defaultCheckedKeys,\n defaultExpandedKeys: props.defaultExpandedKeys,\n autoExpandParent: props.autoExpandParent,\n defaultExpandAll: props.defaultExpandAll,\n filterNodeMethod: props.filterNodeMethod,\n })\n )\n\n store.value.initialize()\n\n const root = ref<Node>(store.value.root)\n const currentNode = ref<Node | null>(null)\n const el$ = ref<Nullable<HTMLElement>>(null)\n const dropIndicator$ = ref<Nullable<HTMLElement>>(null)\n\n const { broadcastExpanded } = useNodeExpandEventBroadcast(props)\n\n const { dragState } = useDragNodeHandler({\n props,\n ctx,\n el$,\n dropIndicator$,\n store,\n })\n\n useKeydown({ el$ }, store)\n\n const instance = getCurrentInstance()\n\n const isSelectTree = computed(() => {\n let parent = instance?.parent\n while (parent) {\n if (parent.type.name === 'ElTreeSelect') {\n return true\n }\n parent = parent.parent\n }\n return false\n })\n\n const isEmpty = computed(() => {\n const { childNodes } = root.value\n return (\n (!childNodes ||\n childNodes.length === 0 ||\n childNodes.every(({ visible }) => !visible)) &&\n !isSelectTree.value\n )\n })\n\n watch(\n () => props.currentNodeKey,\n (newVal) => {\n store.value.setCurrentNodeKey(newVal ?? null)\n }\n )\n\n watch(\n () => props.defaultCheckedKeys,\n (newVal, oldVal) => {\n if (isEqual(newVal, oldVal)) return\n\n store.value.setDefaultCheckedKey(newVal ?? [])\n }\n )\n\n watch(\n () => props.defaultExpandedKeys,\n (newVal) => {\n store.value.setDefaultExpandedKeys(newVal ?? [])\n }\n )\n\n watch(\n () => props.data,\n (newVal) => {\n store.value.setData(newVal)\n },\n { deep: true }\n )\n\n watch(\n () => props.checkStrictly,\n (newVal) => {\n store.value.checkStrictly = newVal\n }\n )\n\n const filter = (value: FilterValue) => {\n if (!props.filterNodeMethod)\n throw new Error('[Tree] filterNodeMethod is required when filter')\n store.value.filter(value)\n }\n\n const getNodeKey = (node: Node) => {\n return props.nodeKey ? getNodeKeyUtil(props.nodeKey, node.data) : node.id\n }\n\n const requireNodeKey = (methodName: string) => {\n if (!props.nodeKey) {\n throw new Error(`[Tree] nodeKey is required in ${methodName}`)\n }\n }\n\n const getNodePath = (data: TreeKey | TreeNodeData) => {\n requireNodeKey('getNodePath')\n\n const node = store.value.getNode(data)\n if (!node) return []\n const path = [node.data]\n let parent = node.parent\n while (parent && parent !== root.value) {\n path.push(parent.data)\n parent = parent.parent\n }\n return path.reverse()\n }\n\n const getCheckedNodes = (\n leafOnly?: boolean,\n includeHalfChecked?: boolean\n ): TreeNodeData[] => {\n return store.value.getCheckedNodes(leafOnly, includeHalfChecked)\n }\n\n const getCheckedKeys = (leafOnly?: boolean): TreeKey[] => {\n return store.value.getCheckedKeys(leafOnly)\n }\n\n const getCurrentNode = () => {\n const currentNode = store.value.getCurrentNode()\n return currentNode ? currentNode.data : null\n }\n\n const getCurrentKey = (): TreeKey | null => {\n requireNodeKey('getCurrentKey')\n\n const currentNode = getCurrentNode()\n return currentNode ? currentNode[props.nodeKey!] : null\n }\n\n const setCheckedNodes = (nodes: Node[], leafOnly?: boolean) => {\n requireNodeKey('setCheckedNodes')\n\n store.value.setCheckedNodes(nodes, leafOnly)\n }\n\n const setCheckedKeys = (keys: TreeKey[], leafOnly?: boolean) => {\n requireNodeKey('setCheckedKeys')\n\n store.value.setCheckedKeys(keys, leafOnly)\n }\n\n const setChecked = (\n data: TreeKey | TreeNodeData,\n checked: boolean,\n deep: boolean\n ) => {\n store.value.setChecked(data, checked, deep)\n }\n\n const getHalfCheckedNodes = (): TreeNodeData[] => {\n return store.value.getHalfCheckedNodes()\n }\n\n const getHalfCheckedKeys = (): TreeKey[] => {\n return store.value.getHalfCheckedKeys()\n }\n\n const setCurrentNode = (node: Node, shouldAutoExpandParent = true) => {\n requireNodeKey('setCurrentNode')\n\n handleCurrentChange(store, ctx.emit, () => {\n broadcastExpanded(node)\n store.value.setUserCurrentNode(node, shouldAutoExpandParent)\n })\n }\n\n const setCurrentKey = (\n key: TreeKey | null = null,\n shouldAutoExpandParent = true\n ) => {\n requireNodeKey('setCurrentKey')\n\n handleCurrentChange(store, ctx.emit, () => {\n broadcastExpanded()\n store.value.setCurrentNodeKey(key, shouldAutoExpandParent)\n })\n }\n\n const getNode = (data: TreeKey | TreeNodeData): Node => {\n return store.value.getNode(data)\n }\n\n const remove = (data: TreeNodeData | Node) => {\n store.value.remove(data)\n }\n\n const append = (\n data: TreeNodeData,\n parentNode: TreeNodeData | TreeKey | Node\n ) => {\n store.value.append(data, parentNode)\n }\n\n const insertBefore = (\n data: TreeNodeData,\n refNode: TreeKey | TreeNodeData | Node\n ) => {\n store.value.insertBefore(data, refNode)\n }\n\n const insertAfter = (\n data: TreeNodeData,\n refNode: TreeKey | TreeNodeData | Node\n ) => {\n store.value.insertAfter(data, refNode)\n }\n\n const handleNodeExpand = (\n nodeData: TreeNodeData,\n node: Node,\n instance: ComponentInternalInstance\n ) => {\n broadcastExpanded(node)\n ctx.emit('node-expand', nodeData, node, instance)\n }\n\n const updateKeyChildren = (key: TreeKey, data: TreeData) => {\n requireNodeKey('updateKeyChildren')\n\n store.value.updateChildren(key, data)\n }\n\n provide(ROOT_TREE_INJECTION_KEY, {\n ctx,\n props,\n store,\n root,\n currentNode,\n instance,\n })\n\n provide(formItemContextKey, undefined)\n\n return {\n ns,\n // ref\n store,\n root,\n currentNode,\n dragState,\n el$,\n dropIndicator$,\n\n // computed\n isEmpty,\n\n // methods\n filter,\n getNodeKey,\n getNodePath,\n getCheckedNodes,\n getCheckedKeys,\n getCurrentNode,\n getCurrentKey,\n setCheckedNodes,\n setCheckedKeys,\n setChecked,\n getHalfCheckedNodes,\n getHalfCheckedKeys,\n setCurrentNode,\n setCurrentKey,\n t,\n getNode,\n remove,\n append,\n insertBefore,\n insertAfter,\n handleNodeExpand,\n updateKeyChildren,\n }\n },\n})\n</script>\n"],"names":["defineComponent","ElTreeNode","treeProps","treeEmits","useLocale","useNamespace","ref","TreeStore","useNodeExpandEventBroadcast","useDragNodeHandler","useKeydown","getCurrentInstance","computed","watch","isEqual","getNodeKeyUtil","currentNode","handleCurrentChange","instance","provide","ROOT_TREE_INJECTION_KEY","formItemContextKey"],"mappings":"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"}
@@ -57,8 +57,15 @@ const ajaxUpload = (option) => {
57
57
  const formData = new FormData();
58
58
  if (option.data) {
59
59
  for (const [key, value] of Object.entries(option.data)) {
60
- if (shared.isArray(value) && value.length) formData.append(key, ...value);
61
- else formData.append(key, value);
60
+ if (shared.isArray(value)) {
61
+ if (value.length === 2 && value[0] instanceof Blob && shared.isString(value[1])) {
62
+ formData.append(key, value[0], value[1]);
63
+ } else {
64
+ value.forEach((item) => {
65
+ formData.append(key, item);
66
+ });
67
+ }
68
+ } else formData.append(key, value);
62
69
  }
63
70
  }
64
71
  formData.append(option.filename, option.file, option.file.name);
@@ -1 +1 @@
1
- {"version":3,"file":"ajax.js","sources":["../../../../../../packages/components/upload/src/ajax.ts"],"sourcesContent":["import { isNil } from 'lodash-unified'\nimport { isArray, throwError } from '@element-plus/utils'\n\nimport type {\n UploadProgressEvent,\n UploadRequestHandler,\n UploadRequestOptions,\n} from './upload'\n\nconst SCOPE = 'ElUpload'\n\nexport class UploadAjaxError extends Error {\n name = 'UploadAjaxError'\n status: number\n method: string\n url: string\n\n constructor(message: string, status: number, method: string, url: string) {\n super(message)\n this.status = status\n this.method = method\n this.url = url\n }\n}\n\nfunction getError(\n action: string,\n option: UploadRequestOptions,\n xhr: XMLHttpRequest\n) {\n let msg: string\n if (xhr.response) {\n msg = `${xhr.response.error || xhr.response}`\n } else if (xhr.responseText) {\n msg = `${xhr.responseText}`\n } else {\n msg = `fail to ${option.method} ${action} ${xhr.status}`\n }\n\n return new UploadAjaxError(msg, xhr.status, option.method, action)\n}\n\nfunction getBody(xhr: XMLHttpRequest): XMLHttpRequestResponseType {\n const text = xhr.responseText || xhr.response\n if (!text) {\n return text\n }\n\n try {\n return JSON.parse(text)\n } catch {\n return text\n }\n}\n\nexport const ajaxUpload: UploadRequestHandler = (option) => {\n if (typeof XMLHttpRequest === 'undefined')\n throwError(SCOPE, 'XMLHttpRequest is undefined')\n\n const xhr = new XMLHttpRequest()\n const action = option.action\n\n if (xhr.upload) {\n xhr.upload.addEventListener('progress', (evt) => {\n const progressEvt = evt as UploadProgressEvent\n progressEvt.percent = evt.total > 0 ? (evt.loaded / evt.total) * 100 : 0\n option.onProgress(progressEvt)\n })\n }\n\n const formData = new FormData()\n if (option.data) {\n for (const [key, value] of Object.entries(option.data)) {\n if (isArray(value) && value.length) formData.append(key, ...value)\n else formData.append(key, value)\n }\n }\n formData.append(option.filename, option.file, option.file.name)\n\n xhr.addEventListener('error', () => {\n option.onError(getError(action, option, xhr))\n })\n\n xhr.addEventListener('load', () => {\n if (xhr.status < 200 || xhr.status >= 300) {\n return option.onError(getError(action, option, xhr))\n }\n option.onSuccess(getBody(xhr))\n })\n\n xhr.open(option.method, action, true)\n\n if (option.withCredentials && 'withCredentials' in xhr) {\n xhr.withCredentials = true\n }\n\n const headers = option.headers || {}\n if (headers instanceof Headers) {\n headers.forEach((value, key) => xhr.setRequestHeader(key, value))\n } else {\n for (const [key, value] of Object.entries(headers)) {\n if (isNil(value)) continue\n xhr.setRequestHeader(key, String(value))\n }\n }\n\n xhr.send(formData)\n return xhr\n}\n"],"names":["throwError","isArray","isNil"],"mappings":"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"}
1
+ {"version":3,"file":"ajax.js","sources":["../../../../../../packages/components/upload/src/ajax.ts"],"sourcesContent":["import { isNil } from 'lodash-unified'\nimport { isArray, isString, throwError } from '@element-plus/utils'\n\nimport type {\n UploadProgressEvent,\n UploadRequestHandler,\n UploadRequestOptions,\n} from './upload'\n\nconst SCOPE = 'ElUpload'\n\nexport class UploadAjaxError extends Error {\n name = 'UploadAjaxError'\n status: number\n method: string\n url: string\n\n constructor(message: string, status: number, method: string, url: string) {\n super(message)\n this.status = status\n this.method = method\n this.url = url\n }\n}\n\nfunction getError(\n action: string,\n option: UploadRequestOptions,\n xhr: XMLHttpRequest\n) {\n let msg: string\n if (xhr.response) {\n msg = `${xhr.response.error || xhr.response}`\n } else if (xhr.responseText) {\n msg = `${xhr.responseText}`\n } else {\n msg = `fail to ${option.method} ${action} ${xhr.status}`\n }\n\n return new UploadAjaxError(msg, xhr.status, option.method, action)\n}\n\nfunction getBody(xhr: XMLHttpRequest): XMLHttpRequestResponseType {\n const text = xhr.responseText || xhr.response\n if (!text) {\n return text\n }\n\n try {\n return JSON.parse(text)\n } catch {\n return text\n }\n}\n\nexport const ajaxUpload: UploadRequestHandler = (option) => {\n if (typeof XMLHttpRequest === 'undefined')\n throwError(SCOPE, 'XMLHttpRequest is undefined')\n\n const xhr = new XMLHttpRequest()\n const action = option.action\n\n if (xhr.upload) {\n xhr.upload.addEventListener('progress', (evt) => {\n const progressEvt = evt as UploadProgressEvent\n progressEvt.percent = evt.total > 0 ? (evt.loaded / evt.total) * 100 : 0\n option.onProgress(progressEvt)\n })\n }\n\n const formData = new FormData()\n if (option.data) {\n for (const [key, value] of Object.entries(option.data)) {\n if (isArray(value)) {\n if (\n value.length === 2 &&\n value[0] instanceof Blob &&\n isString(value[1])\n ) {\n formData.append(key, value[0], value[1])\n } else {\n value.forEach((item) => {\n formData.append(key, item)\n })\n }\n } else formData.append(key, value)\n }\n }\n formData.append(option.filename, option.file, option.file.name)\n\n xhr.addEventListener('error', () => {\n option.onError(getError(action, option, xhr))\n })\n\n xhr.addEventListener('load', () => {\n if (xhr.status < 200 || xhr.status >= 300) {\n return option.onError(getError(action, option, xhr))\n }\n option.onSuccess(getBody(xhr))\n })\n\n xhr.open(option.method, action, true)\n\n if (option.withCredentials && 'withCredentials' in xhr) {\n xhr.withCredentials = true\n }\n\n const headers = option.headers || {}\n if (headers instanceof Headers) {\n headers.forEach((value, key) => xhr.setRequestHeader(key, value))\n } else {\n for (const [key, value] of Object.entries(headers)) {\n if (isNil(value)) continue\n xhr.setRequestHeader(key, String(value))\n }\n }\n\n xhr.send(formData)\n return xhr\n}\n"],"names":["throwError","isArray","isString","isNil"],"mappings":"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"}
@@ -14,7 +14,7 @@ export interface UploadProgressEvent extends ProgressEvent {
14
14
  export interface UploadRequestOptions {
15
15
  action: string;
16
16
  method: string;
17
- data: Record<string, string | Blob | [Blob, string]>;
17
+ data: Record<string, string | Blob | [string | Blob, string] | string[]>;
18
18
  filename: string;
19
19
  file: UploadRawFile;
20
20
  headers: Headers | Record<string, string | number | null | undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"upload.js","sources":["../../../../../../packages/components/upload/src/upload.ts"],"sourcesContent":["import { NOOP, buildProps, definePropType, mutable } from '@element-plus/utils'\nimport { ajaxUpload } from './ajax'\n\nimport type { Awaitable, Mutable } from '@element-plus/utils'\nimport type { UploadAjaxError } from './ajax'\nimport type { ExtractPublicPropTypes } from 'vue'\nimport type Upload from './upload.vue'\n\n/**\n * @deprecated Removed after 3.0.0, Use `UploadProps` instead.\n */\nexport const uploadListTypes = ['text', 'picture', 'picture-card'] as const\n\nlet fileId = 1\nexport const genFileId = () => Date.now() + fileId++\n\nexport type UploadStatus = 'ready' | 'uploading' | 'success' | 'fail'\nexport interface UploadProgressEvent extends ProgressEvent {\n percent: number\n}\n\nexport interface UploadRequestOptions {\n action: string\n method: string\n data: Record<string, string | Blob | [Blob, string]>\n filename: string\n file: UploadRawFile\n headers: Headers | Record<string, string | number | null | undefined>\n onError: (evt: UploadAjaxError) => void\n onProgress: (evt: UploadProgressEvent) => void\n onSuccess: (response: any) => void\n withCredentials: boolean\n}\nexport interface UploadFile {\n name: string\n percentage?: number\n status: UploadStatus\n size?: number\n response?: unknown\n uid: number\n url?: string\n raw?: UploadRawFile\n}\nexport type UploadUserFile = Omit<UploadFile, 'status' | 'uid'> &\n Partial<Pick<UploadFile, 'status' | 'uid'>>\n\nexport type UploadFiles = UploadFile[]\nexport interface UploadRawFile extends File {\n uid: number\n isDirectory?: boolean\n}\nexport type UploadRequestHandler = (\n options: UploadRequestOptions\n) => XMLHttpRequest | Promise<unknown>\nexport interface UploadHooks {\n beforeUpload: (\n rawFile: UploadRawFile\n ) => Awaitable<void | undefined | null | boolean | File | Blob>\n beforeRemove: (\n uploadFile: UploadFile,\n uploadFiles: UploadFiles\n ) => Awaitable<boolean>\n onRemove: (uploadFile: UploadFile, uploadFiles: UploadFiles) => void\n onChange: (uploadFile: UploadFile, uploadFiles: UploadFiles) => void\n onPreview: (uploadFile: UploadFile) => void\n onSuccess: (\n response: any,\n uploadFile: UploadFile,\n uploadFiles: UploadFiles\n ) => void\n onProgress: (\n evt: UploadProgressEvent,\n uploadFile: UploadFile,\n uploadFiles: UploadFiles\n ) => void\n onError: (\n error: Error,\n uploadFile: UploadFile,\n uploadFiles: UploadFiles\n ) => void\n onExceed: (files: File[], uploadFiles: UploadUserFile[]) => void\n}\n\nexport type UploadData = Mutable<Record<string, any>>\n\nexport type ListType = 'text' | 'picture' | 'picture-card'\nexport type Crossorigin = 'anonymous' | 'use-credentials' | ''\n\nexport interface UploadBaseProps {\n /**\n * @description request URL\n */\n action?: string\n /**\n * @description request headers\n */\n headers?: Headers | Record<string, any>\n /**\n * @description set upload request method\n */\n method?: string\n /**\n * @description additions options of request\n */\n data?:\n | Awaitable<UploadData>\n | ((rawFile: UploadRawFile) => Awaitable<UploadData>)\n /**\n * @description whether uploading multiple files is permitted\n */\n multiple?: boolean\n /**\n * @description key name for uploaded file\n */\n name?: string\n /**\n * @description whether to activate drag and drop mode\n */\n drag?: boolean\n /**\n * @description whether cookies are sent\n */\n withCredentials?: boolean\n /**\n * @description whether to show the uploaded file list\n */\n showFileList?: boolean\n /**\n * @description accepted [file types](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-accept), will not work when `thumbnail-mode === true`\n */\n accept?: string\n /**\n * @description default uploaded files\n */\n fileList?: UploadUserFile[]\n /**\n * @description whether to auto upload file\n */\n autoUpload?: boolean\n /**\n * @description type of file list\n */\n listType?: ListType\n /**\n * @description override default xhr behavior, allowing you to implement your own upload-file's request\n */\n httpRequest?: UploadRequestHandler\n /**\n * @description whether to disable upload\n */\n disabled?: boolean\n /**\n * @description maximum number of uploads allowed\n */\n limit?: number\n /**\n * @description whether to support uploading directory\n */\n directory?: boolean\n}\n\nexport interface UploadProps extends UploadBaseProps {\n /**\n * @description hook function before uploading with the file to be uploaded as its parameter. If `false` is returned or a `Promise` is returned and then is rejected, uploading will be aborted\n */\n beforeUpload?: UploadHooks['beforeUpload']\n /**\n * @description hook function before removing a file with the file and file list as its parameters. If `false` is returned or a `Promise` is returned and then is rejected, removing will be aborted\n */\n beforeRemove?: UploadHooks['beforeRemove']\n /**\n * @description hook function when files are removed\n */\n onRemove?: UploadHooks['onRemove']\n /**\n * @description hook function when select file or upload file success or upload file fail\n */\n onChange?: UploadHooks['onChange']\n /**\n * @description hook function when clicking the uploaded files\n */\n onPreview?: UploadHooks['onPreview']\n /**\n * @description hook function when uploaded successfully\n */\n onSuccess?: UploadHooks['onSuccess']\n /**\n * @description hook function when some progress occurs\n */\n onProgress?: UploadHooks['onProgress']\n /**\n * @description hook function when some errors occurs\n */\n onError?: UploadHooks['onError']\n /**\n * @description hook function when limit is exceeded\n */\n onExceed?: UploadHooks['onExceed']\n /**\n * @description set HTML attribute: crossorigin.\n */\n crossorigin?: Crossorigin\n}\n\n/**\n * @deprecated Removed after 3.0.0, Use `UploadBaseProps` instead.\n */\nexport const uploadBaseProps = buildProps({\n /**\n * @description request URL\n */\n action: {\n type: String,\n default: '#',\n },\n /**\n * @description request headers\n */\n headers: {\n type: definePropType<Headers | Record<string, any>>(Object),\n },\n /**\n * @description set upload request method\n */\n method: {\n type: String,\n default: 'post',\n },\n /**\n * @description additions options of request\n */\n data: {\n type: definePropType<\n | Awaitable<UploadData>\n | ((rawFile: UploadRawFile) => Awaitable<UploadData>)\n >([Object, Function, Promise]),\n default: () => mutable({} as const),\n },\n /**\n * @description whether uploading multiple files is permitted\n */\n multiple: Boolean,\n /**\n * @description key name for uploaded file\n */\n name: {\n type: String,\n default: 'file',\n },\n /**\n * @description whether to activate drag and drop mode\n */\n drag: Boolean,\n /**\n * @description whether cookies are sent\n */\n withCredentials: Boolean,\n /**\n * @description whether to show the uploaded file list\n */\n showFileList: {\n type: Boolean,\n default: true,\n },\n /**\n * @description accepted [file types](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-accept), will not work when `thumbnail-mode === true`\n */\n accept: {\n type: String,\n default: '',\n },\n /**\n * @description default uploaded files\n */\n fileList: {\n type: definePropType<UploadUserFile[]>(Array),\n default: () => mutable([] as const),\n },\n /**\n * @description whether to auto upload file\n */\n autoUpload: {\n type: Boolean,\n default: true,\n },\n /**\n * @description type of file list\n */\n listType: {\n type: String,\n values: uploadListTypes,\n default: 'text',\n },\n /**\n * @description override default xhr behavior, allowing you to implement your own upload-file's request\n */\n httpRequest: {\n type: definePropType<UploadRequestHandler>(Function),\n default: ajaxUpload,\n },\n /**\n * @description whether to disable upload\n */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /**\n * @description maximum number of uploads allowed\n */\n limit: Number,\n /**\n * @description whether to support uploading directory\n */\n directory: Boolean,\n} as const)\n\n/**\n * @deprecated Removed after 3.0.0, Use `UploadProps` instead.\n */\nexport const uploadProps = buildProps({\n ...uploadBaseProps,\n /**\n * @description hook function before uploading with the file to be uploaded as its parameter. If `false` is returned or a `Promise` is returned and then is rejected, uploading will be aborted\n */\n beforeUpload: {\n type: definePropType<UploadHooks['beforeUpload']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function before removing a file with the file and file list as its parameters. If `false` is returned or a `Promise` is returned and then is rejected, removing will be aborted\n */\n beforeRemove: {\n type: definePropType<UploadHooks['beforeRemove']>(Function),\n },\n /**\n * @description hook function when files are removed\n */\n onRemove: {\n type: definePropType<UploadHooks['onRemove']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when select file or upload file success or upload file fail\n */\n onChange: {\n type: definePropType<UploadHooks['onChange']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when clicking the uploaded files\n */\n onPreview: {\n type: definePropType<UploadHooks['onPreview']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when uploaded successfully\n */\n onSuccess: {\n type: definePropType<UploadHooks['onSuccess']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when some progress occurs\n */\n onProgress: {\n type: definePropType<UploadHooks['onProgress']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when some errors occurs\n */\n onError: {\n type: definePropType<UploadHooks['onError']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when limit is exceeded\n */\n onExceed: {\n type: definePropType<UploadHooks['onExceed']>(Function),\n default: NOOP,\n },\n /**\n * @description set HTML attribute: crossorigin.\n */\n crossorigin: {\n type: definePropType<'anonymous' | 'use-credentials' | ''>(String),\n },\n} as const)\n\n/**\n * @deprecated Removed after 3.0.0, Use `UploadProps` instead.\n */\nexport type UploadPropsPublic = ExtractPublicPropTypes<typeof uploadProps>\n\nexport type UploadInstance = InstanceType<typeof Upload> & unknown\n\nexport const uploadBasePropsDefaults = {\n action: '#',\n method: 'post',\n data: () => mutable({}),\n name: 'file',\n showFileList: true,\n accept: '',\n fileList: () => mutable([]),\n autoUpload: true,\n listType: 'text',\n httpRequest: ajaxUpload,\n disabled: undefined,\n} as const\n\nexport const uploadPropsDefaults = {\n ...uploadBasePropsDefaults,\n beforeUpload: NOOP,\n onRemove: NOOP,\n onChange: NOOP,\n onPreview: NOOP,\n onSuccess: NOOP,\n onProgress: NOOP,\n onError: NOOP,\n onExceed: NOOP,\n} as const\n"],"names":["buildProps","definePropType","mutable","ajaxUpload","NOOP"],"mappings":"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"}
1
+ {"version":3,"file":"upload.js","sources":["../../../../../../packages/components/upload/src/upload.ts"],"sourcesContent":["import { NOOP, buildProps, definePropType, mutable } from '@element-plus/utils'\nimport { ajaxUpload } from './ajax'\n\nimport type { Awaitable, Mutable } from '@element-plus/utils'\nimport type { UploadAjaxError } from './ajax'\nimport type { ExtractPublicPropTypes } from 'vue'\nimport type Upload from './upload.vue'\n\n/**\n * @deprecated Removed after 3.0.0, Use `UploadProps` instead.\n */\nexport const uploadListTypes = ['text', 'picture', 'picture-card'] as const\n\nlet fileId = 1\nexport const genFileId = () => Date.now() + fileId++\n\nexport type UploadStatus = 'ready' | 'uploading' | 'success' | 'fail'\nexport interface UploadProgressEvent extends ProgressEvent {\n percent: number\n}\n\nexport interface UploadRequestOptions {\n action: string\n method: string\n data: Record<string, string | Blob | [string | Blob, string] | string[]>\n filename: string\n file: UploadRawFile\n headers: Headers | Record<string, string | number | null | undefined>\n onError: (evt: UploadAjaxError) => void\n onProgress: (evt: UploadProgressEvent) => void\n onSuccess: (response: any) => void\n withCredentials: boolean\n}\nexport interface UploadFile {\n name: string\n percentage?: number\n status: UploadStatus\n size?: number\n response?: unknown\n uid: number\n url?: string\n raw?: UploadRawFile\n}\nexport type UploadUserFile = Omit<UploadFile, 'status' | 'uid'> &\n Partial<Pick<UploadFile, 'status' | 'uid'>>\n\nexport type UploadFiles = UploadFile[]\nexport interface UploadRawFile extends File {\n uid: number\n isDirectory?: boolean\n}\nexport type UploadRequestHandler = (\n options: UploadRequestOptions\n) => XMLHttpRequest | Promise<unknown>\nexport interface UploadHooks {\n beforeUpload: (\n rawFile: UploadRawFile\n ) => Awaitable<void | undefined | null | boolean | File | Blob>\n beforeRemove: (\n uploadFile: UploadFile,\n uploadFiles: UploadFiles\n ) => Awaitable<boolean>\n onRemove: (uploadFile: UploadFile, uploadFiles: UploadFiles) => void\n onChange: (uploadFile: UploadFile, uploadFiles: UploadFiles) => void\n onPreview: (uploadFile: UploadFile) => void\n onSuccess: (\n response: any,\n uploadFile: UploadFile,\n uploadFiles: UploadFiles\n ) => void\n onProgress: (\n evt: UploadProgressEvent,\n uploadFile: UploadFile,\n uploadFiles: UploadFiles\n ) => void\n onError: (\n error: Error,\n uploadFile: UploadFile,\n uploadFiles: UploadFiles\n ) => void\n onExceed: (files: File[], uploadFiles: UploadUserFile[]) => void\n}\n\nexport type UploadData = Mutable<Record<string, any>>\n\nexport type ListType = 'text' | 'picture' | 'picture-card'\nexport type Crossorigin = 'anonymous' | 'use-credentials' | ''\n\nexport interface UploadBaseProps {\n /**\n * @description request URL\n */\n action?: string\n /**\n * @description request headers\n */\n headers?: Headers | Record<string, any>\n /**\n * @description set upload request method\n */\n method?: string\n /**\n * @description additions options of request\n */\n data?:\n | Awaitable<UploadData>\n | ((rawFile: UploadRawFile) => Awaitable<UploadData>)\n /**\n * @description whether uploading multiple files is permitted\n */\n multiple?: boolean\n /**\n * @description key name for uploaded file\n */\n name?: string\n /**\n * @description whether to activate drag and drop mode\n */\n drag?: boolean\n /**\n * @description whether cookies are sent\n */\n withCredentials?: boolean\n /**\n * @description whether to show the uploaded file list\n */\n showFileList?: boolean\n /**\n * @description accepted [file types](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-accept), will not work when `thumbnail-mode === true`\n */\n accept?: string\n /**\n * @description default uploaded files\n */\n fileList?: UploadUserFile[]\n /**\n * @description whether to auto upload file\n */\n autoUpload?: boolean\n /**\n * @description type of file list\n */\n listType?: ListType\n /**\n * @description override default xhr behavior, allowing you to implement your own upload-file's request\n */\n httpRequest?: UploadRequestHandler\n /**\n * @description whether to disable upload\n */\n disabled?: boolean\n /**\n * @description maximum number of uploads allowed\n */\n limit?: number\n /**\n * @description whether to support uploading directory\n */\n directory?: boolean\n}\n\nexport interface UploadProps extends UploadBaseProps {\n /**\n * @description hook function before uploading with the file to be uploaded as its parameter. If `false` is returned or a `Promise` is returned and then is rejected, uploading will be aborted\n */\n beforeUpload?: UploadHooks['beforeUpload']\n /**\n * @description hook function before removing a file with the file and file list as its parameters. If `false` is returned or a `Promise` is returned and then is rejected, removing will be aborted\n */\n beforeRemove?: UploadHooks['beforeRemove']\n /**\n * @description hook function when files are removed\n */\n onRemove?: UploadHooks['onRemove']\n /**\n * @description hook function when select file or upload file success or upload file fail\n */\n onChange?: UploadHooks['onChange']\n /**\n * @description hook function when clicking the uploaded files\n */\n onPreview?: UploadHooks['onPreview']\n /**\n * @description hook function when uploaded successfully\n */\n onSuccess?: UploadHooks['onSuccess']\n /**\n * @description hook function when some progress occurs\n */\n onProgress?: UploadHooks['onProgress']\n /**\n * @description hook function when some errors occurs\n */\n onError?: UploadHooks['onError']\n /**\n * @description hook function when limit is exceeded\n */\n onExceed?: UploadHooks['onExceed']\n /**\n * @description set HTML attribute: crossorigin.\n */\n crossorigin?: Crossorigin\n}\n\n/**\n * @deprecated Removed after 3.0.0, Use `UploadBaseProps` instead.\n */\nexport const uploadBaseProps = buildProps({\n /**\n * @description request URL\n */\n action: {\n type: String,\n default: '#',\n },\n /**\n * @description request headers\n */\n headers: {\n type: definePropType<Headers | Record<string, any>>(Object),\n },\n /**\n * @description set upload request method\n */\n method: {\n type: String,\n default: 'post',\n },\n /**\n * @description additions options of request\n */\n data: {\n type: definePropType<\n | Awaitable<UploadData>\n | ((rawFile: UploadRawFile) => Awaitable<UploadData>)\n >([Object, Function, Promise]),\n default: () => mutable({} as const),\n },\n /**\n * @description whether uploading multiple files is permitted\n */\n multiple: Boolean,\n /**\n * @description key name for uploaded file\n */\n name: {\n type: String,\n default: 'file',\n },\n /**\n * @description whether to activate drag and drop mode\n */\n drag: Boolean,\n /**\n * @description whether cookies are sent\n */\n withCredentials: Boolean,\n /**\n * @description whether to show the uploaded file list\n */\n showFileList: {\n type: Boolean,\n default: true,\n },\n /**\n * @description accepted [file types](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-accept), will not work when `thumbnail-mode === true`\n */\n accept: {\n type: String,\n default: '',\n },\n /**\n * @description default uploaded files\n */\n fileList: {\n type: definePropType<UploadUserFile[]>(Array),\n default: () => mutable([] as const),\n },\n /**\n * @description whether to auto upload file\n */\n autoUpload: {\n type: Boolean,\n default: true,\n },\n /**\n * @description type of file list\n */\n listType: {\n type: String,\n values: uploadListTypes,\n default: 'text',\n },\n /**\n * @description override default xhr behavior, allowing you to implement your own upload-file's request\n */\n httpRequest: {\n type: definePropType<UploadRequestHandler>(Function),\n default: ajaxUpload,\n },\n /**\n * @description whether to disable upload\n */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /**\n * @description maximum number of uploads allowed\n */\n limit: Number,\n /**\n * @description whether to support uploading directory\n */\n directory: Boolean,\n} as const)\n\n/**\n * @deprecated Removed after 3.0.0, Use `UploadProps` instead.\n */\nexport const uploadProps = buildProps({\n ...uploadBaseProps,\n /**\n * @description hook function before uploading with the file to be uploaded as its parameter. If `false` is returned or a `Promise` is returned and then is rejected, uploading will be aborted\n */\n beforeUpload: {\n type: definePropType<UploadHooks['beforeUpload']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function before removing a file with the file and file list as its parameters. If `false` is returned or a `Promise` is returned and then is rejected, removing will be aborted\n */\n beforeRemove: {\n type: definePropType<UploadHooks['beforeRemove']>(Function),\n },\n /**\n * @description hook function when files are removed\n */\n onRemove: {\n type: definePropType<UploadHooks['onRemove']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when select file or upload file success or upload file fail\n */\n onChange: {\n type: definePropType<UploadHooks['onChange']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when clicking the uploaded files\n */\n onPreview: {\n type: definePropType<UploadHooks['onPreview']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when uploaded successfully\n */\n onSuccess: {\n type: definePropType<UploadHooks['onSuccess']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when some progress occurs\n */\n onProgress: {\n type: definePropType<UploadHooks['onProgress']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when some errors occurs\n */\n onError: {\n type: definePropType<UploadHooks['onError']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when limit is exceeded\n */\n onExceed: {\n type: definePropType<UploadHooks['onExceed']>(Function),\n default: NOOP,\n },\n /**\n * @description set HTML attribute: crossorigin.\n */\n crossorigin: {\n type: definePropType<'anonymous' | 'use-credentials' | ''>(String),\n },\n} as const)\n\n/**\n * @deprecated Removed after 3.0.0, Use `UploadProps` instead.\n */\nexport type UploadPropsPublic = ExtractPublicPropTypes<typeof uploadProps>\n\nexport type UploadInstance = InstanceType<typeof Upload> & unknown\n\nexport const uploadBasePropsDefaults = {\n action: '#',\n method: 'post',\n data: () => mutable({}),\n name: 'file',\n showFileList: true,\n accept: '',\n fileList: () => mutable([]),\n autoUpload: true,\n listType: 'text',\n httpRequest: ajaxUpload,\n disabled: undefined,\n} as const\n\nexport const uploadPropsDefaults = {\n ...uploadBasePropsDefaults,\n beforeUpload: NOOP,\n onRemove: NOOP,\n onChange: NOOP,\n onPreview: NOOP,\n onSuccess: NOOP,\n onProgress: NOOP,\n onError: NOOP,\n onExceed: NOOP,\n} as const\n"],"names":["buildProps","definePropType","mutable","ajaxUpload","NOOP"],"mappings":"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"}
package/lib/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const version = "0.0.20260224";
1
+ export declare const version = "0.0.20260225";