@element-plus/nightly 0.0.20230419 → 0.0.20230421

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 (559) hide show
  1. package/dist/index.full.js +102 -102
  2. package/dist/index.full.min.js +12 -12
  3. package/dist/index.full.min.js.map +1 -1
  4. package/dist/index.full.min.mjs +12 -12
  5. package/dist/index.full.min.mjs.map +1 -1
  6. package/dist/index.full.mjs +102 -102
  7. package/dist/locale/af.js +1 -1
  8. package/dist/locale/af.min.js +1 -1
  9. package/dist/locale/af.min.mjs +1 -1
  10. package/dist/locale/af.mjs +1 -1
  11. package/dist/locale/ar.js +1 -1
  12. package/dist/locale/ar.min.js +1 -1
  13. package/dist/locale/ar.min.mjs +1 -1
  14. package/dist/locale/ar.mjs +1 -1
  15. package/dist/locale/az.js +1 -1
  16. package/dist/locale/az.min.js +1 -1
  17. package/dist/locale/az.min.mjs +1 -1
  18. package/dist/locale/az.mjs +1 -1
  19. package/dist/locale/bg.js +1 -1
  20. package/dist/locale/bg.min.js +1 -1
  21. package/dist/locale/bg.min.mjs +1 -1
  22. package/dist/locale/bg.mjs +1 -1
  23. package/dist/locale/bn.js +1 -1
  24. package/dist/locale/bn.min.js +1 -1
  25. package/dist/locale/bn.min.mjs +1 -1
  26. package/dist/locale/bn.mjs +1 -1
  27. package/dist/locale/ca.js +1 -1
  28. package/dist/locale/ca.min.js +1 -1
  29. package/dist/locale/ca.min.mjs +1 -1
  30. package/dist/locale/ca.mjs +1 -1
  31. package/dist/locale/ckb.js +1 -1
  32. package/dist/locale/ckb.min.js +1 -1
  33. package/dist/locale/ckb.min.mjs +1 -1
  34. package/dist/locale/ckb.mjs +1 -1
  35. package/dist/locale/cs.js +1 -1
  36. package/dist/locale/cs.min.js +1 -1
  37. package/dist/locale/cs.min.mjs +1 -1
  38. package/dist/locale/cs.mjs +1 -1
  39. package/dist/locale/da.js +1 -1
  40. package/dist/locale/da.min.js +1 -1
  41. package/dist/locale/da.min.mjs +1 -1
  42. package/dist/locale/da.mjs +1 -1
  43. package/dist/locale/de.js +1 -1
  44. package/dist/locale/de.min.js +1 -1
  45. package/dist/locale/de.min.mjs +1 -1
  46. package/dist/locale/de.mjs +1 -1
  47. package/dist/locale/el.js +1 -1
  48. package/dist/locale/el.min.js +1 -1
  49. package/dist/locale/el.min.mjs +1 -1
  50. package/dist/locale/el.mjs +1 -1
  51. package/dist/locale/en.js +1 -1
  52. package/dist/locale/en.min.js +1 -1
  53. package/dist/locale/en.min.mjs +1 -1
  54. package/dist/locale/en.mjs +1 -1
  55. package/dist/locale/eo.js +1 -1
  56. package/dist/locale/eo.min.js +1 -1
  57. package/dist/locale/eo.min.mjs +1 -1
  58. package/dist/locale/eo.mjs +1 -1
  59. package/dist/locale/es.js +1 -1
  60. package/dist/locale/es.min.js +1 -1
  61. package/dist/locale/es.min.mjs +1 -1
  62. package/dist/locale/es.mjs +1 -1
  63. package/dist/locale/et.js +1 -1
  64. package/dist/locale/et.min.js +1 -1
  65. package/dist/locale/et.min.mjs +1 -1
  66. package/dist/locale/et.mjs +1 -1
  67. package/dist/locale/eu.js +1 -1
  68. package/dist/locale/eu.min.js +1 -1
  69. package/dist/locale/eu.min.mjs +1 -1
  70. package/dist/locale/eu.mjs +1 -1
  71. package/dist/locale/fa.js +1 -1
  72. package/dist/locale/fa.min.js +1 -1
  73. package/dist/locale/fa.min.mjs +1 -1
  74. package/dist/locale/fa.mjs +1 -1
  75. package/dist/locale/fi.js +1 -1
  76. package/dist/locale/fi.min.js +1 -1
  77. package/dist/locale/fi.min.mjs +1 -1
  78. package/dist/locale/fi.mjs +1 -1
  79. package/dist/locale/fr.js +1 -1
  80. package/dist/locale/fr.min.js +1 -1
  81. package/dist/locale/fr.min.mjs +1 -1
  82. package/dist/locale/fr.mjs +1 -1
  83. package/dist/locale/he.js +1 -1
  84. package/dist/locale/he.min.js +1 -1
  85. package/dist/locale/he.min.mjs +1 -1
  86. package/dist/locale/he.mjs +1 -1
  87. package/dist/locale/hr.js +1 -1
  88. package/dist/locale/hr.min.js +1 -1
  89. package/dist/locale/hr.min.mjs +1 -1
  90. package/dist/locale/hr.mjs +1 -1
  91. package/dist/locale/hu.js +1 -1
  92. package/dist/locale/hu.min.js +1 -1
  93. package/dist/locale/hu.min.mjs +1 -1
  94. package/dist/locale/hu.mjs +1 -1
  95. package/dist/locale/hy-am.js +1 -1
  96. package/dist/locale/hy-am.min.js +1 -1
  97. package/dist/locale/hy-am.min.mjs +1 -1
  98. package/dist/locale/hy-am.mjs +1 -1
  99. package/dist/locale/id.js +1 -1
  100. package/dist/locale/id.min.js +1 -1
  101. package/dist/locale/id.min.mjs +1 -1
  102. package/dist/locale/id.mjs +1 -1
  103. package/dist/locale/it.js +1 -1
  104. package/dist/locale/it.min.js +1 -1
  105. package/dist/locale/it.min.mjs +1 -1
  106. package/dist/locale/it.mjs +1 -1
  107. package/dist/locale/ja.js +1 -1
  108. package/dist/locale/ja.min.js +1 -1
  109. package/dist/locale/ja.min.mjs +1 -1
  110. package/dist/locale/ja.mjs +1 -1
  111. package/dist/locale/kk.js +1 -1
  112. package/dist/locale/kk.min.js +1 -1
  113. package/dist/locale/kk.min.mjs +1 -1
  114. package/dist/locale/kk.mjs +1 -1
  115. package/dist/locale/km.js +1 -1
  116. package/dist/locale/km.min.js +1 -1
  117. package/dist/locale/km.min.mjs +1 -1
  118. package/dist/locale/km.mjs +1 -1
  119. package/dist/locale/ko.js +1 -1
  120. package/dist/locale/ko.min.js +1 -1
  121. package/dist/locale/ko.min.mjs +1 -1
  122. package/dist/locale/ko.mjs +1 -1
  123. package/dist/locale/ku.js +1 -1
  124. package/dist/locale/ku.min.js +1 -1
  125. package/dist/locale/ku.min.mjs +1 -1
  126. package/dist/locale/ku.mjs +1 -1
  127. package/dist/locale/ky.js +1 -1
  128. package/dist/locale/ky.min.js +1 -1
  129. package/dist/locale/ky.min.mjs +1 -1
  130. package/dist/locale/ky.mjs +1 -1
  131. package/dist/locale/lt.js +1 -1
  132. package/dist/locale/lt.min.js +1 -1
  133. package/dist/locale/lt.min.mjs +1 -1
  134. package/dist/locale/lt.mjs +1 -1
  135. package/dist/locale/lv.js +1 -1
  136. package/dist/locale/lv.min.js +1 -1
  137. package/dist/locale/lv.min.mjs +1 -1
  138. package/dist/locale/lv.mjs +1 -1
  139. package/dist/locale/mg.js +1 -1
  140. package/dist/locale/mg.min.js +1 -1
  141. package/dist/locale/mg.min.mjs +1 -1
  142. package/dist/locale/mg.mjs +1 -1
  143. package/dist/locale/mn.js +1 -1
  144. package/dist/locale/mn.min.js +1 -1
  145. package/dist/locale/mn.min.mjs +1 -1
  146. package/dist/locale/mn.mjs +1 -1
  147. package/dist/locale/nb-no.js +1 -1
  148. package/dist/locale/nb-no.min.js +1 -1
  149. package/dist/locale/nb-no.min.mjs +1 -1
  150. package/dist/locale/nb-no.mjs +1 -1
  151. package/dist/locale/nl.js +1 -1
  152. package/dist/locale/nl.min.js +1 -1
  153. package/dist/locale/nl.min.mjs +1 -1
  154. package/dist/locale/nl.mjs +1 -1
  155. package/dist/locale/pa.js +1 -1
  156. package/dist/locale/pa.min.js +1 -1
  157. package/dist/locale/pa.min.mjs +1 -1
  158. package/dist/locale/pa.mjs +1 -1
  159. package/dist/locale/pl.js +1 -1
  160. package/dist/locale/pl.min.js +1 -1
  161. package/dist/locale/pl.min.mjs +1 -1
  162. package/dist/locale/pl.mjs +1 -1
  163. package/dist/locale/pt-br.js +1 -1
  164. package/dist/locale/pt-br.min.js +1 -1
  165. package/dist/locale/pt-br.min.mjs +1 -1
  166. package/dist/locale/pt-br.mjs +1 -1
  167. package/dist/locale/pt.js +1 -1
  168. package/dist/locale/pt.min.js +1 -1
  169. package/dist/locale/pt.min.mjs +1 -1
  170. package/dist/locale/pt.mjs +1 -1
  171. package/dist/locale/ro.js +1 -1
  172. package/dist/locale/ro.min.js +1 -1
  173. package/dist/locale/ro.min.mjs +1 -1
  174. package/dist/locale/ro.mjs +1 -1
  175. package/dist/locale/ru.js +1 -1
  176. package/dist/locale/ru.min.js +1 -1
  177. package/dist/locale/ru.min.mjs +1 -1
  178. package/dist/locale/ru.mjs +1 -1
  179. package/dist/locale/sk.js +1 -1
  180. package/dist/locale/sk.min.js +1 -1
  181. package/dist/locale/sk.min.mjs +1 -1
  182. package/dist/locale/sk.mjs +1 -1
  183. package/dist/locale/sl.js +1 -1
  184. package/dist/locale/sl.min.js +1 -1
  185. package/dist/locale/sl.min.mjs +1 -1
  186. package/dist/locale/sl.mjs +1 -1
  187. package/dist/locale/sr.js +1 -1
  188. package/dist/locale/sr.min.js +1 -1
  189. package/dist/locale/sr.min.mjs +1 -1
  190. package/dist/locale/sr.mjs +1 -1
  191. package/dist/locale/sv.js +1 -1
  192. package/dist/locale/sv.min.js +1 -1
  193. package/dist/locale/sv.min.mjs +1 -1
  194. package/dist/locale/sv.mjs +1 -1
  195. package/dist/locale/ta.js +1 -1
  196. package/dist/locale/ta.min.js +1 -1
  197. package/dist/locale/ta.min.mjs +1 -1
  198. package/dist/locale/ta.mjs +1 -1
  199. package/dist/locale/th.js +1 -1
  200. package/dist/locale/th.min.js +1 -1
  201. package/dist/locale/th.min.mjs +1 -1
  202. package/dist/locale/th.mjs +1 -1
  203. package/dist/locale/tk.js +1 -1
  204. package/dist/locale/tk.min.js +1 -1
  205. package/dist/locale/tk.min.mjs +1 -1
  206. package/dist/locale/tk.mjs +1 -1
  207. package/dist/locale/tr.js +1 -1
  208. package/dist/locale/tr.min.js +1 -1
  209. package/dist/locale/tr.min.mjs +1 -1
  210. package/dist/locale/tr.mjs +1 -1
  211. package/dist/locale/ug-cn.js +1 -1
  212. package/dist/locale/ug-cn.min.js +1 -1
  213. package/dist/locale/ug-cn.min.mjs +1 -1
  214. package/dist/locale/ug-cn.mjs +1 -1
  215. package/dist/locale/uk.js +1 -1
  216. package/dist/locale/uk.min.js +1 -1
  217. package/dist/locale/uk.min.mjs +1 -1
  218. package/dist/locale/uk.mjs +1 -1
  219. package/dist/locale/uz-uz.js +1 -1
  220. package/dist/locale/uz-uz.min.js +1 -1
  221. package/dist/locale/uz-uz.min.mjs +1 -1
  222. package/dist/locale/uz-uz.mjs +1 -1
  223. package/dist/locale/vi.js +1 -1
  224. package/dist/locale/vi.min.js +1 -1
  225. package/dist/locale/vi.min.mjs +1 -1
  226. package/dist/locale/vi.mjs +1 -1
  227. package/dist/locale/zh-cn.js +1 -1
  228. package/dist/locale/zh-cn.min.js +1 -1
  229. package/dist/locale/zh-cn.min.mjs +1 -1
  230. package/dist/locale/zh-cn.mjs +1 -1
  231. package/dist/locale/zh-tw.js +1 -1
  232. package/dist/locale/zh-tw.min.js +1 -1
  233. package/dist/locale/zh-tw.min.mjs +1 -1
  234. package/dist/locale/zh-tw.mjs +1 -1
  235. package/es/components/affix/src/affix.mjs +1 -1
  236. package/es/components/avatar/src/avatar.mjs +1 -1
  237. package/es/components/avatar/src/avatar2.mjs +1 -1
  238. package/es/components/badge/src/badge2.mjs +1 -1
  239. package/es/components/carousel/src/carousel.mjs +1 -1
  240. package/es/components/cascader/src/cascader.mjs +1 -1
  241. package/es/components/cascader/src/cascader2.mjs.map +1 -1
  242. package/es/components/cascader-panel/src/index.mjs +1 -1
  243. package/es/components/cascader-panel/src/index.mjs.map +1 -1
  244. package/es/components/check-tag/src/check-tag.mjs +1 -1
  245. package/es/components/checkbox/src/checkbox.mjs +1 -1
  246. package/es/components/checkbox/src/composables/use-checkbox-status.mjs +1 -1
  247. package/es/components/col/src/col2.mjs +1 -1
  248. package/es/components/collapse/src/collapse.mjs +1 -1
  249. package/es/components/color-picker/src/utils/draggable.mjs +1 -0
  250. package/es/components/color-picker/src/utils/draggable.mjs.map +1 -1
  251. package/es/components/countdown/src/countdown.mjs +1 -1
  252. package/es/components/countdown/src/utils.mjs +1 -1
  253. package/es/components/dialog/src/dialog.mjs +1 -1
  254. package/es/components/dialog/src/use-dialog.mjs.map +1 -1
  255. package/es/components/dropdown/index.d.ts +1 -0
  256. package/es/components/dropdown/index.mjs +1 -0
  257. package/es/components/dropdown/index.mjs.map +1 -1
  258. package/es/components/dropdown/src/instance.d.ts +2 -0
  259. package/es/components/dropdown/src/instance.mjs +2 -0
  260. package/es/components/dropdown/src/instance.mjs.map +1 -0
  261. package/es/components/form/src/form-item2.mjs +2 -1
  262. package/es/components/form/src/form-item2.mjs.map +1 -1
  263. package/es/components/form/src/form.mjs +1 -1
  264. package/es/components/image/src/image.mjs +1 -1
  265. package/es/components/image/src/image2.mjs.map +1 -1
  266. package/es/components/image-viewer/src/image-viewer.mjs +1 -1
  267. package/es/components/image-viewer/src/image-viewer2.mjs +2 -1
  268. package/es/components/image-viewer/src/image-viewer2.mjs.map +1 -1
  269. package/es/components/index.mjs +1 -1
  270. package/es/components/input/src/input2.mjs.map +1 -1
  271. package/es/components/input/src/utils.mjs +1 -1
  272. package/es/components/input-number/src/input-number.mjs +1 -1
  273. package/es/components/input-number/src/input-number2.mjs +1 -2
  274. package/es/components/input-number/src/input-number2.mjs.map +1 -1
  275. package/es/components/loading/src/service.mjs +2 -2
  276. package/es/components/loading/src/service.mjs.map +1 -1
  277. package/es/components/message/src/message.mjs +1 -1
  278. package/es/components/message/src/message.mjs.map +1 -1
  279. package/es/components/message/src/method.mjs +2 -2
  280. package/es/components/message/src/method.mjs.map +1 -1
  281. package/es/components/message-box/src/messageBox.mjs +1 -1
  282. package/es/components/message-box/src/messageBox.mjs.map +1 -1
  283. package/es/components/notification/index.mjs +1 -1
  284. package/es/components/notification/src/notification.mjs +147 -69
  285. package/es/components/notification/src/notification.mjs.map +1 -1
  286. package/es/components/notification/src/notification2.mjs +69 -147
  287. package/es/components/notification/src/notification2.mjs.map +1 -1
  288. package/es/components/notification/src/notify.mjs +3 -3
  289. package/es/components/notification/src/notify.mjs.map +1 -1
  290. package/es/components/pagination/src/pagination.mjs +1 -1
  291. package/es/components/popover/src/popover.mjs +1 -1
  292. package/es/components/popper/src/utils.d.ts +1 -1
  293. package/es/components/popper/src/utils.mjs +1 -0
  294. package/es/components/popper/src/utils.mjs.map +1 -1
  295. package/es/components/radio/src/radio.mjs +1 -1
  296. package/es/components/rate/src/rate.mjs +1 -1
  297. package/es/components/scrollbar/src/scrollbar.mjs +1 -1
  298. package/es/components/scrollbar/src/scrollbar2.mjs +2 -1
  299. package/es/components/scrollbar/src/scrollbar2.mjs.map +1 -1
  300. package/es/components/scrollbar/src/thumb2.mjs.map +1 -1
  301. package/es/components/select/src/select.mjs.map +1 -1
  302. package/es/components/select/src/useSelect.mjs +2 -1
  303. package/es/components/select/src/useSelect.mjs.map +1 -1
  304. package/es/components/slider/src/button.mjs +1 -1
  305. package/es/components/slider/src/slider.mjs +1 -1
  306. package/es/components/space/src/space.mjs +1 -1
  307. package/es/components/space/src/use-space.mjs +1 -1
  308. package/es/components/statistic/src/statistic2.mjs +1 -1
  309. package/es/components/steps/src/item2.mjs +1 -1
  310. package/es/components/steps/src/steps.mjs +1 -1
  311. package/es/components/switch/src/switch.mjs +1 -1
  312. package/es/components/switch/src/switch2.mjs +1 -1
  313. package/es/components/table/src/composables/use-scrollbar.mjs +1 -1
  314. package/es/components/table/src/table-body/index.mjs +1 -1
  315. package/es/components/table/src/table-body/index.mjs.map +1 -1
  316. package/es/components/table/src/table-header/event-helper.mjs +1 -1
  317. package/es/components/table/src/table-header/event-helper.mjs.map +1 -1
  318. package/es/components/table/src/table-layout.mjs +1 -1
  319. package/es/components/table/src/table-layout.mjs.map +1 -1
  320. package/es/components/table/src/util.mjs +1 -1
  321. package/es/components/table-v2/src/components/row.mjs +1 -1
  322. package/es/components/table-v2/src/composables/use-row.mjs +1 -1
  323. package/es/components/table-v2/src/composables/use-styles.mjs +1 -1
  324. package/es/components/table-v2/src/table-grid.mjs +1 -1
  325. package/es/components/tabs/src/tabs.mjs +1 -2
  326. package/es/components/tabs/src/tabs.mjs.map +1 -1
  327. package/es/components/tooltip/src/tooltip2.mjs +1 -1
  328. package/es/components/tooltip-v2/src/root2.mjs +2 -2
  329. package/es/components/virtual-list/src/builders/build-grid.mjs +2 -1
  330. package/es/components/virtual-list/src/builders/build-grid.mjs.map +1 -1
  331. package/es/components/virtual-list/src/builders/build-list.mjs +2 -1
  332. package/es/components/virtual-list/src/builders/build-list.mjs.map +1 -1
  333. package/es/components/virtual-list/src/components/dynamic-size-grid.mjs +1 -2
  334. package/es/components/virtual-list/src/components/dynamic-size-grid.mjs.map +1 -1
  335. package/es/components/virtual-list/src/components/fixed-size-grid.mjs +1 -1
  336. package/es/directives/click-outside/index.mjs +1 -1
  337. package/es/directives/click-outside/index.mjs.map +1 -1
  338. package/es/hooks/use-delayed-toggle/index.mjs +1 -1
  339. package/es/hooks/use-escape-keydown/index.mjs +2 -1
  340. package/es/hooks/use-escape-keydown/index.mjs.map +1 -1
  341. package/es/hooks/use-floating/index.mjs.map +1 -1
  342. package/es/hooks/use-id/index.mjs +1 -1
  343. package/es/hooks/use-id/index.mjs.map +1 -1
  344. package/es/hooks/use-lockscreen/index.mjs +1 -1
  345. package/es/hooks/use-lockscreen/index.mjs.map +1 -1
  346. package/es/hooks/use-model-toggle/index.mjs +2 -1
  347. package/es/hooks/use-model-toggle/index.mjs.map +1 -1
  348. package/es/hooks/use-popper-container/index.mjs +2 -1
  349. package/es/hooks/use-popper-container/index.mjs.map +1 -1
  350. package/es/hooks/use-teleport/index.mjs +1 -1
  351. package/es/hooks/use-teleport/index.mjs.map +1 -1
  352. package/es/hooks/use-z-index/index.mjs +1 -1
  353. package/es/index.mjs +1 -1
  354. package/es/utils/browser.d.ts +2 -0
  355. package/es/utils/browser.mjs +1 -0
  356. package/es/utils/browser.mjs.map +1 -1
  357. package/es/utils/dom/position.mjs +1 -0
  358. package/es/utils/dom/position.mjs.map +1 -1
  359. package/es/utils/dom/scroll.mjs +2 -1
  360. package/es/utils/dom/scroll.mjs.map +1 -1
  361. package/es/utils/dom/style.mjs +3 -2
  362. package/es/utils/dom/style.mjs.map +1 -1
  363. package/es/utils/index.mjs +2 -2
  364. package/es/utils/raf.mjs +1 -0
  365. package/es/utils/raf.mjs.map +1 -1
  366. package/es/utils/types.d.ts +2 -1
  367. package/es/utils/types.mjs +3 -2
  368. package/es/utils/types.mjs.map +1 -1
  369. package/es/utils/vue/global-node.mjs +1 -0
  370. package/es/utils/vue/global-node.mjs.map +1 -1
  371. package/es/version.d.ts +1 -1
  372. package/es/version.mjs +1 -1
  373. package/es/version.mjs.map +1 -1
  374. package/lib/components/affix/src/affix.js +3 -3
  375. package/lib/components/affix/src/affix.js.map +1 -1
  376. package/lib/components/avatar/src/avatar.js +2 -2
  377. package/lib/components/avatar/src/avatar.js.map +1 -1
  378. package/lib/components/avatar/src/avatar2.js +2 -2
  379. package/lib/components/avatar/src/avatar2.js.map +1 -1
  380. package/lib/components/badge/src/badge2.js +2 -2
  381. package/lib/components/badge/src/badge2.js.map +1 -1
  382. package/lib/components/carousel/src/carousel.js +2 -2
  383. package/lib/components/carousel/src/carousel.js.map +1 -1
  384. package/lib/components/cascader/src/cascader.js +2 -2
  385. package/lib/components/cascader/src/cascader.js.map +1 -1
  386. package/lib/components/cascader/src/cascader2.js.map +1 -1
  387. package/lib/components/cascader-panel/src/index.js +1 -1
  388. package/lib/components/cascader-panel/src/index.js.map +1 -1
  389. package/lib/components/check-tag/src/check-tag.js +3 -3
  390. package/lib/components/check-tag/src/check-tag.js.map +1 -1
  391. package/lib/components/checkbox/src/checkbox.js +3 -3
  392. package/lib/components/checkbox/src/checkbox.js.map +1 -1
  393. package/lib/components/checkbox/src/composables/use-checkbox-status.js +2 -2
  394. package/lib/components/checkbox/src/composables/use-checkbox-status.js.map +1 -1
  395. package/lib/components/col/src/col2.js +3 -3
  396. package/lib/components/col/src/col2.js.map +1 -1
  397. package/lib/components/collapse/src/collapse.js +2 -2
  398. package/lib/components/collapse/src/collapse.js.map +1 -1
  399. package/lib/components/color-picker/src/utils/draggable.js +1 -0
  400. package/lib/components/color-picker/src/utils/draggable.js.map +1 -1
  401. package/lib/components/countdown/src/countdown.js +2 -2
  402. package/lib/components/countdown/src/countdown.js.map +1 -1
  403. package/lib/components/countdown/src/utils.js +2 -2
  404. package/lib/components/countdown/src/utils.js.map +1 -1
  405. package/lib/components/dialog/src/dialog.js +2 -2
  406. package/lib/components/dialog/src/dialog.js.map +1 -1
  407. package/lib/components/dialog/src/use-dialog.js.map +1 -1
  408. package/lib/components/dropdown/index.d.ts +1 -0
  409. package/lib/components/dropdown/index.js +1 -0
  410. package/lib/components/dropdown/index.js.map +1 -1
  411. package/lib/components/dropdown/src/instance.d.ts +2 -0
  412. package/lib/components/dropdown/src/instance.js +3 -0
  413. package/lib/components/dropdown/src/instance.js.map +1 -0
  414. package/lib/components/form/src/form-item2.js +2 -1
  415. package/lib/components/form/src/form-item2.js.map +1 -1
  416. package/lib/components/form/src/form.js +2 -2
  417. package/lib/components/form/src/form.js.map +1 -1
  418. package/lib/components/image/src/image.js +2 -2
  419. package/lib/components/image/src/image.js.map +1 -1
  420. package/lib/components/image/src/image2.js.map +1 -1
  421. package/lib/components/image-viewer/src/image-viewer.js +2 -2
  422. package/lib/components/image-viewer/src/image-viewer.js.map +1 -1
  423. package/lib/components/image-viewer/src/image-viewer2.js +2 -1
  424. package/lib/components/image-viewer/src/image-viewer2.js.map +1 -1
  425. package/lib/components/index.js +1 -1
  426. package/lib/components/input/src/input2.js.map +1 -1
  427. package/lib/components/input/src/utils.js +3 -3
  428. package/lib/components/input/src/utils.js.map +1 -1
  429. package/lib/components/input-number/src/input-number.js +4 -4
  430. package/lib/components/input-number/src/input-number.js.map +1 -1
  431. package/lib/components/input-number/src/input-number2.js +7 -8
  432. package/lib/components/input-number/src/input-number2.js.map +1 -1
  433. package/lib/components/loading/src/service.js +2 -2
  434. package/lib/components/loading/src/service.js.map +1 -1
  435. package/lib/components/message/src/message.js +1 -1
  436. package/lib/components/message/src/message.js.map +1 -1
  437. package/lib/components/message/src/method.js +2 -2
  438. package/lib/components/message/src/method.js.map +1 -1
  439. package/lib/components/message-box/src/messageBox.js +1 -1
  440. package/lib/components/message-box/src/messageBox.js.map +1 -1
  441. package/lib/components/notification/index.js +1 -1
  442. package/lib/components/notification/src/notification.js +146 -70
  443. package/lib/components/notification/src/notification.js.map +1 -1
  444. package/lib/components/notification/src/notification2.js +70 -146
  445. package/lib/components/notification/src/notification2.js.map +1 -1
  446. package/lib/components/notification/src/notify.js +3 -3
  447. package/lib/components/notification/src/notify.js.map +1 -1
  448. package/lib/components/pagination/src/pagination.js +8 -8
  449. package/lib/components/pagination/src/pagination.js.map +1 -1
  450. package/lib/components/popover/src/popover.js +2 -2
  451. package/lib/components/popover/src/popover.js.map +1 -1
  452. package/lib/components/popper/src/utils.d.ts +1 -1
  453. package/lib/components/popper/src/utils.js +1 -0
  454. package/lib/components/popper/src/utils.js.map +1 -1
  455. package/lib/components/radio/src/radio.js +3 -3
  456. package/lib/components/radio/src/radio.js.map +1 -1
  457. package/lib/components/rate/src/rate.js +3 -3
  458. package/lib/components/rate/src/rate.js.map +1 -1
  459. package/lib/components/scrollbar/src/scrollbar.js +2 -2
  460. package/lib/components/scrollbar/src/scrollbar.js.map +1 -1
  461. package/lib/components/scrollbar/src/scrollbar2.js +4 -3
  462. package/lib/components/scrollbar/src/scrollbar2.js.map +1 -1
  463. package/lib/components/scrollbar/src/thumb2.js.map +1 -1
  464. package/lib/components/select/src/select.js.map +1 -1
  465. package/lib/components/select/src/useSelect.js +3 -2
  466. package/lib/components/select/src/useSelect.js.map +1 -1
  467. package/lib/components/slider/src/button.js +2 -2
  468. package/lib/components/slider/src/button.js.map +1 -1
  469. package/lib/components/slider/src/slider.js +2 -2
  470. package/lib/components/slider/src/slider.js.map +1 -1
  471. package/lib/components/space/src/space.js +3 -3
  472. package/lib/components/space/src/space.js.map +1 -1
  473. package/lib/components/space/src/use-space.js +2 -2
  474. package/lib/components/space/src/use-space.js.map +1 -1
  475. package/lib/components/statistic/src/statistic2.js +2 -2
  476. package/lib/components/statistic/src/statistic2.js.map +1 -1
  477. package/lib/components/steps/src/item2.js +2 -2
  478. package/lib/components/steps/src/item2.js.map +1 -1
  479. package/lib/components/steps/src/steps.js +2 -2
  480. package/lib/components/steps/src/steps.js.map +1 -1
  481. package/lib/components/switch/src/switch.js +4 -4
  482. package/lib/components/switch/src/switch.js.map +1 -1
  483. package/lib/components/switch/src/switch2.js +4 -4
  484. package/lib/components/switch/src/switch2.js.map +1 -1
  485. package/lib/components/table/src/composables/use-scrollbar.js +2 -2
  486. package/lib/components/table/src/composables/use-scrollbar.js.map +1 -1
  487. package/lib/components/table/src/table-body/index.js +1 -1
  488. package/lib/components/table/src/table-body/index.js.map +1 -1
  489. package/lib/components/table/src/table-header/event-helper.js +1 -1
  490. package/lib/components/table/src/table-header/event-helper.js.map +1 -1
  491. package/lib/components/table/src/table-layout.js +1 -1
  492. package/lib/components/table/src/table-layout.js.map +1 -1
  493. package/lib/components/table/src/util.js +4 -4
  494. package/lib/components/table/src/util.js.map +1 -1
  495. package/lib/components/table-v2/src/components/row.js +2 -2
  496. package/lib/components/table-v2/src/components/row.js.map +1 -1
  497. package/lib/components/table-v2/src/composables/use-row.js +2 -2
  498. package/lib/components/table-v2/src/composables/use-row.js.map +1 -1
  499. package/lib/components/table-v2/src/composables/use-styles.js +3 -3
  500. package/lib/components/table-v2/src/composables/use-styles.js.map +1 -1
  501. package/lib/components/table-v2/src/table-grid.js +2 -2
  502. package/lib/components/table-v2/src/table-grid.js.map +1 -1
  503. package/lib/components/tabs/src/tabs.js +2 -3
  504. package/lib/components/tabs/src/tabs.js.map +1 -1
  505. package/lib/components/tooltip/src/tooltip2.js +2 -2
  506. package/lib/components/tooltip/src/tooltip2.js.map +1 -1
  507. package/lib/components/tooltip-v2/src/root2.js +1 -1
  508. package/lib/components/tooltip-v2/src/root2.js.map +1 -1
  509. package/lib/components/virtual-list/src/builders/build-grid.js +8 -7
  510. package/lib/components/virtual-list/src/builders/build-grid.js.map +1 -1
  511. package/lib/components/virtual-list/src/builders/build-list.js +6 -5
  512. package/lib/components/virtual-list/src/builders/build-list.js.map +1 -1
  513. package/lib/components/virtual-list/src/components/dynamic-size-grid.js +2 -3
  514. package/lib/components/virtual-list/src/components/dynamic-size-grid.js.map +1 -1
  515. package/lib/components/virtual-list/src/components/fixed-size-grid.js +3 -3
  516. package/lib/components/virtual-list/src/components/fixed-size-grid.js.map +1 -1
  517. package/lib/directives/click-outside/index.js +1 -1
  518. package/lib/directives/click-outside/index.js.map +1 -1
  519. package/lib/hooks/use-delayed-toggle/index.js +2 -2
  520. package/lib/hooks/use-delayed-toggle/index.js.map +1 -1
  521. package/lib/hooks/use-escape-keydown/index.js +2 -1
  522. package/lib/hooks/use-escape-keydown/index.js.map +1 -1
  523. package/lib/hooks/use-floating/index.js.map +1 -1
  524. package/lib/hooks/use-id/index.js +1 -1
  525. package/lib/hooks/use-id/index.js.map +1 -1
  526. package/lib/hooks/use-lockscreen/index.js +1 -1
  527. package/lib/hooks/use-lockscreen/index.js.map +1 -1
  528. package/lib/hooks/use-model-toggle/index.js +3 -2
  529. package/lib/hooks/use-model-toggle/index.js.map +1 -1
  530. package/lib/hooks/use-popper-container/index.js +2 -1
  531. package/lib/hooks/use-popper-container/index.js.map +1 -1
  532. package/lib/hooks/use-teleport/index.js +1 -1
  533. package/lib/hooks/use-teleport/index.js.map +1 -1
  534. package/lib/hooks/use-z-index/index.js +2 -2
  535. package/lib/hooks/use-z-index/index.js.map +1 -1
  536. package/lib/index.js +1 -1
  537. package/lib/utils/browser.d.ts +2 -0
  538. package/lib/utils/browser.js +8 -0
  539. package/lib/utils/browser.js.map +1 -1
  540. package/lib/utils/dom/position.js +1 -0
  541. package/lib/utils/dom/position.js.map +1 -1
  542. package/lib/utils/dom/scroll.js +2 -1
  543. package/lib/utils/dom/scroll.js.map +1 -1
  544. package/lib/utils/dom/style.js +3 -2
  545. package/lib/utils/dom/style.js.map +1 -1
  546. package/lib/utils/index.js +11 -9
  547. package/lib/utils/index.js.map +1 -1
  548. package/lib/utils/raf.js +1 -0
  549. package/lib/utils/raf.js.map +1 -1
  550. package/lib/utils/types.d.ts +2 -1
  551. package/lib/utils/types.js +4 -9
  552. package/lib/utils/types.js.map +1 -1
  553. package/lib/utils/vue/global-node.js +1 -0
  554. package/lib/utils/vue/global-node.js.map +1 -1
  555. package/lib/version.d.ts +1 -1
  556. package/lib/version.js +1 -1
  557. package/lib/version.js.map +1 -1
  558. package/package.json +2 -2
  559. package/web-types.json +1 -1
@@ -1,75 +1,153 @@
1
+ import { defineComponent, ref, computed, onMounted, openBlock, createBlock, Transition, unref, withCtx, withDirectives, createElementVNode, normalizeClass, normalizeStyle, resolveDynamicComponent, createCommentVNode, toDisplayString, renderSlot, createElementBlock, Fragment, vShow, withModifiers, createVNode } from 'vue';
2
+ import { useTimeoutFn, useEventListener } from '@vueuse/core';
1
3
  import '../../../utils/index.mjs';
2
- import { buildProps, definePropType } from '../../../utils/vue/props/runtime.mjs';
3
- import { iconPropType } from '../../../utils/vue/icon.mjs';
4
+ import '../../../constants/index.mjs';
5
+ import { ElIcon } from '../../icon/index.mjs';
6
+ import '../../config-provider/index.mjs';
7
+ import { notificationProps, notificationEmits } from './notification2.mjs';
8
+ import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
9
+ import { useGlobalComponentSettings } from '../../config-provider/src/hooks/use-global-config.mjs';
10
+ import { CloseComponents, TypeComponentsMap } from '../../../utils/vue/icon.mjs';
11
+ import { EVENT_CODE } from '../../../constants/aria.mjs';
4
12
 
5
- const notificationTypes = [
6
- "success",
7
- "info",
8
- "warning",
9
- "error"
10
- ];
11
- const notificationProps = buildProps({
12
- customClass: {
13
- type: String,
14
- default: ""
15
- },
16
- dangerouslyUseHTMLString: {
17
- type: Boolean,
18
- default: false
19
- },
20
- duration: {
21
- type: Number,
22
- default: 4500
23
- },
24
- icon: {
25
- type: iconPropType
26
- },
27
- id: {
28
- type: String,
29
- default: ""
30
- },
31
- message: {
32
- type: definePropType([String, Object]),
33
- default: ""
34
- },
35
- offset: {
36
- type: Number,
37
- default: 0
38
- },
39
- onClick: {
40
- type: definePropType(Function),
41
- default: () => void 0
42
- },
43
- onClose: {
44
- type: definePropType(Function),
45
- required: true
46
- },
47
- position: {
48
- type: String,
49
- values: ["top-right", "top-left", "bottom-right", "bottom-left"],
50
- default: "top-right"
51
- },
52
- showClose: {
53
- type: Boolean,
54
- default: true
55
- },
56
- title: {
57
- type: String,
58
- default: ""
59
- },
60
- type: {
61
- type: String,
62
- values: [...notificationTypes, ""],
63
- default: ""
64
- },
65
- zIndex: {
66
- type: Number,
67
- default: 0
13
+ const _hoisted_1 = ["id"];
14
+ const _hoisted_2 = ["textContent"];
15
+ const _hoisted_3 = { key: 0 };
16
+ const _hoisted_4 = ["innerHTML"];
17
+ const __default__ = defineComponent({
18
+ name: "ElNotification"
19
+ });
20
+ const _sfc_main = /* @__PURE__ */ defineComponent({
21
+ ...__default__,
22
+ props: notificationProps,
23
+ emits: notificationEmits,
24
+ setup(__props, { expose }) {
25
+ const props = __props;
26
+ const { ns, zIndex } = useGlobalComponentSettings("notification");
27
+ const { nextZIndex, currentZIndex } = zIndex;
28
+ const { Close } = CloseComponents;
29
+ const visible = ref(false);
30
+ let timer = void 0;
31
+ const typeClass = computed(() => {
32
+ const type = props.type;
33
+ return type && TypeComponentsMap[props.type] ? ns.m(type) : "";
34
+ });
35
+ const iconComponent = computed(() => {
36
+ if (!props.type)
37
+ return props.icon;
38
+ return TypeComponentsMap[props.type] || props.icon;
39
+ });
40
+ const horizontalClass = computed(() => props.position.endsWith("right") ? "right" : "left");
41
+ const verticalProperty = computed(() => props.position.startsWith("top") ? "top" : "bottom");
42
+ const positionStyle = computed(() => {
43
+ return {
44
+ [verticalProperty.value]: `${props.offset}px`,
45
+ zIndex: currentZIndex.value
46
+ };
47
+ });
48
+ function startTimer() {
49
+ if (props.duration > 0) {
50
+ ;
51
+ ({ stop: timer } = useTimeoutFn(() => {
52
+ if (visible.value)
53
+ close();
54
+ }, props.duration));
55
+ }
56
+ }
57
+ function clearTimer() {
58
+ timer == null ? void 0 : timer();
59
+ }
60
+ function close() {
61
+ visible.value = false;
62
+ }
63
+ function onKeydown({ code }) {
64
+ if (code === EVENT_CODE.delete || code === EVENT_CODE.backspace) {
65
+ clearTimer();
66
+ } else if (code === EVENT_CODE.esc) {
67
+ if (visible.value) {
68
+ close();
69
+ }
70
+ } else {
71
+ startTimer();
72
+ }
73
+ }
74
+ onMounted(() => {
75
+ startTimer();
76
+ nextZIndex();
77
+ visible.value = true;
78
+ });
79
+ useEventListener(document, "keydown", onKeydown);
80
+ expose({
81
+ visible,
82
+ close
83
+ });
84
+ return (_ctx, _cache) => {
85
+ return openBlock(), createBlock(Transition, {
86
+ name: unref(ns).b("fade"),
87
+ onBeforeLeave: _ctx.onClose,
88
+ onAfterLeave: _cache[1] || (_cache[1] = ($event) => _ctx.$emit("destroy")),
89
+ persisted: ""
90
+ }, {
91
+ default: withCtx(() => [
92
+ withDirectives(createElementVNode("div", {
93
+ id: _ctx.id,
94
+ class: normalizeClass([unref(ns).b(), _ctx.customClass, unref(horizontalClass)]),
95
+ style: normalizeStyle(unref(positionStyle)),
96
+ role: "alert",
97
+ onMouseenter: clearTimer,
98
+ onMouseleave: startTimer,
99
+ onClick: _cache[0] || (_cache[0] = (...args) => _ctx.onClick && _ctx.onClick(...args))
100
+ }, [
101
+ unref(iconComponent) ? (openBlock(), createBlock(unref(ElIcon), {
102
+ key: 0,
103
+ class: normalizeClass([unref(ns).e("icon"), unref(typeClass)])
104
+ }, {
105
+ default: withCtx(() => [
106
+ (openBlock(), createBlock(resolveDynamicComponent(unref(iconComponent))))
107
+ ]),
108
+ _: 1
109
+ }, 8, ["class"])) : createCommentVNode("v-if", true),
110
+ createElementVNode("div", {
111
+ class: normalizeClass(unref(ns).e("group"))
112
+ }, [
113
+ createElementVNode("h2", {
114
+ class: normalizeClass(unref(ns).e("title")),
115
+ textContent: toDisplayString(_ctx.title)
116
+ }, null, 10, _hoisted_2),
117
+ withDirectives(createElementVNode("div", {
118
+ class: normalizeClass(unref(ns).e("content")),
119
+ style: normalizeStyle(!!_ctx.title ? void 0 : { margin: 0 })
120
+ }, [
121
+ renderSlot(_ctx.$slots, "default", {}, () => [
122
+ !_ctx.dangerouslyUseHTMLString ? (openBlock(), createElementBlock("p", _hoisted_3, toDisplayString(_ctx.message), 1)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
123
+ createCommentVNode(" Caution here, message could've been compromised, never use user's input as message "),
124
+ createElementVNode("p", { innerHTML: _ctx.message }, null, 8, _hoisted_4)
125
+ ], 2112))
126
+ ])
127
+ ], 6), [
128
+ [vShow, _ctx.message]
129
+ ]),
130
+ _ctx.showClose ? (openBlock(), createBlock(unref(ElIcon), {
131
+ key: 0,
132
+ class: normalizeClass(unref(ns).e("closeBtn")),
133
+ onClick: withModifiers(close, ["stop"])
134
+ }, {
135
+ default: withCtx(() => [
136
+ createVNode(unref(Close))
137
+ ]),
138
+ _: 1
139
+ }, 8, ["class", "onClick"])) : createCommentVNode("v-if", true)
140
+ ], 2)
141
+ ], 46, _hoisted_1), [
142
+ [vShow, visible.value]
143
+ ])
144
+ ]),
145
+ _: 3
146
+ }, 8, ["name", "onBeforeLeave"]);
147
+ };
68
148
  }
69
149
  });
70
- const notificationEmits = {
71
- destroy: () => true
72
- };
150
+ var NotificationConstructor = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/notification/src/notification.vue"]]);
73
151
 
74
- export { notificationEmits, notificationProps, notificationTypes };
152
+ export { NotificationConstructor as default };
75
153
  //# sourceMappingURL=notification.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"notification.mjs","sources":["../../../../../../packages/components/notification/src/notification.ts"],"sourcesContent":["import { buildProps, definePropType, iconPropType } from '@element-plus/utils'\n\nimport type { ExtractPropTypes, VNode } from 'vue'\nimport type Notification from './notification.vue'\n\nexport const notificationTypes = [\n 'success',\n 'info',\n 'warning',\n 'error',\n] as const\n\nexport const notificationProps = buildProps({\n /**\n * @description custom class name for Notification\n */\n customClass: {\n type: String,\n default: '',\n },\n /**\n * @description whether `message` is treated as HTML string\n */\n dangerouslyUseHTMLString: {\n type: Boolean,\n default: false,\n },\n /**\n * @description duration before close. It will not automatically close if set 0\n */\n duration: {\n type: Number,\n default: 4500,\n },\n /**\n * @description custom icon component. It will be overridden by `type`\n */\n icon: {\n type: iconPropType,\n },\n /**\n * @description notification dom id\n */\n id: {\n type: String,\n default: '',\n },\n /**\n * @description description text\n */\n message: {\n type: definePropType<string | VNode>([String, Object]),\n default: '',\n },\n /**\n * @description offset from the top edge of the screen. Every Notification instance of the same moment should have the same offset\n */\n offset: {\n type: Number,\n default: 0,\n },\n /**\n * @description callback function when notification clicked\n */\n onClick: {\n type: definePropType<() => void>(Function),\n default: () => undefined,\n },\n /**\n * @description callback function when closed\n */\n onClose: {\n type: definePropType<() => void>(Function),\n required: true,\n },\n /**\n * @description custom position\n */\n position: {\n type: String,\n values: ['top-right', 'top-left', 'bottom-right', 'bottom-left'],\n default: 'top-right',\n },\n /**\n * @description whether to show a close button\n */\n showClose: {\n type: Boolean,\n default: true,\n },\n /**\n * @description title\n */\n title: {\n type: String,\n default: '',\n },\n /**\n * @description notification type\n */\n type: {\n type: String,\n values: [...notificationTypes, ''],\n default: '',\n },\n /**\n * @description initial zIndex\n */\n zIndex: {\n type: Number,\n default: 0,\n },\n} as const)\nexport type NotificationProps = ExtractPropTypes<typeof notificationProps>\n\nexport const notificationEmits = {\n destroy: () => true,\n}\nexport type NotificationEmits = typeof notificationEmits\n\nexport type NotificationInstance = InstanceType<typeof Notification>\n\nexport type NotificationOptions = Omit<NotificationProps, 'id'> & {\n /**\n * @description set the root element for the notification, default to `document.body`\n */\n appendTo?: HTMLElement | string\n}\nexport type NotificationOptionsTyped = Omit<NotificationOptions, 'type'>\n\nexport interface NotificationHandle {\n close: () => void\n}\n\nexport type NotificationParams = Partial<NotificationOptions> | string | VNode\nexport type NotificationParamsTyped =\n | Partial<NotificationOptionsTyped>\n | string\n | VNode\n\nexport type NotifyFn = ((\n options?: NotificationParams\n) => NotificationHandle) & { closeAll: () => void }\n\nexport type NotifyTypedFn = (\n options?: NotificationParamsTyped\n) => NotificationHandle\n\nexport interface Notify extends NotifyFn {\n success: NotifyTypedFn\n warning: NotifyTypedFn\n error: NotifyTypedFn\n info: NotifyTypedFn\n}\n\nexport interface NotificationQueueItem {\n vm: VNode\n}\n\nexport type NotificationQueue = NotificationQueueItem[]\n"],"names":[],"mappings":";;;;AACY,MAAC,iBAAiB,GAAG;AACjC,EAAE,SAAS;AACX,EAAE,MAAM;AACR,EAAE,SAAS;AACX,EAAE,OAAO;AACT,EAAE;AACU,MAAC,iBAAiB,GAAG,UAAU,CAAC;AAC5C,EAAE,WAAW,EAAE;AACf,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,wBAAwB,EAAE;AAC5B,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,KAAK;AAClB,GAAG;AACH,EAAE,QAAQ,EAAE;AACZ,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAE,YAAY;AACtB,GAAG;AACH,EAAE,EAAE,EAAE;AACN,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,OAAO,EAAE;AACX,IAAI,IAAI,EAAE,cAAc,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC1C,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH,EAAE,OAAO,EAAE;AACX,IAAI,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,IAAI,OAAO,EAAE,MAAM,KAAK,CAAC;AACzB,GAAG;AACH,EAAE,OAAO,EAAE;AACX,IAAI,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,IAAI,QAAQ,EAAE,IAAI;AAClB,GAAG;AACH,EAAE,QAAQ,EAAE;AACZ,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,CAAC;AACpE,IAAI,OAAO,EAAE,WAAW;AACxB,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,CAAC,GAAG,iBAAiB,EAAE,EAAE,CAAC;AACtC,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH,CAAC,EAAE;AACS,MAAC,iBAAiB,GAAG;AACjC,EAAE,OAAO,EAAE,MAAM,IAAI;AACrB;;;;"}
1
+ {"version":3,"file":"notification.mjs","sources":["../../../../../../packages/components/notification/src/notification.vue"],"sourcesContent":["<template>\n <transition\n :name=\"ns.b('fade')\"\n @before-leave=\"onClose\"\n @after-leave=\"$emit('destroy')\"\n >\n <div\n v-show=\"visible\"\n :id=\"id\"\n :class=\"[ns.b(), customClass, horizontalClass]\"\n :style=\"positionStyle\"\n role=\"alert\"\n @mouseenter=\"clearTimer\"\n @mouseleave=\"startTimer\"\n @click=\"onClick\"\n >\n <el-icon v-if=\"iconComponent\" :class=\"[ns.e('icon'), typeClass]\">\n <component :is=\"iconComponent\" />\n </el-icon>\n <div :class=\"ns.e('group')\">\n <h2 :class=\"ns.e('title')\" v-text=\"title\" />\n <div\n v-show=\"message\"\n :class=\"ns.e('content')\"\n :style=\"!!title ? undefined : { margin: 0 }\"\n >\n <slot>\n <p v-if=\"!dangerouslyUseHTMLString\">{{ message }}</p>\n <!-- Caution here, message could've been compromised, never use user's input as message -->\n <p v-else v-html=\"message\" />\n </slot>\n </div>\n <el-icon v-if=\"showClose\" :class=\"ns.e('closeBtn')\" @click.stop=\"close\">\n <Close />\n </el-icon>\n </div>\n </div>\n </transition>\n</template>\n<script lang=\"ts\" setup>\nimport { computed, onMounted, ref } from 'vue'\nimport { useEventListener, useTimeoutFn } from '@vueuse/core'\nimport { CloseComponents, TypeComponentsMap } from '@element-plus/utils'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { useGlobalComponentSettings } from '@element-plus/components/config-provider'\nimport { notificationEmits, notificationProps } from './notification'\n\nimport type { CSSProperties } from 'vue'\n\ndefineOptions({\n name: 'ElNotification',\n})\n\nconst props = defineProps(notificationProps)\ndefineEmits(notificationEmits)\n\nconst { ns, zIndex } = useGlobalComponentSettings('notification')\nconst { nextZIndex, currentZIndex } = zIndex\n\nconst { Close } = CloseComponents\n\nconst visible = ref(false)\nlet timer: (() => void) | undefined = undefined\n\nconst typeClass = computed(() => {\n const type = props.type\n return type && TypeComponentsMap[props.type] ? ns.m(type) : ''\n})\n\nconst iconComponent = computed(() => {\n if (!props.type) return props.icon\n return TypeComponentsMap[props.type] || props.icon\n})\n\nconst horizontalClass = computed(() =>\n props.position.endsWith('right') ? 'right' : 'left'\n)\n\nconst verticalProperty = computed(() =>\n props.position.startsWith('top') ? 'top' : 'bottom'\n)\n\nconst positionStyle = computed<CSSProperties>(() => {\n return {\n [verticalProperty.value]: `${props.offset}px`,\n zIndex: currentZIndex.value,\n }\n})\n\nfunction startTimer() {\n if (props.duration > 0) {\n ;({ stop: timer } = useTimeoutFn(() => {\n if (visible.value) close()\n }, props.duration))\n }\n}\n\nfunction clearTimer() {\n timer?.()\n}\n\nfunction close() {\n visible.value = false\n}\n\nfunction onKeydown({ code }: KeyboardEvent) {\n if (code === EVENT_CODE.delete || code === EVENT_CODE.backspace) {\n clearTimer() // press delete/backspace clear timer\n } else if (code === EVENT_CODE.esc) {\n // press esc to close the notification\n if (visible.value) {\n close()\n }\n } else {\n startTimer() // resume timer\n }\n}\n\n// lifecycle\nonMounted(() => {\n startTimer()\n nextZIndex()\n visible.value = true\n})\n\nuseEventListener(document, 'keydown', onKeydown)\n\ndefineExpose({\n visible,\n /** @description close notification */\n close,\n})\n</script>\n"],"names":[],"mappings":"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"}
@@ -1,153 +1,75 @@
1
- import { defineComponent, ref, computed, onMounted, openBlock, createBlock, Transition, unref, withCtx, withDirectives, createElementVNode, normalizeClass, normalizeStyle, resolveDynamicComponent, createCommentVNode, toDisplayString, renderSlot, createElementBlock, Fragment, vShow, withModifiers, createVNode } from 'vue';
2
- import { useTimeoutFn, useEventListener } from '@vueuse/core';
3
1
  import '../../../utils/index.mjs';
4
- import '../../../constants/index.mjs';
5
- import { ElIcon } from '../../icon/index.mjs';
6
- import '../../config-provider/index.mjs';
7
- import { notificationProps, notificationEmits } from './notification.mjs';
8
- import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
9
- import { useGlobalComponentSettings } from '../../config-provider/src/hooks/use-global-config.mjs';
10
- import { CloseComponents, TypeComponentsMap } from '../../../utils/vue/icon.mjs';
11
- import { EVENT_CODE } from '../../../constants/aria.mjs';
2
+ import { buildProps, definePropType } from '../../../utils/vue/props/runtime.mjs';
3
+ import { iconPropType } from '../../../utils/vue/icon.mjs';
12
4
 
13
- const _hoisted_1 = ["id"];
14
- const _hoisted_2 = ["textContent"];
15
- const _hoisted_3 = { key: 0 };
16
- const _hoisted_4 = ["innerHTML"];
17
- const __default__ = defineComponent({
18
- name: "ElNotification"
19
- });
20
- const _sfc_main = /* @__PURE__ */ defineComponent({
21
- ...__default__,
22
- props: notificationProps,
23
- emits: notificationEmits,
24
- setup(__props, { expose }) {
25
- const props = __props;
26
- const { ns, zIndex } = useGlobalComponentSettings("notification");
27
- const { nextZIndex, currentZIndex } = zIndex;
28
- const { Close } = CloseComponents;
29
- const visible = ref(false);
30
- let timer = void 0;
31
- const typeClass = computed(() => {
32
- const type = props.type;
33
- return type && TypeComponentsMap[props.type] ? ns.m(type) : "";
34
- });
35
- const iconComponent = computed(() => {
36
- if (!props.type)
37
- return props.icon;
38
- return TypeComponentsMap[props.type] || props.icon;
39
- });
40
- const horizontalClass = computed(() => props.position.endsWith("right") ? "right" : "left");
41
- const verticalProperty = computed(() => props.position.startsWith("top") ? "top" : "bottom");
42
- const positionStyle = computed(() => {
43
- return {
44
- [verticalProperty.value]: `${props.offset}px`,
45
- zIndex: currentZIndex.value
46
- };
47
- });
48
- function startTimer() {
49
- if (props.duration > 0) {
50
- ;
51
- ({ stop: timer } = useTimeoutFn(() => {
52
- if (visible.value)
53
- close();
54
- }, props.duration));
55
- }
56
- }
57
- function clearTimer() {
58
- timer == null ? void 0 : timer();
59
- }
60
- function close() {
61
- visible.value = false;
62
- }
63
- function onKeydown({ code }) {
64
- if (code === EVENT_CODE.delete || code === EVENT_CODE.backspace) {
65
- clearTimer();
66
- } else if (code === EVENT_CODE.esc) {
67
- if (visible.value) {
68
- close();
69
- }
70
- } else {
71
- startTimer();
72
- }
73
- }
74
- onMounted(() => {
75
- startTimer();
76
- nextZIndex();
77
- visible.value = true;
78
- });
79
- useEventListener(document, "keydown", onKeydown);
80
- expose({
81
- visible,
82
- close
83
- });
84
- return (_ctx, _cache) => {
85
- return openBlock(), createBlock(Transition, {
86
- name: unref(ns).b("fade"),
87
- onBeforeLeave: _ctx.onClose,
88
- onAfterLeave: _cache[1] || (_cache[1] = ($event) => _ctx.$emit("destroy")),
89
- persisted: ""
90
- }, {
91
- default: withCtx(() => [
92
- withDirectives(createElementVNode("div", {
93
- id: _ctx.id,
94
- class: normalizeClass([unref(ns).b(), _ctx.customClass, unref(horizontalClass)]),
95
- style: normalizeStyle(unref(positionStyle)),
96
- role: "alert",
97
- onMouseenter: clearTimer,
98
- onMouseleave: startTimer,
99
- onClick: _cache[0] || (_cache[0] = (...args) => _ctx.onClick && _ctx.onClick(...args))
100
- }, [
101
- unref(iconComponent) ? (openBlock(), createBlock(unref(ElIcon), {
102
- key: 0,
103
- class: normalizeClass([unref(ns).e("icon"), unref(typeClass)])
104
- }, {
105
- default: withCtx(() => [
106
- (openBlock(), createBlock(resolveDynamicComponent(unref(iconComponent))))
107
- ]),
108
- _: 1
109
- }, 8, ["class"])) : createCommentVNode("v-if", true),
110
- createElementVNode("div", {
111
- class: normalizeClass(unref(ns).e("group"))
112
- }, [
113
- createElementVNode("h2", {
114
- class: normalizeClass(unref(ns).e("title")),
115
- textContent: toDisplayString(_ctx.title)
116
- }, null, 10, _hoisted_2),
117
- withDirectives(createElementVNode("div", {
118
- class: normalizeClass(unref(ns).e("content")),
119
- style: normalizeStyle(!!_ctx.title ? void 0 : { margin: 0 })
120
- }, [
121
- renderSlot(_ctx.$slots, "default", {}, () => [
122
- !_ctx.dangerouslyUseHTMLString ? (openBlock(), createElementBlock("p", _hoisted_3, toDisplayString(_ctx.message), 1)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
123
- createCommentVNode(" Caution here, message could've been compromised, never use user's input as message "),
124
- createElementVNode("p", { innerHTML: _ctx.message }, null, 8, _hoisted_4)
125
- ], 2112))
126
- ])
127
- ], 6), [
128
- [vShow, _ctx.message]
129
- ]),
130
- _ctx.showClose ? (openBlock(), createBlock(unref(ElIcon), {
131
- key: 0,
132
- class: normalizeClass(unref(ns).e("closeBtn")),
133
- onClick: withModifiers(close, ["stop"])
134
- }, {
135
- default: withCtx(() => [
136
- createVNode(unref(Close))
137
- ]),
138
- _: 1
139
- }, 8, ["class", "onClick"])) : createCommentVNode("v-if", true)
140
- ], 2)
141
- ], 46, _hoisted_1), [
142
- [vShow, visible.value]
143
- ])
144
- ]),
145
- _: 3
146
- }, 8, ["name", "onBeforeLeave"]);
147
- };
5
+ const notificationTypes = [
6
+ "success",
7
+ "info",
8
+ "warning",
9
+ "error"
10
+ ];
11
+ const notificationProps = buildProps({
12
+ customClass: {
13
+ type: String,
14
+ default: ""
15
+ },
16
+ dangerouslyUseHTMLString: {
17
+ type: Boolean,
18
+ default: false
19
+ },
20
+ duration: {
21
+ type: Number,
22
+ default: 4500
23
+ },
24
+ icon: {
25
+ type: iconPropType
26
+ },
27
+ id: {
28
+ type: String,
29
+ default: ""
30
+ },
31
+ message: {
32
+ type: definePropType([String, Object]),
33
+ default: ""
34
+ },
35
+ offset: {
36
+ type: Number,
37
+ default: 0
38
+ },
39
+ onClick: {
40
+ type: definePropType(Function),
41
+ default: () => void 0
42
+ },
43
+ onClose: {
44
+ type: definePropType(Function),
45
+ required: true
46
+ },
47
+ position: {
48
+ type: String,
49
+ values: ["top-right", "top-left", "bottom-right", "bottom-left"],
50
+ default: "top-right"
51
+ },
52
+ showClose: {
53
+ type: Boolean,
54
+ default: true
55
+ },
56
+ title: {
57
+ type: String,
58
+ default: ""
59
+ },
60
+ type: {
61
+ type: String,
62
+ values: [...notificationTypes, ""],
63
+ default: ""
64
+ },
65
+ zIndex: {
66
+ type: Number,
67
+ default: 0
148
68
  }
149
69
  });
150
- var NotificationConstructor = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/notification/src/notification.vue"]]);
70
+ const notificationEmits = {
71
+ destroy: () => true
72
+ };
151
73
 
152
- export { NotificationConstructor as default };
74
+ export { notificationEmits, notificationProps, notificationTypes };
153
75
  //# sourceMappingURL=notification2.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"notification2.mjs","sources":["../../../../../../packages/components/notification/src/notification.vue"],"sourcesContent":["<template>\n <transition\n :name=\"ns.b('fade')\"\n @before-leave=\"onClose\"\n @after-leave=\"$emit('destroy')\"\n >\n <div\n v-show=\"visible\"\n :id=\"id\"\n :class=\"[ns.b(), customClass, horizontalClass]\"\n :style=\"positionStyle\"\n role=\"alert\"\n @mouseenter=\"clearTimer\"\n @mouseleave=\"startTimer\"\n @click=\"onClick\"\n >\n <el-icon v-if=\"iconComponent\" :class=\"[ns.e('icon'), typeClass]\">\n <component :is=\"iconComponent\" />\n </el-icon>\n <div :class=\"ns.e('group')\">\n <h2 :class=\"ns.e('title')\" v-text=\"title\" />\n <div\n v-show=\"message\"\n :class=\"ns.e('content')\"\n :style=\"!!title ? undefined : { margin: 0 }\"\n >\n <slot>\n <p v-if=\"!dangerouslyUseHTMLString\">{{ message }}</p>\n <!-- Caution here, message could've been compromised, never use user's input as message -->\n <p v-else v-html=\"message\" />\n </slot>\n </div>\n <el-icon v-if=\"showClose\" :class=\"ns.e('closeBtn')\" @click.stop=\"close\">\n <Close />\n </el-icon>\n </div>\n </div>\n </transition>\n</template>\n<script lang=\"ts\" setup>\nimport { computed, onMounted, ref } from 'vue'\nimport { useEventListener, useTimeoutFn } from '@vueuse/core'\nimport { CloseComponents, TypeComponentsMap } from '@element-plus/utils'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { useGlobalComponentSettings } from '@element-plus/components/config-provider'\nimport { notificationEmits, notificationProps } from './notification'\n\nimport type { CSSProperties } from 'vue'\n\ndefineOptions({\n name: 'ElNotification',\n})\n\nconst props = defineProps(notificationProps)\ndefineEmits(notificationEmits)\n\nconst { ns, zIndex } = useGlobalComponentSettings('notification')\nconst { nextZIndex, currentZIndex } = zIndex\n\nconst { Close } = CloseComponents\n\nconst visible = ref(false)\nlet timer: (() => void) | undefined = undefined\n\nconst typeClass = computed(() => {\n const type = props.type\n return type && TypeComponentsMap[props.type] ? ns.m(type) : ''\n})\n\nconst iconComponent = computed(() => {\n if (!props.type) return props.icon\n return TypeComponentsMap[props.type] || props.icon\n})\n\nconst horizontalClass = computed(() =>\n props.position.endsWith('right') ? 'right' : 'left'\n)\n\nconst verticalProperty = computed(() =>\n props.position.startsWith('top') ? 'top' : 'bottom'\n)\n\nconst positionStyle = computed<CSSProperties>(() => {\n return {\n [verticalProperty.value]: `${props.offset}px`,\n zIndex: currentZIndex.value,\n }\n})\n\nfunction startTimer() {\n if (props.duration > 0) {\n ;({ stop: timer } = useTimeoutFn(() => {\n if (visible.value) close()\n }, props.duration))\n }\n}\n\nfunction clearTimer() {\n timer?.()\n}\n\nfunction close() {\n visible.value = false\n}\n\nfunction onKeydown({ code }: KeyboardEvent) {\n if (code === EVENT_CODE.delete || code === EVENT_CODE.backspace) {\n clearTimer() // press delete/backspace clear timer\n } else if (code === EVENT_CODE.esc) {\n // press esc to close the notification\n if (visible.value) {\n close()\n }\n } else {\n startTimer() // resume timer\n }\n}\n\n// lifecycle\nonMounted(() => {\n startTimer()\n nextZIndex()\n visible.value = true\n})\n\nuseEventListener(document, 'keydown', onKeydown)\n\ndefineExpose({\n visible,\n /** @description close notification */\n close,\n})\n</script>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notification2.mjs","sources":["../../../../../../packages/components/notification/src/notification.ts"],"sourcesContent":["import { buildProps, definePropType, iconPropType } from '@element-plus/utils'\n\nimport type { ExtractPropTypes, VNode } from 'vue'\nimport type Notification from './notification.vue'\n\nexport const notificationTypes = [\n 'success',\n 'info',\n 'warning',\n 'error',\n] as const\n\nexport const notificationProps = buildProps({\n /**\n * @description custom class name for Notification\n */\n customClass: {\n type: String,\n default: '',\n },\n /**\n * @description whether `message` is treated as HTML string\n */\n dangerouslyUseHTMLString: {\n type: Boolean,\n default: false,\n },\n /**\n * @description duration before close. It will not automatically close if set 0\n */\n duration: {\n type: Number,\n default: 4500,\n },\n /**\n * @description custom icon component. It will be overridden by `type`\n */\n icon: {\n type: iconPropType,\n },\n /**\n * @description notification dom id\n */\n id: {\n type: String,\n default: '',\n },\n /**\n * @description description text\n */\n message: {\n type: definePropType<string | VNode>([String, Object]),\n default: '',\n },\n /**\n * @description offset from the top edge of the screen. Every Notification instance of the same moment should have the same offset\n */\n offset: {\n type: Number,\n default: 0,\n },\n /**\n * @description callback function when notification clicked\n */\n onClick: {\n type: definePropType<() => void>(Function),\n default: () => undefined,\n },\n /**\n * @description callback function when closed\n */\n onClose: {\n type: definePropType<() => void>(Function),\n required: true,\n },\n /**\n * @description custom position\n */\n position: {\n type: String,\n values: ['top-right', 'top-left', 'bottom-right', 'bottom-left'],\n default: 'top-right',\n },\n /**\n * @description whether to show a close button\n */\n showClose: {\n type: Boolean,\n default: true,\n },\n /**\n * @description title\n */\n title: {\n type: String,\n default: '',\n },\n /**\n * @description notification type\n */\n type: {\n type: String,\n values: [...notificationTypes, ''],\n default: '',\n },\n /**\n * @description initial zIndex\n */\n zIndex: {\n type: Number,\n default: 0,\n },\n} as const)\nexport type NotificationProps = ExtractPropTypes<typeof notificationProps>\n\nexport const notificationEmits = {\n destroy: () => true,\n}\nexport type NotificationEmits = typeof notificationEmits\n\nexport type NotificationInstance = InstanceType<typeof Notification>\n\nexport type NotificationOptions = Omit<NotificationProps, 'id'> & {\n /**\n * @description set the root element for the notification, default to `document.body`\n */\n appendTo?: HTMLElement | string\n}\nexport type NotificationOptionsTyped = Omit<NotificationOptions, 'type'>\n\nexport interface NotificationHandle {\n close: () => void\n}\n\nexport type NotificationParams = Partial<NotificationOptions> | string | VNode\nexport type NotificationParamsTyped =\n | Partial<NotificationOptionsTyped>\n | string\n | VNode\n\nexport type NotifyFn = ((\n options?: NotificationParams\n) => NotificationHandle) & { closeAll: () => void }\n\nexport type NotifyTypedFn = (\n options?: NotificationParamsTyped\n) => NotificationHandle\n\nexport interface Notify extends NotifyFn {\n success: NotifyTypedFn\n warning: NotifyTypedFn\n error: NotifyTypedFn\n info: NotifyTypedFn\n}\n\nexport interface NotificationQueueItem {\n vm: VNode\n}\n\nexport type NotificationQueue = NotificationQueueItem[]\n"],"names":[],"mappings":";;;;AACY,MAAC,iBAAiB,GAAG;AACjC,EAAE,SAAS;AACX,EAAE,MAAM;AACR,EAAE,SAAS;AACX,EAAE,OAAO;AACT,EAAE;AACU,MAAC,iBAAiB,GAAG,UAAU,CAAC;AAC5C,EAAE,WAAW,EAAE;AACf,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,wBAAwB,EAAE;AAC5B,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,KAAK;AAClB,GAAG;AACH,EAAE,QAAQ,EAAE;AACZ,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAE,YAAY;AACtB,GAAG;AACH,EAAE,EAAE,EAAE;AACN,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,OAAO,EAAE;AACX,IAAI,IAAI,EAAE,cAAc,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC1C,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH,EAAE,OAAO,EAAE;AACX,IAAI,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,IAAI,OAAO,EAAE,MAAM,KAAK,CAAC;AACzB,GAAG;AACH,EAAE,OAAO,EAAE;AACX,IAAI,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,IAAI,QAAQ,EAAE,IAAI;AAClB,GAAG;AACH,EAAE,QAAQ,EAAE;AACZ,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,CAAC;AACpE,IAAI,OAAO,EAAE,WAAW;AACxB,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,CAAC,GAAG,iBAAiB,EAAE,EAAE,CAAC;AACtC,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH,CAAC,EAAE;AACS,MAAC,iBAAiB,GAAG;AACjC,EAAE,OAAO,EAAE,MAAM,IAAI;AACrB;;;;"}
@@ -1,8 +1,8 @@
1
1
  import { isVNode, createVNode, render } from 'vue';
2
- import { isClient } from '@vueuse/core';
3
2
  import '../../../utils/index.mjs';
4
- import NotificationConstructor from './notification2.mjs';
5
- import { notificationTypes } from './notification.mjs';
3
+ import NotificationConstructor from './notification.mjs';
4
+ import { notificationTypes } from './notification2.mjs';
5
+ import { isClient } from '@vueuse/core';
6
6
  import { isElement } from '../../../utils/types.mjs';
7
7
  import { isString } from '@vue/shared';
8
8
  import { debugWarn } from '../../../utils/error.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"notify.mjs","sources":["../../../../../../packages/components/notification/src/notify.ts"],"sourcesContent":["import { createVNode, render } from 'vue'\nimport { isClient } from '@vueuse/core'\nimport { debugWarn, isElement, isString, isVNode } from '@element-plus/utils'\nimport NotificationConstructor from './notification.vue'\nimport { notificationTypes } from './notification'\n\nimport type { AppContext, Ref, VNode } from 'vue'\nimport type {\n NotificationOptions,\n NotificationProps,\n NotificationQueue,\n Notify,\n NotifyFn,\n} from './notification'\n\n// This should be a queue but considering there were `non-autoclosable` notifications.\nconst notifications: Record<\n NotificationOptions['position'],\n NotificationQueue\n> = {\n 'top-left': [],\n 'top-right': [],\n 'bottom-left': [],\n 'bottom-right': [],\n}\n\n// the gap size between each notification\nconst GAP_SIZE = 16\nlet seed = 1\n\nconst notify: NotifyFn & Partial<Notify> & { _context: AppContext | null } =\n function (options = {}, context: AppContext | null = null) {\n if (!isClient) return { close: () => undefined }\n\n if (typeof options === 'string' || isVNode(options)) {\n options = { message: options }\n }\n\n const position = options.position || 'top-right'\n\n let verticalOffset = options.offset || 0\n notifications[position].forEach(({ vm }) => {\n verticalOffset += (vm.el?.offsetHeight || 0) + GAP_SIZE\n })\n verticalOffset += GAP_SIZE\n\n const id = `notification_${seed++}`\n const userOnClose = options.onClose\n const props: Partial<NotificationProps> = {\n ...options,\n offset: verticalOffset,\n id,\n onClose: () => {\n close(id, position, userOnClose)\n },\n }\n\n let appendTo: HTMLElement | null = document.body\n if (isElement(options.appendTo)) {\n appendTo = options.appendTo\n } else if (isString(options.appendTo)) {\n appendTo = document.querySelector(options.appendTo)\n }\n\n // should fallback to default value with a warning\n if (!isElement(appendTo)) {\n debugWarn(\n 'ElNotification',\n 'the appendTo option is not an HTMLElement. Falling back to document.body.'\n )\n appendTo = document.body\n }\n\n const container = document.createElement('div')\n\n const vm = createVNode(\n NotificationConstructor,\n props,\n isVNode(props.message)\n ? {\n default: () => props.message,\n }\n : null\n )\n vm.appContext = context ?? notify._context\n\n // clean notification element preventing mem leak\n vm.props!.onDestroy = () => {\n render(null, container)\n }\n\n // instances will remove this item when close function gets called. So we do not need to worry about it.\n render(vm, container)\n notifications[position].push({ vm })\n appendTo.appendChild(container.firstElementChild!)\n\n return {\n // instead of calling the onClose function directly, setting this value so that we can have the full lifecycle\n // for out component, so that all closing steps will not be skipped.\n close: () => {\n ;(vm.component!.exposed as { visible: Ref<boolean> }).visible.value =\n false\n },\n }\n }\nnotificationTypes.forEach((type) => {\n notify[type] = (options = {}) => {\n if (typeof options === 'string' || isVNode(options)) {\n options = {\n message: options,\n }\n }\n return notify({\n ...options,\n type,\n })\n }\n})\n\n/**\n * This function gets called when user click `x` button or press `esc` or the time reached its limitation.\n * Emitted by transition@before-leave event so that we can fetch the current notification.offsetHeight, if this was called\n * by @after-leave the DOM element will be removed from the page thus we can no longer fetch the offsetHeight.\n * @param {String} id notification id to be closed\n * @param {Position} position the positioning strategy\n * @param {Function} userOnClose the callback called when close passed by user\n */\nexport function close(\n id: string,\n position: NotificationOptions['position'],\n userOnClose?: (vm: VNode) => void\n): void {\n // maybe we can store the index when inserting the vm to notification list.\n const orientedNotifications = notifications[position]\n const idx = orientedNotifications.findIndex(\n ({ vm }) => vm.component?.props.id === id\n )\n if (idx === -1) return\n const { vm } = orientedNotifications[idx]\n if (!vm) return\n // calling user's on close function before notification gets removed from DOM.\n userOnClose?.(vm)\n\n // note that this is called @before-leave, that's why we were able to fetch this property.\n const removedHeight = vm.el!.offsetHeight\n const verticalPos = position.split('-')[0]\n orientedNotifications.splice(idx, 1)\n const len = orientedNotifications.length\n if (len < 1) return\n // starting from the removing item.\n for (let i = idx; i < len; i++) {\n // new position equals the current offsetTop minus removed height plus 16px(the gap size between each item)\n const { el, component } = orientedNotifications[i].vm\n const pos =\n Number.parseInt(el!.style[verticalPos], 10) - removedHeight - GAP_SIZE\n component!.props.offset = pos\n }\n}\n\nexport function closeAll(): void {\n // loop through all directions, close them at once.\n for (const orientedNotifications of Object.values(notifications)) {\n orientedNotifications.forEach(({ vm }) => {\n // same as the previous close method, we'd like to make sure lifecycle gets handle properly.\n ;(vm.component!.exposed as { visible: Ref<boolean> }).visible.value =\n false\n })\n }\n}\n\nnotify.closeAll = closeAll\nnotify._context = null\n\nexport default notify as Notify\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notify.mjs","sources":["../../../../../../packages/components/notification/src/notify.ts"],"sourcesContent":["import { createVNode, render } from 'vue'\nimport {\n debugWarn,\n isClient,\n isElement,\n isString,\n isVNode,\n} from '@element-plus/utils'\nimport NotificationConstructor from './notification.vue'\nimport { notificationTypes } from './notification'\n\nimport type { AppContext, Ref, VNode } from 'vue'\nimport type {\n NotificationOptions,\n NotificationProps,\n NotificationQueue,\n Notify,\n NotifyFn,\n} from './notification'\n\n// This should be a queue but considering there were `non-autoclosable` notifications.\nconst notifications: Record<\n NotificationOptions['position'],\n NotificationQueue\n> = {\n 'top-left': [],\n 'top-right': [],\n 'bottom-left': [],\n 'bottom-right': [],\n}\n\n// the gap size between each notification\nconst GAP_SIZE = 16\nlet seed = 1\n\nconst notify: NotifyFn & Partial<Notify> & { _context: AppContext | null } =\n function (options = {}, context: AppContext | null = null) {\n if (!isClient) return { close: () => undefined }\n\n if (typeof options === 'string' || isVNode(options)) {\n options = { message: options }\n }\n\n const position = options.position || 'top-right'\n\n let verticalOffset = options.offset || 0\n notifications[position].forEach(({ vm }) => {\n verticalOffset += (vm.el?.offsetHeight || 0) + GAP_SIZE\n })\n verticalOffset += GAP_SIZE\n\n const id = `notification_${seed++}`\n const userOnClose = options.onClose\n const props: Partial<NotificationProps> = {\n ...options,\n offset: verticalOffset,\n id,\n onClose: () => {\n close(id, position, userOnClose)\n },\n }\n\n let appendTo: HTMLElement | null = document.body\n if (isElement(options.appendTo)) {\n appendTo = options.appendTo\n } else if (isString(options.appendTo)) {\n appendTo = document.querySelector(options.appendTo)\n }\n\n // should fallback to default value with a warning\n if (!isElement(appendTo)) {\n debugWarn(\n 'ElNotification',\n 'the appendTo option is not an HTMLElement. Falling back to document.body.'\n )\n appendTo = document.body\n }\n\n const container = document.createElement('div')\n\n const vm = createVNode(\n NotificationConstructor,\n props,\n isVNode(props.message)\n ? {\n default: () => props.message,\n }\n : null\n )\n vm.appContext = context ?? notify._context\n\n // clean notification element preventing mem leak\n vm.props!.onDestroy = () => {\n render(null, container)\n }\n\n // instances will remove this item when close function gets called. So we do not need to worry about it.\n render(vm, container)\n notifications[position].push({ vm })\n appendTo.appendChild(container.firstElementChild!)\n\n return {\n // instead of calling the onClose function directly, setting this value so that we can have the full lifecycle\n // for out component, so that all closing steps will not be skipped.\n close: () => {\n ;(vm.component!.exposed as { visible: Ref<boolean> }).visible.value =\n false\n },\n }\n }\nnotificationTypes.forEach((type) => {\n notify[type] = (options = {}) => {\n if (typeof options === 'string' || isVNode(options)) {\n options = {\n message: options,\n }\n }\n return notify({\n ...options,\n type,\n })\n }\n})\n\n/**\n * This function gets called when user click `x` button or press `esc` or the time reached its limitation.\n * Emitted by transition@before-leave event so that we can fetch the current notification.offsetHeight, if this was called\n * by @after-leave the DOM element will be removed from the page thus we can no longer fetch the offsetHeight.\n * @param {String} id notification id to be closed\n * @param {Position} position the positioning strategy\n * @param {Function} userOnClose the callback called when close passed by user\n */\nexport function close(\n id: string,\n position: NotificationOptions['position'],\n userOnClose?: (vm: VNode) => void\n): void {\n // maybe we can store the index when inserting the vm to notification list.\n const orientedNotifications = notifications[position]\n const idx = orientedNotifications.findIndex(\n ({ vm }) => vm.component?.props.id === id\n )\n if (idx === -1) return\n const { vm } = orientedNotifications[idx]\n if (!vm) return\n // calling user's on close function before notification gets removed from DOM.\n userOnClose?.(vm)\n\n // note that this is called @before-leave, that's why we were able to fetch this property.\n const removedHeight = vm.el!.offsetHeight\n const verticalPos = position.split('-')[0]\n orientedNotifications.splice(idx, 1)\n const len = orientedNotifications.length\n if (len < 1) return\n // starting from the removing item.\n for (let i = idx; i < len; i++) {\n // new position equals the current offsetTop minus removed height plus 16px(the gap size between each item)\n const { el, component } = orientedNotifications[i].vm\n const pos =\n Number.parseInt(el!.style[verticalPos], 10) - removedHeight - GAP_SIZE\n component!.props.offset = pos\n }\n}\n\nexport function closeAll(): void {\n // loop through all directions, close them at once.\n for (const orientedNotifications of Object.values(notifications)) {\n orientedNotifications.forEach(({ vm }) => {\n // same as the previous close method, we'd like to make sure lifecycle gets handle properly.\n ;(vm.component!.exposed as { visible: Ref<boolean> }).visible.value =\n false\n })\n }\n}\n\nnotify.closeAll = closeAll\nnotify._context = null\n\nexport default notify as Notify\n"],"names":[],"mappings":"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"}