@element-plus/nightly 0.0.20240708 → 0.0.20240710

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 (300) hide show
  1. package/dist/index.full.js +16 -7
  2. package/dist/index.full.min.js +14 -14
  3. package/dist/index.full.min.js.map +1 -1
  4. package/dist/index.full.min.mjs +14 -14
  5. package/dist/index.full.min.mjs.map +1 -1
  6. package/dist/index.full.mjs +16 -8
  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-eg.js +1 -1
  12. package/dist/locale/ar-eg.min.js +1 -1
  13. package/dist/locale/ar-eg.min.mjs +1 -1
  14. package/dist/locale/ar-eg.mjs +1 -1
  15. package/dist/locale/ar.js +1 -1
  16. package/dist/locale/ar.min.js +1 -1
  17. package/dist/locale/ar.min.mjs +1 -1
  18. package/dist/locale/ar.mjs +1 -1
  19. package/dist/locale/az.js +1 -1
  20. package/dist/locale/az.min.js +1 -1
  21. package/dist/locale/az.min.mjs +1 -1
  22. package/dist/locale/az.mjs +1 -1
  23. package/dist/locale/bg.js +1 -1
  24. package/dist/locale/bg.min.js +1 -1
  25. package/dist/locale/bg.min.mjs +1 -1
  26. package/dist/locale/bg.mjs +1 -1
  27. package/dist/locale/bn.js +1 -1
  28. package/dist/locale/bn.min.js +1 -1
  29. package/dist/locale/bn.min.mjs +1 -1
  30. package/dist/locale/bn.mjs +1 -1
  31. package/dist/locale/ca.js +1 -1
  32. package/dist/locale/ca.min.js +1 -1
  33. package/dist/locale/ca.min.mjs +1 -1
  34. package/dist/locale/ca.mjs +1 -1
  35. package/dist/locale/ckb.js +1 -1
  36. package/dist/locale/ckb.min.js +1 -1
  37. package/dist/locale/ckb.min.mjs +1 -1
  38. package/dist/locale/ckb.mjs +1 -1
  39. package/dist/locale/cs.js +1 -1
  40. package/dist/locale/cs.min.js +1 -1
  41. package/dist/locale/cs.min.mjs +1 -1
  42. package/dist/locale/cs.mjs +1 -1
  43. package/dist/locale/da.js +1 -1
  44. package/dist/locale/da.min.js +1 -1
  45. package/dist/locale/da.min.mjs +1 -1
  46. package/dist/locale/da.mjs +1 -1
  47. package/dist/locale/de.js +1 -1
  48. package/dist/locale/de.min.js +1 -1
  49. package/dist/locale/de.min.mjs +1 -1
  50. package/dist/locale/de.mjs +1 -1
  51. package/dist/locale/el.js +1 -1
  52. package/dist/locale/el.min.js +1 -1
  53. package/dist/locale/el.min.mjs +1 -1
  54. package/dist/locale/el.mjs +1 -1
  55. package/dist/locale/en.js +1 -1
  56. package/dist/locale/en.min.js +1 -1
  57. package/dist/locale/en.min.mjs +1 -1
  58. package/dist/locale/en.mjs +1 -1
  59. package/dist/locale/eo.js +1 -1
  60. package/dist/locale/eo.min.js +1 -1
  61. package/dist/locale/eo.min.mjs +1 -1
  62. package/dist/locale/eo.mjs +1 -1
  63. package/dist/locale/es.js +1 -1
  64. package/dist/locale/es.min.js +1 -1
  65. package/dist/locale/es.min.mjs +1 -1
  66. package/dist/locale/es.mjs +1 -1
  67. package/dist/locale/et.js +1 -1
  68. package/dist/locale/et.min.js +1 -1
  69. package/dist/locale/et.min.mjs +1 -1
  70. package/dist/locale/et.mjs +1 -1
  71. package/dist/locale/eu.js +1 -1
  72. package/dist/locale/eu.min.js +1 -1
  73. package/dist/locale/eu.min.mjs +1 -1
  74. package/dist/locale/eu.mjs +1 -1
  75. package/dist/locale/fa.js +1 -1
  76. package/dist/locale/fa.min.js +1 -1
  77. package/dist/locale/fa.min.mjs +1 -1
  78. package/dist/locale/fa.mjs +1 -1
  79. package/dist/locale/fi.js +1 -1
  80. package/dist/locale/fi.min.js +1 -1
  81. package/dist/locale/fi.min.mjs +1 -1
  82. package/dist/locale/fi.mjs +1 -1
  83. package/dist/locale/fr.js +6 -1
  84. package/dist/locale/fr.min.js +1 -1
  85. package/dist/locale/fr.min.js.map +1 -1
  86. package/dist/locale/fr.min.mjs +1 -1
  87. package/dist/locale/fr.min.mjs.map +1 -1
  88. package/dist/locale/fr.mjs +6 -1
  89. package/dist/locale/he.js +1 -1
  90. package/dist/locale/he.min.js +1 -1
  91. package/dist/locale/he.min.mjs +1 -1
  92. package/dist/locale/he.mjs +1 -1
  93. package/dist/locale/hr.js +1 -1
  94. package/dist/locale/hr.min.js +1 -1
  95. package/dist/locale/hr.min.mjs +1 -1
  96. package/dist/locale/hr.mjs +1 -1
  97. package/dist/locale/hu.js +1 -1
  98. package/dist/locale/hu.min.js +1 -1
  99. package/dist/locale/hu.min.mjs +1 -1
  100. package/dist/locale/hu.mjs +1 -1
  101. package/dist/locale/hy-am.js +1 -1
  102. package/dist/locale/hy-am.min.js +1 -1
  103. package/dist/locale/hy-am.min.mjs +1 -1
  104. package/dist/locale/hy-am.mjs +1 -1
  105. package/dist/locale/id.js +1 -1
  106. package/dist/locale/id.min.js +1 -1
  107. package/dist/locale/id.min.mjs +1 -1
  108. package/dist/locale/id.mjs +1 -1
  109. package/dist/locale/it.js +1 -1
  110. package/dist/locale/it.min.js +1 -1
  111. package/dist/locale/it.min.mjs +1 -1
  112. package/dist/locale/it.mjs +1 -1
  113. package/dist/locale/ja.js +1 -1
  114. package/dist/locale/ja.min.js +1 -1
  115. package/dist/locale/ja.min.mjs +1 -1
  116. package/dist/locale/ja.mjs +1 -1
  117. package/dist/locale/kk.js +1 -1
  118. package/dist/locale/kk.min.js +1 -1
  119. package/dist/locale/kk.min.mjs +1 -1
  120. package/dist/locale/kk.mjs +1 -1
  121. package/dist/locale/km.js +1 -1
  122. package/dist/locale/km.min.js +1 -1
  123. package/dist/locale/km.min.mjs +1 -1
  124. package/dist/locale/km.mjs +1 -1
  125. package/dist/locale/ko.js +1 -1
  126. package/dist/locale/ko.min.js +1 -1
  127. package/dist/locale/ko.min.mjs +1 -1
  128. package/dist/locale/ko.mjs +1 -1
  129. package/dist/locale/ku.js +1 -1
  130. package/dist/locale/ku.min.js +1 -1
  131. package/dist/locale/ku.min.mjs +1 -1
  132. package/dist/locale/ku.mjs +1 -1
  133. package/dist/locale/ky.js +1 -1
  134. package/dist/locale/ky.min.js +1 -1
  135. package/dist/locale/ky.min.mjs +1 -1
  136. package/dist/locale/ky.mjs +1 -1
  137. package/dist/locale/lt.js +1 -1
  138. package/dist/locale/lt.min.js +1 -1
  139. package/dist/locale/lt.min.mjs +1 -1
  140. package/dist/locale/lt.mjs +1 -1
  141. package/dist/locale/lv.js +1 -1
  142. package/dist/locale/lv.min.js +1 -1
  143. package/dist/locale/lv.min.mjs +1 -1
  144. package/dist/locale/lv.mjs +1 -1
  145. package/dist/locale/mg.js +1 -1
  146. package/dist/locale/mg.min.js +1 -1
  147. package/dist/locale/mg.min.mjs +1 -1
  148. package/dist/locale/mg.mjs +1 -1
  149. package/dist/locale/mn.js +1 -1
  150. package/dist/locale/mn.min.js +1 -1
  151. package/dist/locale/mn.min.mjs +1 -1
  152. package/dist/locale/mn.mjs +1 -1
  153. package/dist/locale/nb-no.js +1 -1
  154. package/dist/locale/nb-no.min.js +1 -1
  155. package/dist/locale/nb-no.min.mjs +1 -1
  156. package/dist/locale/nb-no.mjs +1 -1
  157. package/dist/locale/nl.js +1 -1
  158. package/dist/locale/nl.min.js +1 -1
  159. package/dist/locale/nl.min.mjs +1 -1
  160. package/dist/locale/nl.mjs +1 -1
  161. package/dist/locale/pa.js +1 -1
  162. package/dist/locale/pa.min.js +1 -1
  163. package/dist/locale/pa.min.mjs +1 -1
  164. package/dist/locale/pa.mjs +1 -1
  165. package/dist/locale/pl.js +1 -1
  166. package/dist/locale/pl.min.js +1 -1
  167. package/dist/locale/pl.min.mjs +1 -1
  168. package/dist/locale/pl.mjs +1 -1
  169. package/dist/locale/pt-br.js +1 -1
  170. package/dist/locale/pt-br.min.js +1 -1
  171. package/dist/locale/pt-br.min.mjs +1 -1
  172. package/dist/locale/pt-br.mjs +1 -1
  173. package/dist/locale/pt.js +1 -1
  174. package/dist/locale/pt.min.js +1 -1
  175. package/dist/locale/pt.min.mjs +1 -1
  176. package/dist/locale/pt.mjs +1 -1
  177. package/dist/locale/ro.js +1 -1
  178. package/dist/locale/ro.min.js +1 -1
  179. package/dist/locale/ro.min.mjs +1 -1
  180. package/dist/locale/ro.mjs +1 -1
  181. package/dist/locale/ru.js +1 -1
  182. package/dist/locale/ru.min.js +1 -1
  183. package/dist/locale/ru.min.mjs +1 -1
  184. package/dist/locale/ru.mjs +1 -1
  185. package/dist/locale/sk.js +1 -1
  186. package/dist/locale/sk.min.js +1 -1
  187. package/dist/locale/sk.min.mjs +1 -1
  188. package/dist/locale/sk.mjs +1 -1
  189. package/dist/locale/sl.js +1 -1
  190. package/dist/locale/sl.min.js +1 -1
  191. package/dist/locale/sl.min.mjs +1 -1
  192. package/dist/locale/sl.mjs +1 -1
  193. package/dist/locale/sr.js +1 -1
  194. package/dist/locale/sr.min.js +1 -1
  195. package/dist/locale/sr.min.mjs +1 -1
  196. package/dist/locale/sr.mjs +1 -1
  197. package/dist/locale/sv.js +1 -1
  198. package/dist/locale/sv.min.js +1 -1
  199. package/dist/locale/sv.min.mjs +1 -1
  200. package/dist/locale/sv.mjs +1 -1
  201. package/dist/locale/sw.js +1 -1
  202. package/dist/locale/sw.min.js +1 -1
  203. package/dist/locale/sw.min.mjs +1 -1
  204. package/dist/locale/sw.mjs +1 -1
  205. package/dist/locale/ta.js +1 -1
  206. package/dist/locale/ta.min.js +1 -1
  207. package/dist/locale/ta.min.mjs +1 -1
  208. package/dist/locale/ta.mjs +1 -1
  209. package/dist/locale/th.js +1 -1
  210. package/dist/locale/th.min.js +1 -1
  211. package/dist/locale/th.min.mjs +1 -1
  212. package/dist/locale/th.mjs +1 -1
  213. package/dist/locale/tk.js +1 -1
  214. package/dist/locale/tk.min.js +1 -1
  215. package/dist/locale/tk.min.mjs +1 -1
  216. package/dist/locale/tk.mjs +1 -1
  217. package/dist/locale/tr.js +1 -1
  218. package/dist/locale/tr.min.js +1 -1
  219. package/dist/locale/tr.min.mjs +1 -1
  220. package/dist/locale/tr.mjs +1 -1
  221. package/dist/locale/ug-cn.js +1 -1
  222. package/dist/locale/ug-cn.min.js +1 -1
  223. package/dist/locale/ug-cn.min.mjs +1 -1
  224. package/dist/locale/ug-cn.mjs +1 -1
  225. package/dist/locale/uk.js +1 -1
  226. package/dist/locale/uk.min.js +1 -1
  227. package/dist/locale/uk.min.mjs +1 -1
  228. package/dist/locale/uk.mjs +1 -1
  229. package/dist/locale/uz-uz.js +1 -1
  230. package/dist/locale/uz-uz.min.js +1 -1
  231. package/dist/locale/uz-uz.min.mjs +1 -1
  232. package/dist/locale/uz-uz.mjs +1 -1
  233. package/dist/locale/vi.js +1 -1
  234. package/dist/locale/vi.min.js +1 -1
  235. package/dist/locale/vi.min.mjs +1 -1
  236. package/dist/locale/vi.mjs +1 -1
  237. package/dist/locale/zh-cn.js +1 -1
  238. package/dist/locale/zh-cn.min.js +1 -1
  239. package/dist/locale/zh-cn.min.mjs +1 -1
  240. package/dist/locale/zh-cn.mjs +1 -1
  241. package/dist/locale/zh-tw.js +1 -1
  242. package/dist/locale/zh-tw.min.js +1 -1
  243. package/dist/locale/zh-tw.min.mjs +1 -1
  244. package/dist/locale/zh-tw.mjs +1 -1
  245. package/es/components/config-provider/index.d.ts +1 -1
  246. package/es/components/config-provider/src/config-provider.d.ts +1 -1
  247. package/es/components/config-provider/src/hooks/use-global-config.mjs +5 -0
  248. package/es/components/config-provider/src/hooks/use-global-config.mjs.map +1 -1
  249. package/es/components/index.mjs +1 -1
  250. package/es/components/notification/index.mjs +1 -1
  251. package/es/components/notification/src/notification.mjs +149 -67
  252. package/es/components/notification/src/notification.mjs.map +1 -1
  253. package/es/components/notification/src/notification2.mjs +67 -149
  254. package/es/components/notification/src/notification2.mjs.map +1 -1
  255. package/es/components/notification/src/notify.mjs +2 -2
  256. package/es/components/tree-select/src/tree-select-option.mjs +6 -1
  257. package/es/components/tree-select/src/tree-select-option.mjs.map +1 -1
  258. package/es/components/tree-select/src/tree.mjs +2 -1
  259. package/es/components/tree-select/src/tree.mjs.map +1 -1
  260. package/es/hooks/index.mjs +1 -1
  261. package/es/hooks/use-empty-values/index.d.ts +5 -2
  262. package/es/hooks/use-empty-values/index.mjs +4 -8
  263. package/es/hooks/use-empty-values/index.mjs.map +1 -1
  264. package/es/index.mjs +2 -2
  265. package/es/locale/lang/fr.d.ts +5 -0
  266. package/es/locale/lang/fr.mjs +5 -0
  267. package/es/locale/lang/fr.mjs.map +1 -1
  268. package/es/version.d.ts +1 -1
  269. package/es/version.mjs +1 -1
  270. package/es/version.mjs.map +1 -1
  271. package/lib/components/config-provider/index.d.ts +1 -1
  272. package/lib/components/config-provider/src/config-provider.d.ts +1 -1
  273. package/lib/components/config-provider/src/hooks/use-global-config.js +5 -0
  274. package/lib/components/config-provider/src/hooks/use-global-config.js.map +1 -1
  275. package/lib/components/index.js +1 -1
  276. package/lib/components/notification/index.js +1 -1
  277. package/lib/components/notification/src/notification.js +148 -68
  278. package/lib/components/notification/src/notification.js.map +1 -1
  279. package/lib/components/notification/src/notification2.js +68 -148
  280. package/lib/components/notification/src/notification2.js.map +1 -1
  281. package/lib/components/notification/src/notify.js +2 -2
  282. package/lib/components/tree-select/src/tree-select-option.js +5 -0
  283. package/lib/components/tree-select/src/tree-select-option.js.map +1 -1
  284. package/lib/components/tree-select/src/tree.js +2 -1
  285. package/lib/components/tree-select/src/tree.js.map +1 -1
  286. package/lib/hooks/index.js +1 -0
  287. package/lib/hooks/index.js.map +1 -1
  288. package/lib/hooks/use-empty-values/index.d.ts +5 -2
  289. package/lib/hooks/use-empty-values/index.js +3 -6
  290. package/lib/hooks/use-empty-values/index.js.map +1 -1
  291. package/lib/index.js +2 -1
  292. package/lib/index.js.map +1 -1
  293. package/lib/locale/lang/fr.d.ts +5 -0
  294. package/lib/locale/lang/fr.js +5 -0
  295. package/lib/locale/lang/fr.js.map +1 -1
  296. package/lib/version.d.ts +1 -1
  297. package/lib/version.js +1 -1
  298. package/lib/version.js.map +1 -1
  299. package/package.json +2 -2
  300. package/web-types.json +1 -1
@@ -78,9 +78,9 @@ declare const ConfigProvider: import("vue").DefineComponent<{
78
78
  readonly namespace: import("../../../utils").EpPropFinalized<StringConstructor, unknown, unknown, "el", boolean>;
79
79
  }>>, {
80
80
  readonly valueOnClear: import("../../../utils").EpPropMergeType<readonly [StringConstructor, NumberConstructor, BooleanConstructor, FunctionConstructor], unknown, unknown>;
81
+ readonly namespace: string;
81
82
  readonly a11y: import("../../../utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
82
83
  readonly keyboardNavigation: import("../../../utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
83
- readonly namespace: string;
84
84
  }>;
85
85
  export declare type ConfigProviderInstance = InstanceType<typeof ConfigProvider>;
86
86
  export default ConfigProvider;
@@ -11,6 +11,7 @@ var index$1 = require('../../../../hooks/use-locale/index.js');
11
11
  var index$2 = require('../../../../hooks/use-z-index/index.js');
12
12
  var error = require('../../../../utils/error.js');
13
13
  var index$3 = require('../../../../hooks/use-size/index.js');
14
+ var index$4 = require('../../../../hooks/use-empty-values/index.js');
14
15
  var objects = require('../../../../utils/objects.js');
15
16
 
16
17
  const globalConfig = vue.ref();
@@ -73,6 +74,10 @@ const provideGlobalConfig = (config, app, global = false) => {
73
74
  provideFn(index$3.SIZE_INJECTION_KEY, {
74
75
  size: vue.computed(() => context.value.size || "")
75
76
  });
77
+ provideFn(index$4.emptyValuesContextKey, vue.computed(() => ({
78
+ emptyValues: context.value.emptyValues,
79
+ valueOnClear: context.value.valueOnClear
80
+ })));
76
81
  if (global || !globalConfig.value) {
77
82
  globalConfig.value = context.value;
78
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"use-global-config.js","sources":["../../../../../../../packages/components/config-provider/src/hooks/use-global-config.ts"],"sourcesContent":["import { computed, getCurrentInstance, inject, provide, ref, unref } from 'vue'\nimport { debugWarn, keysOf } from '@element-plus/utils'\nimport {\n SIZE_INJECTION_KEY,\n defaultInitialZIndex,\n defaultNamespace,\n localeContextKey,\n namespaceContextKey,\n useLocale,\n useNamespace,\n useZIndex,\n zIndexContextKey,\n} from '@element-plus/hooks'\nimport { configProviderContextKey } from '../constants'\n\nimport type { MaybeRef } from '@vueuse/core'\nimport type { App, Ref } from 'vue'\nimport type { ConfigProviderContext } from '../constants'\n\n// this is meant to fix global methods like `ElMessage(opts)`, this way we can inject current locale\n// into the component as default injection value.\n// refer to: https://github.com/element-plus/element-plus/issues/2610#issuecomment-887965266\nconst globalConfig = ref<ConfigProviderContext>()\n\nexport function useGlobalConfig<\n K extends keyof ConfigProviderContext,\n D extends ConfigProviderContext[K]\n>(\n key: K,\n defaultValue?: D\n): Ref<Exclude<ConfigProviderContext[K], undefined> | D>\nexport function useGlobalConfig(): Ref<ConfigProviderContext>\nexport function useGlobalConfig(\n key?: keyof ConfigProviderContext,\n defaultValue = undefined\n) {\n const config = getCurrentInstance()\n ? inject(configProviderContextKey, globalConfig)\n : globalConfig\n if (key) {\n return computed(() => config.value?.[key] ?? defaultValue)\n } else {\n return config\n }\n}\n\n// for components like `ElMessage` `ElNotification` `ElMessageBox`.\nexport function useGlobalComponentSettings(\n block: string,\n sizeFallback?: MaybeRef<ConfigProviderContext['size']>\n) {\n const config = useGlobalConfig()\n\n const ns = useNamespace(\n block,\n computed(() => config.value?.namespace || defaultNamespace)\n )\n\n const locale = useLocale(computed(() => config.value?.locale))\n const zIndex = useZIndex(\n computed(() => config.value?.zIndex || defaultInitialZIndex)\n )\n const size = computed(() => unref(sizeFallback) || config.value?.size || '')\n provideGlobalConfig(computed(() => unref(config) || {}))\n\n return {\n ns,\n locale,\n zIndex,\n size,\n }\n}\n\nexport const provideGlobalConfig = (\n config: MaybeRef<ConfigProviderContext>,\n app?: App,\n global = false\n) => {\n const inSetup = !!getCurrentInstance()\n const oldConfig = inSetup ? useGlobalConfig() : undefined\n\n const provideFn = app?.provide ?? (inSetup ? provide : undefined)\n if (!provideFn) {\n debugWarn(\n 'provideGlobalConfig',\n 'provideGlobalConfig() can only be used inside setup().'\n )\n return\n }\n\n const context = computed(() => {\n const cfg = unref(config)\n if (!oldConfig?.value) return cfg\n return mergeConfig(oldConfig.value, cfg)\n })\n provideFn(configProviderContextKey, context)\n provideFn(\n localeContextKey,\n computed(() => context.value.locale)\n )\n provideFn(\n namespaceContextKey,\n computed(() => context.value.namespace)\n )\n provideFn(\n zIndexContextKey,\n computed(() => context.value.zIndex)\n )\n\n provideFn(SIZE_INJECTION_KEY, {\n size: computed(() => context.value.size || ''),\n })\n\n if (global || !globalConfig.value) {\n globalConfig.value = context.value\n }\n return context\n}\n\nconst mergeConfig = (\n a: ConfigProviderContext,\n b: ConfigProviderContext\n): ConfigProviderContext => {\n const keys = [...new Set([...keysOf(a), ...keysOf(b)])]\n const obj: Record<string, any> = {}\n for (const key of keys) {\n obj[key] = b[key] !== undefined ? b[key] : a[key]\n }\n return obj\n}\n"],"names":["ref","getCurrentInstance","inject","configProviderContextKey","computed","useNamespace","defaultNamespace","useLocale","useZIndex","defaultInitialZIndex","unref","provide","debugWarn","localeContextKey","namespaceContextKey","zIndexContextKey","SIZE_INJECTION_KEY","keysOf"],"mappings":"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"}
1
+ {"version":3,"file":"use-global-config.js","sources":["../../../../../../../packages/components/config-provider/src/hooks/use-global-config.ts"],"sourcesContent":["import { computed, getCurrentInstance, inject, provide, ref, unref } from 'vue'\nimport { debugWarn, keysOf } from '@element-plus/utils'\nimport {\n SIZE_INJECTION_KEY,\n defaultInitialZIndex,\n defaultNamespace,\n emptyValuesContextKey,\n localeContextKey,\n namespaceContextKey,\n useLocale,\n useNamespace,\n useZIndex,\n zIndexContextKey,\n} from '@element-plus/hooks'\nimport { configProviderContextKey } from '../constants'\n\nimport type { MaybeRef } from '@vueuse/core'\nimport type { App, Ref } from 'vue'\nimport type { ConfigProviderContext } from '../constants'\n\n// this is meant to fix global methods like `ElMessage(opts)`, this way we can inject current locale\n// into the component as default injection value.\n// refer to: https://github.com/element-plus/element-plus/issues/2610#issuecomment-887965266\nconst globalConfig = ref<ConfigProviderContext>()\n\nexport function useGlobalConfig<\n K extends keyof ConfigProviderContext,\n D extends ConfigProviderContext[K]\n>(\n key: K,\n defaultValue?: D\n): Ref<Exclude<ConfigProviderContext[K], undefined> | D>\nexport function useGlobalConfig(): Ref<ConfigProviderContext>\nexport function useGlobalConfig(\n key?: keyof ConfigProviderContext,\n defaultValue = undefined\n) {\n const config = getCurrentInstance()\n ? inject(configProviderContextKey, globalConfig)\n : globalConfig\n if (key) {\n return computed(() => config.value?.[key] ?? defaultValue)\n } else {\n return config\n }\n}\n\n// for components like `ElMessage` `ElNotification` `ElMessageBox`.\nexport function useGlobalComponentSettings(\n block: string,\n sizeFallback?: MaybeRef<ConfigProviderContext['size']>\n) {\n const config = useGlobalConfig()\n\n const ns = useNamespace(\n block,\n computed(() => config.value?.namespace || defaultNamespace)\n )\n\n const locale = useLocale(computed(() => config.value?.locale))\n const zIndex = useZIndex(\n computed(() => config.value?.zIndex || defaultInitialZIndex)\n )\n const size = computed(() => unref(sizeFallback) || config.value?.size || '')\n provideGlobalConfig(computed(() => unref(config) || {}))\n\n return {\n ns,\n locale,\n zIndex,\n size,\n }\n}\n\nexport const provideGlobalConfig = (\n config: MaybeRef<ConfigProviderContext>,\n app?: App,\n global = false\n) => {\n const inSetup = !!getCurrentInstance()\n const oldConfig = inSetup ? useGlobalConfig() : undefined\n\n const provideFn = app?.provide ?? (inSetup ? provide : undefined)\n if (!provideFn) {\n debugWarn(\n 'provideGlobalConfig',\n 'provideGlobalConfig() can only be used inside setup().'\n )\n return\n }\n\n const context = computed(() => {\n const cfg = unref(config)\n if (!oldConfig?.value) return cfg\n return mergeConfig(oldConfig.value, cfg)\n })\n provideFn(configProviderContextKey, context)\n provideFn(\n localeContextKey,\n computed(() => context.value.locale)\n )\n provideFn(\n namespaceContextKey,\n computed(() => context.value.namespace)\n )\n provideFn(\n zIndexContextKey,\n computed(() => context.value.zIndex)\n )\n\n provideFn(SIZE_INJECTION_KEY, {\n size: computed(() => context.value.size || ''),\n })\n\n provideFn(\n emptyValuesContextKey,\n computed(() => ({\n emptyValues: context.value.emptyValues,\n valueOnClear: context.value.valueOnClear,\n }))\n )\n\n if (global || !globalConfig.value) {\n globalConfig.value = context.value\n }\n return context\n}\n\nconst mergeConfig = (\n a: ConfigProviderContext,\n b: ConfigProviderContext\n): ConfigProviderContext => {\n const keys = [...new Set([...keysOf(a), ...keysOf(b)])]\n const obj: Record<string, any> = {}\n for (const key of keys) {\n obj[key] = b[key] !== undefined ? b[key] : a[key]\n }\n return obj\n}\n"],"names":["ref","getCurrentInstance","inject","configProviderContextKey","computed","useNamespace","defaultNamespace","useLocale","useZIndex","defaultInitialZIndex","unref","provide","debugWarn","localeContextKey","namespaceContextKey","zIndexContextKey","SIZE_INJECTION_KEY","emptyValuesContextKey","keysOf"],"mappings":"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"}
@@ -225,7 +225,7 @@ var segmented = require('./segmented/src/segmented.js');
225
225
  var directive = require('./loading/src/directive.js');
226
226
  var service = require('./loading/src/service.js');
227
227
  var message = require('./message/src/message.js');
228
- var notification = require('./notification/src/notification.js');
228
+ var notification = require('./notification/src/notification2.js');
229
229
  var popover = require('./popover/src/popover.js');
230
230
 
231
231
 
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  require('../../utils/index.js');
6
6
  var notify = require('./src/notify.js');
7
- var notification = require('./src/notification.js');
7
+ var notification = require('./src/notification2.js');
8
8
  var install = require('../../utils/vue/install.js');
9
9
 
10
10
  const ElNotification = install.withInstallFunction(notify["default"], "$notify");
@@ -2,77 +2,157 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ var vue = require('vue');
6
+ var core = require('@vueuse/core');
5
7
  require('../../../utils/index.js');
6
- var runtime = require('../../../utils/vue/props/runtime.js');
8
+ require('../../../constants/index.js');
9
+ var index = require('../../icon/index.js');
10
+ require('../../config-provider/index.js');
11
+ var notification = require('./notification2.js');
12
+ var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js');
13
+ var useGlobalConfig = require('../../config-provider/src/hooks/use-global-config.js');
7
14
  var icon = require('../../../utils/vue/icon.js');
15
+ var aria = require('../../../constants/aria.js');
8
16
 
9
- const notificationTypes = [
10
- "success",
11
- "info",
12
- "warning",
13
- "error"
14
- ];
15
- const notificationProps = runtime.buildProps({
16
- customClass: {
17
- type: String,
18
- default: ""
19
- },
20
- dangerouslyUseHTMLString: {
21
- type: Boolean,
22
- default: false
23
- },
24
- duration: {
25
- type: Number,
26
- default: 4500
27
- },
28
- icon: {
29
- type: icon.iconPropType
30
- },
31
- id: {
32
- type: String,
33
- default: ""
34
- },
35
- message: {
36
- type: runtime.definePropType([String, Object]),
37
- default: ""
38
- },
39
- offset: {
40
- type: Number,
41
- default: 0
42
- },
43
- onClick: {
44
- type: runtime.definePropType(Function),
45
- default: () => void 0
46
- },
47
- onClose: {
48
- type: runtime.definePropType(Function),
49
- required: true
50
- },
51
- position: {
52
- type: String,
53
- values: ["top-right", "top-left", "bottom-right", "bottom-left"],
54
- default: "top-right"
55
- },
56
- showClose: {
57
- type: Boolean,
58
- default: true
59
- },
60
- title: {
61
- type: String,
62
- default: ""
63
- },
64
- type: {
65
- type: String,
66
- values: [...notificationTypes, ""],
67
- default: ""
68
- },
69
- zIndex: Number
17
+ const _hoisted_1 = ["id"];
18
+ const _hoisted_2 = ["textContent"];
19
+ const _hoisted_3 = { key: 0 };
20
+ const _hoisted_4 = ["innerHTML"];
21
+ const __default__ = vue.defineComponent({
22
+ name: "ElNotification"
70
23
  });
71
- const notificationEmits = {
72
- destroy: () => true
73
- };
24
+ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
25
+ ...__default__,
26
+ props: notification.notificationProps,
27
+ emits: notification.notificationEmits,
28
+ setup(__props, { expose }) {
29
+ const props = __props;
30
+ const { ns, zIndex } = useGlobalConfig.useGlobalComponentSettings("notification");
31
+ const { nextZIndex, currentZIndex } = zIndex;
32
+ const { Close } = icon.CloseComponents;
33
+ const visible = vue.ref(false);
34
+ let timer = void 0;
35
+ const typeClass = vue.computed(() => {
36
+ const type = props.type;
37
+ return type && icon.TypeComponentsMap[props.type] ? ns.m(type) : "";
38
+ });
39
+ const iconComponent = vue.computed(() => {
40
+ if (!props.type)
41
+ return props.icon;
42
+ return icon.TypeComponentsMap[props.type] || props.icon;
43
+ });
44
+ const horizontalClass = vue.computed(() => props.position.endsWith("right") ? "right" : "left");
45
+ const verticalProperty = vue.computed(() => props.position.startsWith("top") ? "top" : "bottom");
46
+ const positionStyle = vue.computed(() => {
47
+ var _a;
48
+ return {
49
+ [verticalProperty.value]: `${props.offset}px`,
50
+ zIndex: (_a = props.zIndex) != null ? _a : currentZIndex.value
51
+ };
52
+ });
53
+ function startTimer() {
54
+ if (props.duration > 0) {
55
+ ;
56
+ ({ stop: timer } = core.useTimeoutFn(() => {
57
+ if (visible.value)
58
+ close();
59
+ }, props.duration));
60
+ }
61
+ }
62
+ function clearTimer() {
63
+ timer == null ? void 0 : timer();
64
+ }
65
+ function close() {
66
+ visible.value = false;
67
+ }
68
+ function onKeydown({ code }) {
69
+ if (code === aria.EVENT_CODE.delete || code === aria.EVENT_CODE.backspace) {
70
+ clearTimer();
71
+ } else if (code === aria.EVENT_CODE.esc) {
72
+ if (visible.value) {
73
+ close();
74
+ }
75
+ } else {
76
+ startTimer();
77
+ }
78
+ }
79
+ vue.onMounted(() => {
80
+ startTimer();
81
+ nextZIndex();
82
+ visible.value = true;
83
+ });
84
+ core.useEventListener(document, "keydown", onKeydown);
85
+ expose({
86
+ visible,
87
+ close
88
+ });
89
+ return (_ctx, _cache) => {
90
+ return vue.openBlock(), vue.createBlock(vue.Transition, {
91
+ name: vue.unref(ns).b("fade"),
92
+ onBeforeLeave: _ctx.onClose,
93
+ onAfterLeave: _cache[1] || (_cache[1] = ($event) => _ctx.$emit("destroy")),
94
+ persisted: ""
95
+ }, {
96
+ default: vue.withCtx(() => [
97
+ vue.withDirectives(vue.createElementVNode("div", {
98
+ id: _ctx.id,
99
+ class: vue.normalizeClass([vue.unref(ns).b(), _ctx.customClass, vue.unref(horizontalClass)]),
100
+ style: vue.normalizeStyle(vue.unref(positionStyle)),
101
+ role: "alert",
102
+ onMouseenter: clearTimer,
103
+ onMouseleave: startTimer,
104
+ onClick: _cache[0] || (_cache[0] = (...args) => _ctx.onClick && _ctx.onClick(...args))
105
+ }, [
106
+ vue.unref(iconComponent) ? (vue.openBlock(), vue.createBlock(vue.unref(index.ElIcon), {
107
+ key: 0,
108
+ class: vue.normalizeClass([vue.unref(ns).e("icon"), vue.unref(typeClass)])
109
+ }, {
110
+ default: vue.withCtx(() => [
111
+ (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(vue.unref(iconComponent))))
112
+ ]),
113
+ _: 1
114
+ }, 8, ["class"])) : vue.createCommentVNode("v-if", true),
115
+ vue.createElementVNode("div", {
116
+ class: vue.normalizeClass(vue.unref(ns).e("group"))
117
+ }, [
118
+ vue.createElementVNode("h2", {
119
+ class: vue.normalizeClass(vue.unref(ns).e("title")),
120
+ textContent: vue.toDisplayString(_ctx.title)
121
+ }, null, 10, _hoisted_2),
122
+ vue.withDirectives(vue.createElementVNode("div", {
123
+ class: vue.normalizeClass(vue.unref(ns).e("content")),
124
+ style: vue.normalizeStyle(!!_ctx.title ? void 0 : { margin: 0 })
125
+ }, [
126
+ vue.renderSlot(_ctx.$slots, "default", {}, () => [
127
+ !_ctx.dangerouslyUseHTMLString ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_3, vue.toDisplayString(_ctx.message), 1)) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
128
+ vue.createCommentVNode(" Caution here, message could've been compromised, never use user's input as message "),
129
+ vue.createElementVNode("p", { innerHTML: _ctx.message }, null, 8, _hoisted_4)
130
+ ], 2112))
131
+ ])
132
+ ], 6), [
133
+ [vue.vShow, _ctx.message]
134
+ ]),
135
+ _ctx.showClose ? (vue.openBlock(), vue.createBlock(vue.unref(index.ElIcon), {
136
+ key: 0,
137
+ class: vue.normalizeClass(vue.unref(ns).e("closeBtn")),
138
+ onClick: vue.withModifiers(close, ["stop"])
139
+ }, {
140
+ default: vue.withCtx(() => [
141
+ vue.createVNode(vue.unref(Close))
142
+ ]),
143
+ _: 1
144
+ }, 8, ["class", "onClick"])) : vue.createCommentVNode("v-if", true)
145
+ ], 2)
146
+ ], 46, _hoisted_1), [
147
+ [vue.vShow, visible.value]
148
+ ])
149
+ ]),
150
+ _: 3
151
+ }, 8, ["name", "onBeforeLeave"]);
152
+ };
153
+ }
154
+ });
155
+ var NotificationConstructor = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "notification.vue"]]);
74
156
 
75
- exports.notificationEmits = notificationEmits;
76
- exports.notificationProps = notificationProps;
77
- exports.notificationTypes = notificationTypes;
157
+ exports["default"] = NotificationConstructor;
78
158
  //# sourceMappingURL=notification.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"notification.js","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: Number,\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":["buildProps","iconPropType","definePropType"],"mappings":";;;;;;;;AACY,MAAC,iBAAiB,GAAG;AACjC,EAAE,SAAS;AACX,EAAE,MAAM;AACR,EAAE,SAAS;AACX,EAAE,OAAO;AACT,EAAE;AACU,MAAC,iBAAiB,GAAGA,kBAAU,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,EAAEC,iBAAY;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,EAAEC,sBAAc,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,EAAEA,sBAAc,CAAC,QAAQ,CAAC;AAClC,IAAI,OAAO,EAAE,MAAM,KAAK,CAAC;AACzB,GAAG;AACH,EAAE,OAAO,EAAE;AACX,IAAI,IAAI,EAAEA,sBAAc,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,MAAM;AAChB,CAAC,EAAE;AACS,MAAC,iBAAiB,GAAG;AACjC,EAAE,OAAO,EAAE,MAAM,IAAI;AACrB;;;;;;"}
1
+ {"version":3,"file":"notification.js","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: props.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":["useGlobalComponentSettings","CloseComponents","ref","computed","TypeComponentsMap","useTimeoutFn","EVENT_CODE","onMounted","useEventListener"],"mappings":"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"}
@@ -2,157 +2,77 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var vue = require('vue');
6
- var core = require('@vueuse/core');
7
5
  require('../../../utils/index.js');
8
- require('../../../constants/index.js');
9
- var index = require('../../icon/index.js');
10
- require('../../config-provider/index.js');
11
- var notification = require('./notification.js');
12
- var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js');
13
- var useGlobalConfig = require('../../config-provider/src/hooks/use-global-config.js');
6
+ var runtime = require('../../../utils/vue/props/runtime.js');
14
7
  var icon = require('../../../utils/vue/icon.js');
15
- var aria = require('../../../constants/aria.js');
16
8
 
17
- const _hoisted_1 = ["id"];
18
- const _hoisted_2 = ["textContent"];
19
- const _hoisted_3 = { key: 0 };
20
- const _hoisted_4 = ["innerHTML"];
21
- const __default__ = vue.defineComponent({
22
- name: "ElNotification"
9
+ const notificationTypes = [
10
+ "success",
11
+ "info",
12
+ "warning",
13
+ "error"
14
+ ];
15
+ const notificationProps = runtime.buildProps({
16
+ customClass: {
17
+ type: String,
18
+ default: ""
19
+ },
20
+ dangerouslyUseHTMLString: {
21
+ type: Boolean,
22
+ default: false
23
+ },
24
+ duration: {
25
+ type: Number,
26
+ default: 4500
27
+ },
28
+ icon: {
29
+ type: icon.iconPropType
30
+ },
31
+ id: {
32
+ type: String,
33
+ default: ""
34
+ },
35
+ message: {
36
+ type: runtime.definePropType([String, Object]),
37
+ default: ""
38
+ },
39
+ offset: {
40
+ type: Number,
41
+ default: 0
42
+ },
43
+ onClick: {
44
+ type: runtime.definePropType(Function),
45
+ default: () => void 0
46
+ },
47
+ onClose: {
48
+ type: runtime.definePropType(Function),
49
+ required: true
50
+ },
51
+ position: {
52
+ type: String,
53
+ values: ["top-right", "top-left", "bottom-right", "bottom-left"],
54
+ default: "top-right"
55
+ },
56
+ showClose: {
57
+ type: Boolean,
58
+ default: true
59
+ },
60
+ title: {
61
+ type: String,
62
+ default: ""
63
+ },
64
+ type: {
65
+ type: String,
66
+ values: [...notificationTypes, ""],
67
+ default: ""
68
+ },
69
+ zIndex: Number
23
70
  });
24
- const _sfc_main = /* @__PURE__ */ vue.defineComponent({
25
- ...__default__,
26
- props: notification.notificationProps,
27
- emits: notification.notificationEmits,
28
- setup(__props, { expose }) {
29
- const props = __props;
30
- const { ns, zIndex } = useGlobalConfig.useGlobalComponentSettings("notification");
31
- const { nextZIndex, currentZIndex } = zIndex;
32
- const { Close } = icon.CloseComponents;
33
- const visible = vue.ref(false);
34
- let timer = void 0;
35
- const typeClass = vue.computed(() => {
36
- const type = props.type;
37
- return type && icon.TypeComponentsMap[props.type] ? ns.m(type) : "";
38
- });
39
- const iconComponent = vue.computed(() => {
40
- if (!props.type)
41
- return props.icon;
42
- return icon.TypeComponentsMap[props.type] || props.icon;
43
- });
44
- const horizontalClass = vue.computed(() => props.position.endsWith("right") ? "right" : "left");
45
- const verticalProperty = vue.computed(() => props.position.startsWith("top") ? "top" : "bottom");
46
- const positionStyle = vue.computed(() => {
47
- var _a;
48
- return {
49
- [verticalProperty.value]: `${props.offset}px`,
50
- zIndex: (_a = props.zIndex) != null ? _a : currentZIndex.value
51
- };
52
- });
53
- function startTimer() {
54
- if (props.duration > 0) {
55
- ;
56
- ({ stop: timer } = core.useTimeoutFn(() => {
57
- if (visible.value)
58
- close();
59
- }, props.duration));
60
- }
61
- }
62
- function clearTimer() {
63
- timer == null ? void 0 : timer();
64
- }
65
- function close() {
66
- visible.value = false;
67
- }
68
- function onKeydown({ code }) {
69
- if (code === aria.EVENT_CODE.delete || code === aria.EVENT_CODE.backspace) {
70
- clearTimer();
71
- } else if (code === aria.EVENT_CODE.esc) {
72
- if (visible.value) {
73
- close();
74
- }
75
- } else {
76
- startTimer();
77
- }
78
- }
79
- vue.onMounted(() => {
80
- startTimer();
81
- nextZIndex();
82
- visible.value = true;
83
- });
84
- core.useEventListener(document, "keydown", onKeydown);
85
- expose({
86
- visible,
87
- close
88
- });
89
- return (_ctx, _cache) => {
90
- return vue.openBlock(), vue.createBlock(vue.Transition, {
91
- name: vue.unref(ns).b("fade"),
92
- onBeforeLeave: _ctx.onClose,
93
- onAfterLeave: _cache[1] || (_cache[1] = ($event) => _ctx.$emit("destroy")),
94
- persisted: ""
95
- }, {
96
- default: vue.withCtx(() => [
97
- vue.withDirectives(vue.createElementVNode("div", {
98
- id: _ctx.id,
99
- class: vue.normalizeClass([vue.unref(ns).b(), _ctx.customClass, vue.unref(horizontalClass)]),
100
- style: vue.normalizeStyle(vue.unref(positionStyle)),
101
- role: "alert",
102
- onMouseenter: clearTimer,
103
- onMouseleave: startTimer,
104
- onClick: _cache[0] || (_cache[0] = (...args) => _ctx.onClick && _ctx.onClick(...args))
105
- }, [
106
- vue.unref(iconComponent) ? (vue.openBlock(), vue.createBlock(vue.unref(index.ElIcon), {
107
- key: 0,
108
- class: vue.normalizeClass([vue.unref(ns).e("icon"), vue.unref(typeClass)])
109
- }, {
110
- default: vue.withCtx(() => [
111
- (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(vue.unref(iconComponent))))
112
- ]),
113
- _: 1
114
- }, 8, ["class"])) : vue.createCommentVNode("v-if", true),
115
- vue.createElementVNode("div", {
116
- class: vue.normalizeClass(vue.unref(ns).e("group"))
117
- }, [
118
- vue.createElementVNode("h2", {
119
- class: vue.normalizeClass(vue.unref(ns).e("title")),
120
- textContent: vue.toDisplayString(_ctx.title)
121
- }, null, 10, _hoisted_2),
122
- vue.withDirectives(vue.createElementVNode("div", {
123
- class: vue.normalizeClass(vue.unref(ns).e("content")),
124
- style: vue.normalizeStyle(!!_ctx.title ? void 0 : { margin: 0 })
125
- }, [
126
- vue.renderSlot(_ctx.$slots, "default", {}, () => [
127
- !_ctx.dangerouslyUseHTMLString ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_3, vue.toDisplayString(_ctx.message), 1)) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
128
- vue.createCommentVNode(" Caution here, message could've been compromised, never use user's input as message "),
129
- vue.createElementVNode("p", { innerHTML: _ctx.message }, null, 8, _hoisted_4)
130
- ], 2112))
131
- ])
132
- ], 6), [
133
- [vue.vShow, _ctx.message]
134
- ]),
135
- _ctx.showClose ? (vue.openBlock(), vue.createBlock(vue.unref(index.ElIcon), {
136
- key: 0,
137
- class: vue.normalizeClass(vue.unref(ns).e("closeBtn")),
138
- onClick: vue.withModifiers(close, ["stop"])
139
- }, {
140
- default: vue.withCtx(() => [
141
- vue.createVNode(vue.unref(Close))
142
- ]),
143
- _: 1
144
- }, 8, ["class", "onClick"])) : vue.createCommentVNode("v-if", true)
145
- ], 2)
146
- ], 46, _hoisted_1), [
147
- [vue.vShow, visible.value]
148
- ])
149
- ]),
150
- _: 3
151
- }, 8, ["name", "onBeforeLeave"]);
152
- };
153
- }
154
- });
155
- var NotificationConstructor = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "notification.vue"]]);
71
+ const notificationEmits = {
72
+ destroy: () => true
73
+ };
156
74
 
157
- exports["default"] = NotificationConstructor;
75
+ exports.notificationEmits = notificationEmits;
76
+ exports.notificationProps = notificationProps;
77
+ exports.notificationTypes = notificationTypes;
158
78
  //# sourceMappingURL=notification2.js.map