@element-plus/nightly 0.0.20220722 → 0.0.20220723

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 (278) hide show
  1. package/dist/index.full.js +2 -2
  2. package/dist/index.full.min.js +2 -2
  3. package/dist/index.full.min.js.map +1 -1
  4. package/dist/index.full.min.mjs +2 -2
  5. package/dist/index.full.min.mjs.map +1 -1
  6. package/dist/index.full.mjs +2 -2
  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/cs.js +1 -1
  32. package/dist/locale/cs.min.js +1 -1
  33. package/dist/locale/cs.min.mjs +1 -1
  34. package/dist/locale/cs.mjs +1 -1
  35. package/dist/locale/da.js +1 -1
  36. package/dist/locale/da.min.js +1 -1
  37. package/dist/locale/da.min.mjs +1 -1
  38. package/dist/locale/da.mjs +1 -1
  39. package/dist/locale/de.js +1 -1
  40. package/dist/locale/de.min.js +1 -1
  41. package/dist/locale/de.min.mjs +1 -1
  42. package/dist/locale/de.mjs +1 -1
  43. package/dist/locale/el.js +1 -1
  44. package/dist/locale/el.min.js +1 -1
  45. package/dist/locale/el.min.mjs +1 -1
  46. package/dist/locale/el.mjs +1 -1
  47. package/dist/locale/en.js +1 -1
  48. package/dist/locale/en.min.js +1 -1
  49. package/dist/locale/en.min.mjs +1 -1
  50. package/dist/locale/en.mjs +1 -1
  51. package/dist/locale/eo.js +1 -1
  52. package/dist/locale/eo.min.js +1 -1
  53. package/dist/locale/eo.min.mjs +1 -1
  54. package/dist/locale/eo.mjs +1 -1
  55. package/dist/locale/es.js +1 -1
  56. package/dist/locale/es.min.js +1 -1
  57. package/dist/locale/es.min.mjs +1 -1
  58. package/dist/locale/es.mjs +1 -1
  59. package/dist/locale/et.js +1 -1
  60. package/dist/locale/et.min.js +1 -1
  61. package/dist/locale/et.min.mjs +1 -1
  62. package/dist/locale/et.mjs +1 -1
  63. package/dist/locale/eu.js +1 -1
  64. package/dist/locale/eu.min.js +1 -1
  65. package/dist/locale/eu.min.mjs +1 -1
  66. package/dist/locale/eu.mjs +1 -1
  67. package/dist/locale/fa.js +1 -1
  68. package/dist/locale/fa.min.js +1 -1
  69. package/dist/locale/fa.min.mjs +1 -1
  70. package/dist/locale/fa.mjs +1 -1
  71. package/dist/locale/fi.js +1 -1
  72. package/dist/locale/fi.min.js +1 -1
  73. package/dist/locale/fi.min.mjs +1 -1
  74. package/dist/locale/fi.mjs +1 -1
  75. package/dist/locale/fr.js +1 -1
  76. package/dist/locale/fr.min.js +1 -1
  77. package/dist/locale/fr.min.mjs +1 -1
  78. package/dist/locale/fr.mjs +1 -1
  79. package/dist/locale/he.js +1 -1
  80. package/dist/locale/he.min.js +1 -1
  81. package/dist/locale/he.min.mjs +1 -1
  82. package/dist/locale/he.mjs +1 -1
  83. package/dist/locale/hr.js +1 -1
  84. package/dist/locale/hr.min.js +1 -1
  85. package/dist/locale/hr.min.mjs +1 -1
  86. package/dist/locale/hr.mjs +1 -1
  87. package/dist/locale/hu.js +1 -1
  88. package/dist/locale/hu.min.js +1 -1
  89. package/dist/locale/hu.min.mjs +1 -1
  90. package/dist/locale/hu.mjs +1 -1
  91. package/dist/locale/hy-am.js +1 -1
  92. package/dist/locale/hy-am.min.js +1 -1
  93. package/dist/locale/hy-am.min.mjs +1 -1
  94. package/dist/locale/hy-am.mjs +1 -1
  95. package/dist/locale/id.js +1 -1
  96. package/dist/locale/id.min.js +1 -1
  97. package/dist/locale/id.min.mjs +1 -1
  98. package/dist/locale/id.mjs +1 -1
  99. package/dist/locale/it.js +1 -1
  100. package/dist/locale/it.min.js +1 -1
  101. package/dist/locale/it.min.mjs +1 -1
  102. package/dist/locale/it.mjs +1 -1
  103. package/dist/locale/ja.js +1 -1
  104. package/dist/locale/ja.min.js +1 -1
  105. package/dist/locale/ja.min.mjs +1 -1
  106. package/dist/locale/ja.mjs +1 -1
  107. package/dist/locale/kk.js +1 -1
  108. package/dist/locale/kk.min.js +1 -1
  109. package/dist/locale/kk.min.mjs +1 -1
  110. package/dist/locale/kk.mjs +1 -1
  111. package/dist/locale/km.js +1 -1
  112. package/dist/locale/km.min.js +1 -1
  113. package/dist/locale/km.min.mjs +1 -1
  114. package/dist/locale/km.mjs +1 -1
  115. package/dist/locale/ko.js +1 -1
  116. package/dist/locale/ko.min.js +1 -1
  117. package/dist/locale/ko.min.mjs +1 -1
  118. package/dist/locale/ko.mjs +1 -1
  119. package/dist/locale/ku.js +1 -1
  120. package/dist/locale/ku.min.js +1 -1
  121. package/dist/locale/ku.min.mjs +1 -1
  122. package/dist/locale/ku.mjs +1 -1
  123. package/dist/locale/ky.js +1 -1
  124. package/dist/locale/ky.min.js +1 -1
  125. package/dist/locale/ky.min.mjs +1 -1
  126. package/dist/locale/ky.mjs +1 -1
  127. package/dist/locale/lt.js +1 -1
  128. package/dist/locale/lt.min.js +1 -1
  129. package/dist/locale/lt.min.mjs +1 -1
  130. package/dist/locale/lt.mjs +1 -1
  131. package/dist/locale/lv.js +1 -1
  132. package/dist/locale/lv.min.js +1 -1
  133. package/dist/locale/lv.min.mjs +1 -1
  134. package/dist/locale/lv.mjs +1 -1
  135. package/dist/locale/mg.js +1 -1
  136. package/dist/locale/mg.min.js +1 -1
  137. package/dist/locale/mg.min.mjs +1 -1
  138. package/dist/locale/mg.mjs +1 -1
  139. package/dist/locale/mn.js +1 -1
  140. package/dist/locale/mn.min.js +1 -1
  141. package/dist/locale/mn.min.mjs +1 -1
  142. package/dist/locale/mn.mjs +1 -1
  143. package/dist/locale/nb-no.js +1 -1
  144. package/dist/locale/nb-no.min.js +1 -1
  145. package/dist/locale/nb-no.min.mjs +1 -1
  146. package/dist/locale/nb-no.mjs +1 -1
  147. package/dist/locale/nl.js +1 -1
  148. package/dist/locale/nl.min.js +1 -1
  149. package/dist/locale/nl.min.mjs +1 -1
  150. package/dist/locale/nl.mjs +1 -1
  151. package/dist/locale/pa.js +1 -1
  152. package/dist/locale/pa.min.js +1 -1
  153. package/dist/locale/pa.min.mjs +1 -1
  154. package/dist/locale/pa.mjs +1 -1
  155. package/dist/locale/pl.js +1 -1
  156. package/dist/locale/pl.min.js +1 -1
  157. package/dist/locale/pl.min.mjs +1 -1
  158. package/dist/locale/pl.mjs +1 -1
  159. package/dist/locale/pt-br.js +1 -1
  160. package/dist/locale/pt-br.min.js +1 -1
  161. package/dist/locale/pt-br.min.mjs +1 -1
  162. package/dist/locale/pt-br.mjs +1 -1
  163. package/dist/locale/pt.js +1 -1
  164. package/dist/locale/pt.min.js +1 -1
  165. package/dist/locale/pt.min.mjs +1 -1
  166. package/dist/locale/pt.mjs +1 -1
  167. package/dist/locale/ro.js +1 -1
  168. package/dist/locale/ro.min.js +1 -1
  169. package/dist/locale/ro.min.mjs +1 -1
  170. package/dist/locale/ro.mjs +1 -1
  171. package/dist/locale/ru.js +1 -1
  172. package/dist/locale/ru.min.js +1 -1
  173. package/dist/locale/ru.min.mjs +1 -1
  174. package/dist/locale/ru.mjs +1 -1
  175. package/dist/locale/sk.js +1 -1
  176. package/dist/locale/sk.min.js +1 -1
  177. package/dist/locale/sk.min.mjs +1 -1
  178. package/dist/locale/sk.mjs +1 -1
  179. package/dist/locale/sl.js +1 -1
  180. package/dist/locale/sl.min.js +1 -1
  181. package/dist/locale/sl.min.mjs +1 -1
  182. package/dist/locale/sl.mjs +1 -1
  183. package/dist/locale/sr.js +1 -1
  184. package/dist/locale/sr.min.js +1 -1
  185. package/dist/locale/sr.min.mjs +1 -1
  186. package/dist/locale/sr.mjs +1 -1
  187. package/dist/locale/sv.js +1 -1
  188. package/dist/locale/sv.min.js +1 -1
  189. package/dist/locale/sv.min.mjs +1 -1
  190. package/dist/locale/sv.mjs +1 -1
  191. package/dist/locale/ta.js +1 -1
  192. package/dist/locale/ta.min.js +1 -1
  193. package/dist/locale/ta.min.mjs +1 -1
  194. package/dist/locale/ta.mjs +1 -1
  195. package/dist/locale/th.js +1 -1
  196. package/dist/locale/th.min.js +1 -1
  197. package/dist/locale/th.min.mjs +1 -1
  198. package/dist/locale/th.mjs +1 -1
  199. package/dist/locale/tk.js +1 -1
  200. package/dist/locale/tk.min.js +1 -1
  201. package/dist/locale/tk.min.mjs +1 -1
  202. package/dist/locale/tk.mjs +1 -1
  203. package/dist/locale/tr.js +1 -1
  204. package/dist/locale/tr.min.js +1 -1
  205. package/dist/locale/tr.min.mjs +1 -1
  206. package/dist/locale/tr.mjs +1 -1
  207. package/dist/locale/ug-cn.js +1 -1
  208. package/dist/locale/ug-cn.min.js +1 -1
  209. package/dist/locale/ug-cn.min.mjs +1 -1
  210. package/dist/locale/ug-cn.mjs +1 -1
  211. package/dist/locale/uk.js +1 -1
  212. package/dist/locale/uk.min.js +1 -1
  213. package/dist/locale/uk.min.mjs +1 -1
  214. package/dist/locale/uk.mjs +1 -1
  215. package/dist/locale/uz-uz.js +1 -1
  216. package/dist/locale/uz-uz.min.js +1 -1
  217. package/dist/locale/uz-uz.min.mjs +1 -1
  218. package/dist/locale/uz-uz.mjs +1 -1
  219. package/dist/locale/vi.js +1 -1
  220. package/dist/locale/vi.min.js +1 -1
  221. package/dist/locale/vi.min.mjs +1 -1
  222. package/dist/locale/vi.mjs +1 -1
  223. package/dist/locale/zh-cn.js +1 -1
  224. package/dist/locale/zh-cn.min.js +1 -1
  225. package/dist/locale/zh-cn.min.mjs +1 -1
  226. package/dist/locale/zh-cn.mjs +1 -1
  227. package/dist/locale/zh-tw.js +1 -1
  228. package/dist/locale/zh-tw.min.js +1 -1
  229. package/dist/locale/zh-tw.min.mjs +1 -1
  230. package/dist/locale/zh-tw.mjs +1 -1
  231. package/es/components/calendar/index.mjs +2 -2
  232. package/es/components/calendar/src/calendar.mjs +16 -230
  233. package/es/components/calendar/src/calendar.mjs.map +1 -1
  234. package/es/components/calendar/src/calendar2.mjs +230 -16
  235. package/es/components/calendar/src/calendar2.mjs.map +1 -1
  236. package/es/components/index.mjs +4 -4
  237. package/es/components/message/index.mjs +1 -1
  238. package/es/components/message/src/message.mjs +147 -87
  239. package/es/components/message/src/message.mjs.map +1 -1
  240. package/es/components/message/src/message2.mjs +87 -147
  241. package/es/components/message/src/message2.mjs.map +1 -1
  242. package/es/components/message/src/method.mjs +2 -2
  243. package/es/components/popper/index.mjs +2 -2
  244. package/es/components/popper/src/content.mjs +87 -207
  245. package/es/components/popper/src/content.mjs.map +1 -1
  246. package/es/components/popper/src/content2.mjs +207 -87
  247. package/es/components/popper/src/content2.mjs.map +1 -1
  248. package/es/components/tooltip/src/content.mjs +1 -1
  249. package/es/components/tooltip/src/tooltip.mjs +1 -1
  250. package/es/index.mjs +4 -4
  251. package/es/version.d.ts +1 -1
  252. package/es/version.mjs +1 -1
  253. package/es/version.mjs.map +1 -1
  254. package/lib/components/calendar/index.js +2 -2
  255. package/lib/components/calendar/src/calendar.js +16 -233
  256. package/lib/components/calendar/src/calendar.js.map +1 -1
  257. package/lib/components/calendar/src/calendar2.js +233 -16
  258. package/lib/components/calendar/src/calendar2.js.map +1 -1
  259. package/lib/components/index.js +4 -4
  260. package/lib/components/message/index.js +1 -1
  261. package/lib/components/message/src/message.js +145 -88
  262. package/lib/components/message/src/message.js.map +1 -1
  263. package/lib/components/message/src/message2.js +88 -145
  264. package/lib/components/message/src/message2.js.map +1 -1
  265. package/lib/components/message/src/method.js +2 -2
  266. package/lib/components/popper/index.js +2 -2
  267. package/lib/components/popper/src/content.js +88 -206
  268. package/lib/components/popper/src/content.js.map +1 -1
  269. package/lib/components/popper/src/content2.js +206 -88
  270. package/lib/components/popper/src/content2.js.map +1 -1
  271. package/lib/components/tooltip/src/content.js +1 -1
  272. package/lib/components/tooltip/src/tooltip.js +1 -1
  273. package/lib/index.js +4 -4
  274. package/lib/version.d.ts +1 -1
  275. package/lib/version.js +1 -1
  276. package/lib/version.js.map +1 -1
  277. package/package.json +2 -2
  278. package/web-types.json +1 -1
@@ -2,27 +2,244 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ var vue = require('vue');
6
+ var dayjs = require('dayjs');
7
+ var index$2 = require('../../button/index.js');
8
+ require('../../../hooks/index.js');
5
9
  require('../../../utils/index.js');
6
10
  require('../../../constants/index.js');
7
- var shared = require('@vue/shared');
8
- var runtime = require('../../../utils/vue/props/runtime.js');
11
+ var dateTable = require('./date-table2.js');
12
+ var calendar = require('./calendar.js');
13
+ var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js');
14
+ var index = require('../../../hooks/use-namespace/index.js');
15
+ var index$1 = require('../../../hooks/use-locale/index.js');
9
16
  var event = require('../../../constants/event.js');
17
+ var error = require('../../../utils/error.js');
10
18
 
11
- const isValidRange = (range) => shared.isArray(range) && range.length === 2 && range.every((item) => shared.isDate(item));
12
- const calendarProps = runtime.buildProps({
13
- modelValue: {
14
- type: Date
15
- },
16
- range: {
17
- type: runtime.definePropType(Array),
18
- validator: isValidRange
19
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
20
+
21
+ var dayjs__default = /*#__PURE__*/_interopDefaultLegacy(dayjs);
22
+
23
+ const __default__ = {
24
+ name: "ElCalendar"
25
+ };
26
+ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
27
+ ...__default__,
28
+ props: calendar.calendarProps,
29
+ emits: calendar.calendarEmits,
30
+ setup(__props, { expose, emit }) {
31
+ const props = __props;
32
+ const COMPONENT_NAME = "ElCalendar";
33
+ const ns = index.useNamespace("calendar");
34
+ const { t, lang } = index$1.useLocale();
35
+ const selectedDay = vue.ref();
36
+ const now = dayjs__default["default"]().locale(lang.value);
37
+ const realSelectedDay = vue.computed({
38
+ get() {
39
+ if (!props.modelValue)
40
+ return selectedDay.value;
41
+ return date.value;
42
+ },
43
+ set(val) {
44
+ if (!val)
45
+ return;
46
+ selectedDay.value = val;
47
+ const result = val.toDate();
48
+ emit(event.INPUT_EVENT, result);
49
+ emit(event.UPDATE_MODEL_EVENT, result);
50
+ }
51
+ });
52
+ const validatedRange = vue.computed(() => {
53
+ if (!props.range)
54
+ return [];
55
+ const rangeArrDayjs = props.range.map((_) => dayjs__default["default"](_).locale(lang.value));
56
+ const [startDayjs, endDayjs] = rangeArrDayjs;
57
+ if (startDayjs.isAfter(endDayjs)) {
58
+ error.debugWarn(COMPONENT_NAME, "end time should be greater than start time");
59
+ return [];
60
+ }
61
+ if (startDayjs.isSame(endDayjs, "month")) {
62
+ return calculateValidatedDateRange(startDayjs, endDayjs);
63
+ } else {
64
+ if (startDayjs.add(1, "month").month() !== endDayjs.month()) {
65
+ error.debugWarn(COMPONENT_NAME, "start time and end time interval must not exceed two months");
66
+ return [];
67
+ }
68
+ return calculateValidatedDateRange(startDayjs, endDayjs);
69
+ }
70
+ });
71
+ const date = vue.computed(() => {
72
+ if (!props.modelValue) {
73
+ if (realSelectedDay.value) {
74
+ return realSelectedDay.value;
75
+ } else if (validatedRange.value.length) {
76
+ return validatedRange.value[0][0];
77
+ }
78
+ return now;
79
+ } else {
80
+ return dayjs__default["default"](props.modelValue).locale(lang.value);
81
+ }
82
+ });
83
+ const prevMonthDayjs = vue.computed(() => date.value.subtract(1, "month").date(1));
84
+ const nextMonthDayjs = vue.computed(() => date.value.add(1, "month").date(1));
85
+ const prevYearDayjs = vue.computed(() => date.value.subtract(1, "year").date(1));
86
+ const nextYearDayjs = vue.computed(() => date.value.add(1, "year").date(1));
87
+ const i18nDate = vue.computed(() => {
88
+ const pickedMonth = `el.datepicker.month${date.value.format("M")}`;
89
+ return `${date.value.year()} ${t("el.datepicker.year")} ${t(pickedMonth)}`;
90
+ });
91
+ const calculateValidatedDateRange = (startDayjs, endDayjs) => {
92
+ const firstDay = startDayjs.startOf("week");
93
+ const lastDay = endDayjs.endOf("week");
94
+ const firstMonth = firstDay.get("month");
95
+ const lastMonth = lastDay.get("month");
96
+ if (firstMonth === lastMonth) {
97
+ return [[firstDay, lastDay]];
98
+ } else if (firstMonth + 1 === lastMonth) {
99
+ const firstMonthLastDay = firstDay.endOf("month");
100
+ const lastMonthFirstDay = lastDay.startOf("month");
101
+ const isSameWeek = firstMonthLastDay.isSame(lastMonthFirstDay, "week");
102
+ const lastMonthStartDay = isSameWeek ? lastMonthFirstDay.add(1, "week") : lastMonthFirstDay;
103
+ return [
104
+ [firstDay, firstMonthLastDay],
105
+ [lastMonthStartDay.startOf("week"), lastDay]
106
+ ];
107
+ } else if (firstMonth + 2 === lastMonth || (firstMonth + 1) % 11 === lastMonth) {
108
+ const firstMonthLastDay = firstDay.endOf("month");
109
+ const secondMonthFirstDay = firstDay.add(1, "month").startOf("month");
110
+ const secondMonthStartDay = firstMonthLastDay.isSame(secondMonthFirstDay, "week") ? secondMonthFirstDay.add(1, "week") : secondMonthFirstDay;
111
+ const secondMonthLastDay = secondMonthStartDay.endOf("month");
112
+ const lastMonthFirstDay = lastDay.startOf("month");
113
+ const lastMonthStartDay = secondMonthLastDay.isSame(lastMonthFirstDay, "week") ? lastMonthFirstDay.add(1, "week") : lastMonthFirstDay;
114
+ return [
115
+ [firstDay, firstMonthLastDay],
116
+ [secondMonthStartDay.startOf("week"), secondMonthLastDay],
117
+ [lastMonthStartDay.startOf("week"), lastDay]
118
+ ];
119
+ } else {
120
+ error.debugWarn(COMPONENT_NAME, "start time and end time interval must not exceed two months");
121
+ return [];
122
+ }
123
+ };
124
+ const pickDay = (day) => {
125
+ realSelectedDay.value = day;
126
+ };
127
+ const selectDate = (type) => {
128
+ let day;
129
+ if (type === "prev-month") {
130
+ day = prevMonthDayjs.value;
131
+ } else if (type === "next-month") {
132
+ day = nextMonthDayjs.value;
133
+ } else if (type === "prev-year") {
134
+ day = prevYearDayjs.value;
135
+ } else if (type === "next-year") {
136
+ day = nextYearDayjs.value;
137
+ } else {
138
+ day = now;
139
+ }
140
+ if (day.isSame(date.value, "day"))
141
+ return;
142
+ pickDay(day);
143
+ };
144
+ expose({
145
+ selectedDay: realSelectedDay,
146
+ pickDay,
147
+ selectDate,
148
+ calculateValidatedDateRange
149
+ });
150
+ return (_ctx, _cache) => {
151
+ return vue.openBlock(), vue.createElementBlock("div", {
152
+ class: vue.normalizeClass(vue.unref(ns).b())
153
+ }, [
154
+ vue.createElementVNode("div", {
155
+ class: vue.normalizeClass(vue.unref(ns).e("header"))
156
+ }, [
157
+ vue.renderSlot(_ctx.$slots, "header", { date: vue.unref(i18nDate) }, () => [
158
+ vue.createElementVNode("div", {
159
+ class: vue.normalizeClass(vue.unref(ns).e("title"))
160
+ }, vue.toDisplayString(vue.unref(i18nDate)), 3),
161
+ vue.unref(validatedRange).length === 0 ? (vue.openBlock(), vue.createElementBlock("div", {
162
+ key: 0,
163
+ class: vue.normalizeClass(vue.unref(ns).e("button-group"))
164
+ }, [
165
+ vue.createVNode(vue.unref(index$2.ElButtonGroup), null, {
166
+ default: vue.withCtx(() => [
167
+ vue.createVNode(vue.unref(index$2.ElButton), {
168
+ size: "small",
169
+ onClick: _cache[0] || (_cache[0] = ($event) => selectDate("prev-month"))
170
+ }, {
171
+ default: vue.withCtx(() => [
172
+ vue.createTextVNode(vue.toDisplayString(vue.unref(t)("el.datepicker.prevMonth")), 1)
173
+ ]),
174
+ _: 1
175
+ }),
176
+ vue.createVNode(vue.unref(index$2.ElButton), {
177
+ size: "small",
178
+ onClick: _cache[1] || (_cache[1] = ($event) => selectDate("today"))
179
+ }, {
180
+ default: vue.withCtx(() => [
181
+ vue.createTextVNode(vue.toDisplayString(vue.unref(t)("el.datepicker.today")), 1)
182
+ ]),
183
+ _: 1
184
+ }),
185
+ vue.createVNode(vue.unref(index$2.ElButton), {
186
+ size: "small",
187
+ onClick: _cache[2] || (_cache[2] = ($event) => selectDate("next-month"))
188
+ }, {
189
+ default: vue.withCtx(() => [
190
+ vue.createTextVNode(vue.toDisplayString(vue.unref(t)("el.datepicker.nextMonth")), 1)
191
+ ]),
192
+ _: 1
193
+ })
194
+ ]),
195
+ _: 1
196
+ })
197
+ ], 2)) : vue.createCommentVNode("v-if", true)
198
+ ])
199
+ ], 2),
200
+ vue.unref(validatedRange).length === 0 ? (vue.openBlock(), vue.createElementBlock("div", {
201
+ key: 0,
202
+ class: vue.normalizeClass(vue.unref(ns).e("body"))
203
+ }, [
204
+ vue.createVNode(dateTable["default"], {
205
+ date: vue.unref(date),
206
+ "selected-day": vue.unref(realSelectedDay),
207
+ onPick: pickDay
208
+ }, vue.createSlots({ _: 2 }, [
209
+ _ctx.$slots.dateCell ? {
210
+ name: "dateCell",
211
+ fn: vue.withCtx((data) => [
212
+ vue.renderSlot(_ctx.$slots, "dateCell", vue.normalizeProps(vue.guardReactiveProps(data)))
213
+ ])
214
+ } : void 0
215
+ ]), 1032, ["date", "selected-day"])
216
+ ], 2)) : (vue.openBlock(), vue.createElementBlock("div", {
217
+ key: 1,
218
+ class: vue.normalizeClass(vue.unref(ns).e("body"))
219
+ }, [
220
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(validatedRange), (range_, index) => {
221
+ return vue.openBlock(), vue.createBlock(dateTable["default"], {
222
+ key: index,
223
+ date: range_[0],
224
+ "selected-day": vue.unref(realSelectedDay),
225
+ range: range_,
226
+ "hide-header": index !== 0,
227
+ onPick: pickDay
228
+ }, vue.createSlots({ _: 2 }, [
229
+ _ctx.$slots.dateCell ? {
230
+ name: "dateCell",
231
+ fn: vue.withCtx((data) => [
232
+ vue.renderSlot(_ctx.$slots, "dateCell", vue.normalizeProps(vue.guardReactiveProps(data)))
233
+ ])
234
+ } : void 0
235
+ ]), 1032, ["date", "selected-day", "range", "hide-header"]);
236
+ }), 128))
237
+ ], 2))
238
+ ], 2);
239
+ };
19
240
  }
20
241
  });
21
- const calendarEmits = {
22
- [event.UPDATE_MODEL_EVENT]: (value) => shared.isDate(value),
23
- [event.INPUT_EVENT]: (value) => shared.isDate(value)
24
- };
242
+ var Calendar = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/calendar/src/calendar.vue"]]);
25
243
 
26
- exports.calendarEmits = calendarEmits;
27
- exports.calendarProps = calendarProps;
244
+ exports["default"] = Calendar;
28
245
  //# sourceMappingURL=calendar2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"calendar2.js","sources":["../../../../../../packages/components/calendar/src/calendar.ts"],"sourcesContent":["import {\n buildProps,\n definePropType,\n isArray,\n isDate,\n} from '@element-plus/utils'\nimport { INPUT_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport type { ExtractPropTypes } from 'vue'\nimport type Calendar from './calendar.vue'\n\nexport type CalendarDateType =\n | 'prev-month'\n | 'next-month'\n | 'prev-year'\n | 'next-year'\n | 'today'\n\nconst isValidRange = (range: unknown): range is [Date, Date] =>\n isArray(range) && range.length === 2 && range.every((item) => isDate(item))\n\nexport const calendarProps = buildProps({\n modelValue: {\n type: Date,\n },\n range: {\n type: definePropType<[Date, Date]>(Array),\n validator: isValidRange,\n },\n} as const)\nexport type CalendarProps = ExtractPropTypes<typeof calendarProps>\n\nexport const calendarEmits = {\n [UPDATE_MODEL_EVENT]: (value: Date) => isDate(value),\n [INPUT_EVENT]: (value: Date) => isDate(value),\n}\nexport type CalendarEmits = typeof calendarEmits\n\nexport type CalendarInstance = InstanceType<typeof Calendar>\n"],"names":["isArray","isDate","buildProps","definePropType","UPDATE_MODEL_EVENT","INPUT_EVENT"],"mappings":";;;;;;;;;;AAOA,MAAM,YAAY,GAAG,CAAC,KAAK,KAAKA,cAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KAAKC,aAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAChG,MAAC,aAAa,GAAGC,kBAAU,CAAC;AACxC,EAAE,UAAU,EAAE;AACd,IAAI,IAAI,EAAE,IAAI;AACd,GAAG;AACH,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAEC,sBAAc,CAAC,KAAK,CAAC;AAC/B,IAAI,SAAS,EAAE,YAAY;AAC3B,GAAG;AACH,CAAC,EAAE;AACS,MAAC,aAAa,GAAG;AAC7B,EAAE,CAACC,wBAAkB,GAAG,CAAC,KAAK,KAAKH,aAAM,CAAC,KAAK,CAAC;AAChD,EAAE,CAACI,iBAAW,GAAG,CAAC,KAAK,KAAKJ,aAAM,CAAC,KAAK,CAAC;AACzC;;;;;"}
1
+ {"version":3,"file":"calendar2.js","sources":["../../../../../../packages/components/calendar/src/calendar.vue"],"sourcesContent":["<template>\n <div :class=\"ns.b()\">\n <div :class=\"ns.e('header')\">\n <slot name=\"header\" :date=\"i18nDate\">\n <div :class=\"ns.e('title')\">{{ i18nDate }}</div>\n <div v-if=\"validatedRange.length === 0\" :class=\"ns.e('button-group')\">\n <el-button-group>\n <el-button size=\"small\" @click=\"selectDate('prev-month')\">\n {{ t('el.datepicker.prevMonth') }}\n </el-button>\n <el-button size=\"small\" @click=\"selectDate('today')\">\n {{ t('el.datepicker.today') }}\n </el-button>\n <el-button size=\"small\" @click=\"selectDate('next-month')\">\n {{ t('el.datepicker.nextMonth') }}\n </el-button>\n </el-button-group>\n </div>\n </slot>\n </div>\n <div v-if=\"validatedRange.length === 0\" :class=\"ns.e('body')\">\n <date-table :date=\"date\" :selected-day=\"realSelectedDay\" @pick=\"pickDay\">\n <template v-if=\"$slots.dateCell\" #dateCell=\"data\">\n <slot name=\"dateCell\" v-bind=\"data\" />\n </template>\n </date-table>\n </div>\n <div v-else :class=\"ns.e('body')\">\n <date-table\n v-for=\"(range_, index) in validatedRange\"\n :key=\"index\"\n :date=\"range_[0]\"\n :selected-day=\"realSelectedDay\"\n :range=\"range_\"\n :hide-header=\"index !== 0\"\n @pick=\"pickDay\"\n >\n <template v-if=\"$slots.dateCell\" #dateCell=\"data\">\n <slot name=\"dateCell\" v-bind=\"data\" />\n </template>\n </date-table>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, ref } from 'vue'\nimport dayjs from 'dayjs'\nimport { ElButton, ElButtonGroup } from '@element-plus/components/button'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { debugWarn } from '@element-plus/utils'\nimport { INPUT_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport DateTable from './date-table.vue'\nimport { calendarEmits, calendarProps } from './calendar'\n\nimport type { CalendarDateType } from './calendar'\nimport type { ComputedRef } from 'vue'\nimport type { Dayjs } from 'dayjs'\n\nconst COMPONENT_NAME = 'ElCalendar'\n\ndefineOptions({\n name: 'ElCalendar',\n})\n\nconst props = defineProps(calendarProps)\nconst emit = defineEmits(calendarEmits)\n\nconst ns = useNamespace('calendar')\nconst { t, lang } = useLocale()\n\nconst selectedDay = ref<Dayjs>()\nconst now = dayjs().locale(lang.value)\n\nconst realSelectedDay = computed<Dayjs | undefined>({\n get() {\n if (!props.modelValue) return selectedDay.value\n return date.value\n },\n set(val) {\n if (!val) return\n selectedDay.value = val\n const result = val.toDate()\n\n emit(INPUT_EVENT, result)\n emit(UPDATE_MODEL_EVENT, result)\n },\n})\n\n// if range is valid, we get a two-digit array\nconst validatedRange = computed(() => {\n if (!props.range) return []\n const rangeArrDayjs = props.range.map((_) => dayjs(_).locale(lang.value))\n const [startDayjs, endDayjs] = rangeArrDayjs\n if (startDayjs.isAfter(endDayjs)) {\n debugWarn(COMPONENT_NAME, 'end time should be greater than start time')\n return []\n }\n if (startDayjs.isSame(endDayjs, 'month')) {\n // same month\n return calculateValidatedDateRange(startDayjs, endDayjs)\n } else {\n // two months\n if (startDayjs.add(1, 'month').month() !== endDayjs.month()) {\n debugWarn(\n COMPONENT_NAME,\n 'start time and end time interval must not exceed two months'\n )\n return []\n }\n return calculateValidatedDateRange(startDayjs, endDayjs)\n }\n})\n\nconst date: ComputedRef<Dayjs> = computed(() => {\n if (!props.modelValue) {\n if (realSelectedDay.value) {\n return realSelectedDay.value\n } else if (validatedRange.value.length) {\n return validatedRange.value[0][0]\n }\n return now\n } else {\n return dayjs(props.modelValue).locale(lang.value)\n }\n})\nconst prevMonthDayjs = computed(() => date.value.subtract(1, 'month').date(1))\nconst nextMonthDayjs = computed(() => date.value.add(1, 'month').date(1))\nconst prevYearDayjs = computed(() => date.value.subtract(1, 'year').date(1))\nconst nextYearDayjs = computed(() => date.value.add(1, 'year').date(1))\n\nconst i18nDate = computed(() => {\n const pickedMonth = `el.datepicker.month${date.value.format('M')}`\n return `${date.value.year()} ${t('el.datepicker.year')} ${t(pickedMonth)}`\n})\n\n// https://github.com/element-plus/element-plus/issues/3155\n// Calculate the validate date range according to the start and end dates\nconst calculateValidatedDateRange = (\n startDayjs: Dayjs,\n endDayjs: Dayjs\n): [Dayjs, Dayjs][] => {\n const firstDay = startDayjs.startOf('week')\n const lastDay = endDayjs.endOf('week')\n const firstMonth = firstDay.get('month')\n const lastMonth = lastDay.get('month')\n\n // Current mouth\n if (firstMonth === lastMonth) {\n return [[firstDay, lastDay]]\n }\n // Two adjacent months\n else if (firstMonth + 1 === lastMonth) {\n const firstMonthLastDay = firstDay.endOf('month')\n const lastMonthFirstDay = lastDay.startOf('month')\n\n // Whether the last day of the first month and the first day of the last month is in the same week\n const isSameWeek = firstMonthLastDay.isSame(lastMonthFirstDay, 'week')\n const lastMonthStartDay = isSameWeek\n ? lastMonthFirstDay.add(1, 'week')\n : lastMonthFirstDay\n\n return [\n [firstDay, firstMonthLastDay],\n [lastMonthStartDay.startOf('week'), lastDay],\n ]\n }\n // Three consecutive months (compatible: 2021-01-30 to 2021-02-28)\n else if (\n firstMonth + 2 === lastMonth ||\n (firstMonth + 1) % 11 === lastMonth\n ) {\n const firstMonthLastDay = firstDay.endOf('month')\n const secondMonthFirstDay = firstDay.add(1, 'month').startOf('month')\n\n // Whether the last day of the first month and the second month is in the same week\n const secondMonthStartDay = firstMonthLastDay.isSame(\n secondMonthFirstDay,\n 'week'\n )\n ? secondMonthFirstDay.add(1, 'week')\n : secondMonthFirstDay\n\n const secondMonthLastDay = secondMonthStartDay.endOf('month')\n const lastMonthFirstDay = lastDay.startOf('month')\n\n // Whether the last day of the second month and the last day of the last month is in the same week\n const lastMonthStartDay = secondMonthLastDay.isSame(\n lastMonthFirstDay,\n 'week'\n )\n ? lastMonthFirstDay.add(1, 'week')\n : lastMonthFirstDay\n\n return [\n [firstDay, firstMonthLastDay],\n [secondMonthStartDay.startOf('week'), secondMonthLastDay],\n [lastMonthStartDay.startOf('week'), lastDay],\n ]\n }\n // Other cases\n else {\n debugWarn(\n COMPONENT_NAME,\n 'start time and end time interval must not exceed two months'\n )\n return []\n }\n}\n\nconst pickDay = (day: Dayjs) => {\n realSelectedDay.value = day\n}\n\nconst selectDate = (type: CalendarDateType) => {\n let day: Dayjs\n if (type === 'prev-month') {\n day = prevMonthDayjs.value\n } else if (type === 'next-month') {\n day = nextMonthDayjs.value\n } else if (type === 'prev-year') {\n day = prevYearDayjs.value\n } else if (type === 'next-year') {\n day = nextYearDayjs.value\n } else {\n day = now\n }\n\n if (day.isSame(date.value, 'day')) return\n pickDay(day)\n}\n\ndefineExpose({\n /** @description currently selected date */\n selectedDay: realSelectedDay,\n /** @description select a specific date */\n pickDay,\n /** @description select date */\n selectDate,\n /** @description Calculate the validate date range according to the start and end dates */\n calculateValidatedDateRange,\n})\n</script>\n"],"names":["useNamespace","useLocale","ref","dayjs","computed","INPUT_EVENT","UPDATE_MODEL_EVENT","debugWarn"],"mappings":"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"}
@@ -85,7 +85,7 @@ var badge = require('./badge/src/badge.js');
85
85
  var breadcrumb = require('./breadcrumb/src/breadcrumb.js');
86
86
  var breadcrumbItem = require('./breadcrumb/src/breadcrumb-item.js');
87
87
  var button = require('./button/src/button.js');
88
- var calendar = require('./calendar/src/calendar2.js');
88
+ var calendar = require('./calendar/src/calendar.js');
89
89
  var card = require('./card/src/card.js');
90
90
  var carousel = require('./carousel/src/carousel.js');
91
91
  var carouselItem = require('./carousel/src/carousel-item.js');
@@ -123,11 +123,11 @@ var pagination = require('./pagination/src/pagination.js');
123
123
  var popconfirm = require('./popconfirm/src/popconfirm.js');
124
124
  var popper = require('./popper/src/popper.js');
125
125
  var trigger$1 = require('./popper/src/trigger.js');
126
- var content$1 = require('./popper/src/content2.js');
126
+ var content$1 = require('./popper/src/content.js');
127
127
  var arrow$1 = require('./popper/src/arrow.js');
128
128
  var arrow = require('./popper/src/arrow2.js');
129
129
  var trigger = require('./popper/src/trigger2.js');
130
- var content = require('./popper/src/content.js');
130
+ var content = require('./popper/src/content2.js');
131
131
  var progress = require('./progress/src/progress.js');
132
132
  var radio = require('./radio/src/radio.js');
133
133
  var radioGroup = require('./radio/src/radio-group.js');
@@ -179,7 +179,7 @@ var dynamicSizeGrid = require('./virtual-list/src/components/dynamic-size-grid.j
179
179
  var props$1 = require('./virtual-list/src/props.js');
180
180
  var directive = require('./loading/src/directive.js');
181
181
  var service = require('./loading/src/service.js');
182
- var message = require('./message/src/message.js');
182
+ var message = require('./message/src/message2.js');
183
183
  var notification = require('./notification/src/notification.js');
184
184
  var popover = require('./popover/src/popover.js');
185
185
 
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  require('../../utils/index.js');
6
6
  var method = require('./src/method.js');
7
- var message = require('./src/message.js');
7
+ var message = require('./src/message2.js');
8
8
  var install = require('../../utils/vue/install.js');
9
9
 
10
10
  const ElMessage = install.withInstallFunction(method["default"], "$message");
@@ -2,99 +2,156 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ var vue = require('vue');
5
6
  var core = require('@vueuse/core');
6
7
  require('../../../utils/index.js');
7
- var typescript = require('../../../utils/typescript.js');
8
- var runtime = require('../../../utils/vue/props/runtime.js');
8
+ require('../../../constants/index.js');
9
+ var index$1 = require('../../badge/index.js');
10
+ var index$2 = require('../../icon/index.js');
11
+ require('../../../hooks/index.js');
12
+ var message = require('./message2.js');
13
+ var instance = require('./instance.js');
14
+ var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js');
9
15
  var icon = require('../../../utils/vue/icon.js');
16
+ var index = require('../../../hooks/use-namespace/index.js');
17
+ var aria = require('../../../constants/aria.js');
10
18
 
11
- const messageTypes = ["success", "info", "warning", "error"];
12
- const messageDefaults = typescript.mutable({
13
- customClass: "",
14
- center: false,
15
- dangerouslyUseHTMLString: false,
16
- duration: 3e3,
17
- icon: "",
18
- id: "",
19
- message: "",
20
- onClose: void 0,
21
- showClose: false,
22
- type: "info",
23
- offset: 16,
24
- zIndex: 0,
25
- grouping: false,
26
- repeatNum: 1,
27
- appendTo: core.isClient ? document.body : void 0
28
- });
29
- const messageProps = runtime.buildProps({
30
- customClass: {
31
- type: String,
32
- default: messageDefaults.customClass
33
- },
34
- center: {
35
- type: Boolean,
36
- default: messageDefaults.center
37
- },
38
- dangerouslyUseHTMLString: {
39
- type: Boolean,
40
- default: messageDefaults.dangerouslyUseHTMLString
41
- },
42
- duration: {
43
- type: Number,
44
- default: messageDefaults.duration
45
- },
46
- icon: {
47
- type: icon.iconPropType,
48
- default: messageDefaults.icon
49
- },
50
- id: {
51
- type: String,
52
- default: messageDefaults.id
53
- },
54
- message: {
55
- type: runtime.definePropType([
56
- String,
57
- Object,
58
- Function
59
- ]),
60
- default: messageDefaults.message
61
- },
62
- onClose: {
63
- type: runtime.definePropType(Function),
64
- required: false
65
- },
66
- showClose: {
67
- type: Boolean,
68
- default: messageDefaults.showClose
69
- },
70
- type: {
71
- type: String,
72
- values: messageTypes,
73
- default: messageDefaults.type
74
- },
75
- offset: {
76
- type: Number,
77
- default: messageDefaults.offset
78
- },
79
- zIndex: {
80
- type: Number,
81
- default: messageDefaults.zIndex
82
- },
83
- grouping: {
84
- type: Boolean,
85
- default: messageDefaults.grouping
86
- },
87
- repeatNum: {
88
- type: Number,
89
- default: messageDefaults.repeatNum
19
+ const _hoisted_1 = ["id"];
20
+ const _hoisted_2 = ["innerHTML"];
21
+ const __default__ = {
22
+ name: "ElMessage"
23
+ };
24
+ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
25
+ ...__default__,
26
+ props: message.messageProps,
27
+ emits: message.messageEmits,
28
+ setup(__props, { expose }) {
29
+ const props = __props;
30
+ const { Close } = icon.TypeComponents;
31
+ const ns = index.useNamespace("message");
32
+ const messageRef = vue.ref();
33
+ const visible = vue.ref(false);
34
+ const height = vue.ref(0);
35
+ let stopTimer = void 0;
36
+ const badgeType = vue.computed(() => props.type ? props.type === "error" ? "danger" : props.type : "info");
37
+ const typeClass = vue.computed(() => {
38
+ const type = props.type;
39
+ return { [ns.bm("icon", type)]: type && icon.TypeComponentsMap[type] };
40
+ });
41
+ const iconComponent = vue.computed(() => props.icon || icon.TypeComponentsMap[props.type] || "");
42
+ const lastOffset = vue.computed(() => instance.getLastOffset(props.id));
43
+ const offset = vue.computed(() => props.offset + lastOffset.value);
44
+ const bottom = vue.computed(() => height.value + offset.value);
45
+ const customStyle = vue.computed(() => ({
46
+ top: `${offset.value}px`,
47
+ zIndex: props.zIndex
48
+ }));
49
+ function startTimer() {
50
+ if (props.duration === 0)
51
+ return;
52
+ ({ stop: stopTimer } = core.useTimeoutFn(() => {
53
+ close();
54
+ }, props.duration));
55
+ }
56
+ function clearTimer() {
57
+ stopTimer == null ? void 0 : stopTimer();
58
+ }
59
+ function close() {
60
+ visible.value = false;
61
+ }
62
+ function keydown({ code }) {
63
+ if (code === aria.EVENT_CODE.esc) {
64
+ close();
65
+ }
66
+ }
67
+ vue.onMounted(() => {
68
+ startTimer();
69
+ visible.value = true;
70
+ });
71
+ vue.watch(() => props.repeatNum, () => {
72
+ clearTimer();
73
+ startTimer();
74
+ });
75
+ core.useEventListener(document, "keydown", keydown);
76
+ core.useResizeObserver(messageRef, () => {
77
+ height.value = messageRef.value.getBoundingClientRect().height;
78
+ });
79
+ expose({
80
+ visible,
81
+ bottom,
82
+ close
83
+ });
84
+ return (_ctx, _cache) => {
85
+ return vue.openBlock(), vue.createBlock(vue.Transition, {
86
+ name: vue.unref(ns).b("fade"),
87
+ onBeforeLeave: _ctx.onClose,
88
+ onAfterLeave: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("destroy")),
89
+ persisted: ""
90
+ }, {
91
+ default: vue.withCtx(() => [
92
+ vue.withDirectives(vue.createElementVNode("div", {
93
+ id: _ctx.id,
94
+ ref_key: "messageRef",
95
+ ref: messageRef,
96
+ class: vue.normalizeClass([
97
+ vue.unref(ns).b(),
98
+ { [vue.unref(ns).m(_ctx.type)]: _ctx.type && !_ctx.icon },
99
+ vue.unref(ns).is("center", _ctx.center),
100
+ vue.unref(ns).is("closable", _ctx.showClose),
101
+ _ctx.customClass
102
+ ]),
103
+ style: vue.normalizeStyle(vue.unref(customStyle)),
104
+ role: "alert",
105
+ onMouseenter: clearTimer,
106
+ onMouseleave: startTimer
107
+ }, [
108
+ _ctx.repeatNum > 1 ? (vue.openBlock(), vue.createBlock(vue.unref(index$1.ElBadge), {
109
+ key: 0,
110
+ value: _ctx.repeatNum,
111
+ type: vue.unref(badgeType),
112
+ class: vue.normalizeClass(vue.unref(ns).e("badge"))
113
+ }, null, 8, ["value", "type", "class"])) : vue.createCommentVNode("v-if", true),
114
+ vue.unref(iconComponent) ? (vue.openBlock(), vue.createBlock(vue.unref(index$2.ElIcon), {
115
+ key: 1,
116
+ class: vue.normalizeClass([vue.unref(ns).e("icon"), vue.unref(typeClass)])
117
+ }, {
118
+ default: vue.withCtx(() => [
119
+ (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(vue.unref(iconComponent))))
120
+ ]),
121
+ _: 1
122
+ }, 8, ["class"])) : vue.createCommentVNode("v-if", true),
123
+ vue.renderSlot(_ctx.$slots, "default", {}, () => [
124
+ !_ctx.dangerouslyUseHTMLString ? (vue.openBlock(), vue.createElementBlock("p", {
125
+ key: 0,
126
+ class: vue.normalizeClass(vue.unref(ns).e("content"))
127
+ }, vue.toDisplayString(_ctx.message), 3)) : (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", {
130
+ class: vue.normalizeClass(vue.unref(ns).e("content")),
131
+ innerHTML: _ctx.message
132
+ }, null, 10, _hoisted_2)
133
+ ], 2112))
134
+ ]),
135
+ _ctx.showClose ? (vue.openBlock(), vue.createBlock(vue.unref(index$2.ElIcon), {
136
+ key: 2,
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
+ ], 46, _hoisted_1), [
146
+ [vue.vShow, visible.value]
147
+ ])
148
+ ]),
149
+ _: 3
150
+ }, 8, ["name", "onBeforeLeave"]);
151
+ };
90
152
  }
91
153
  });
92
- const messageEmits = {
93
- destroy: () => true
94
- };
154
+ var MessageConstructor = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/message/src/message.vue"]]);
95
155
 
96
- exports.messageDefaults = messageDefaults;
97
- exports.messageEmits = messageEmits;
98
- exports.messageProps = messageProps;
99
- exports.messageTypes = messageTypes;
156
+ exports["default"] = MessageConstructor;
100
157
  //# sourceMappingURL=message.js.map