@element-plus/nightly 0.0.20220122 → 0.0.20220123

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 (260) hide show
  1. package/dist/index.full.js +29 -24
  2. package/dist/index.full.min.js +4 -4
  3. package/dist/index.full.min.js.map +1 -1
  4. package/dist/index.full.min.mjs +5 -5
  5. package/dist/index.full.min.mjs.map +1 -1
  6. package/dist/index.full.mjs +29 -24
  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/bg.js +1 -1
  16. package/dist/locale/bg.min.js +1 -1
  17. package/dist/locale/bg.min.mjs +1 -1
  18. package/dist/locale/bg.mjs +1 -1
  19. package/dist/locale/bn.js +1 -1
  20. package/dist/locale/bn.min.js +1 -1
  21. package/dist/locale/bn.min.mjs +1 -1
  22. package/dist/locale/bn.mjs +1 -1
  23. package/dist/locale/ca.js +1 -1
  24. package/dist/locale/ca.min.js +1 -1
  25. package/dist/locale/ca.min.mjs +1 -1
  26. package/dist/locale/ca.mjs +1 -1
  27. package/dist/locale/cs.js +1 -1
  28. package/dist/locale/cs.min.js +1 -1
  29. package/dist/locale/cs.min.mjs +1 -1
  30. package/dist/locale/cs.mjs +1 -1
  31. package/dist/locale/da.js +1 -1
  32. package/dist/locale/da.min.js +1 -1
  33. package/dist/locale/da.min.mjs +1 -1
  34. package/dist/locale/da.mjs +1 -1
  35. package/dist/locale/de.js +1 -1
  36. package/dist/locale/de.min.js +1 -1
  37. package/dist/locale/de.min.mjs +1 -1
  38. package/dist/locale/de.mjs +1 -1
  39. package/dist/locale/el.js +1 -1
  40. package/dist/locale/el.min.js +1 -1
  41. package/dist/locale/el.min.mjs +1 -1
  42. package/dist/locale/el.mjs +1 -1
  43. package/dist/locale/en.js +1 -1
  44. package/dist/locale/en.min.js +1 -1
  45. package/dist/locale/en.min.mjs +1 -1
  46. package/dist/locale/en.mjs +1 -1
  47. package/dist/locale/eo.js +1 -1
  48. package/dist/locale/eo.min.js +1 -1
  49. package/dist/locale/eo.min.mjs +1 -1
  50. package/dist/locale/eo.mjs +1 -1
  51. package/dist/locale/es.js +1 -1
  52. package/dist/locale/es.min.js +1 -1
  53. package/dist/locale/es.min.mjs +1 -1
  54. package/dist/locale/es.mjs +1 -1
  55. package/dist/locale/et.js +1 -1
  56. package/dist/locale/et.min.js +1 -1
  57. package/dist/locale/et.min.mjs +1 -1
  58. package/dist/locale/et.mjs +1 -1
  59. package/dist/locale/eu.js +1 -1
  60. package/dist/locale/eu.min.js +1 -1
  61. package/dist/locale/eu.min.mjs +1 -1
  62. package/dist/locale/eu.mjs +1 -1
  63. package/dist/locale/fa.js +1 -1
  64. package/dist/locale/fa.min.js +1 -1
  65. package/dist/locale/fa.min.mjs +1 -1
  66. package/dist/locale/fa.mjs +1 -1
  67. package/dist/locale/fi.js +1 -1
  68. package/dist/locale/fi.min.js +1 -1
  69. package/dist/locale/fi.min.mjs +1 -1
  70. package/dist/locale/fi.mjs +1 -1
  71. package/dist/locale/fr.js +1 -1
  72. package/dist/locale/fr.min.js +1 -1
  73. package/dist/locale/fr.min.mjs +1 -1
  74. package/dist/locale/fr.mjs +1 -1
  75. package/dist/locale/he.js +1 -1
  76. package/dist/locale/he.min.js +1 -1
  77. package/dist/locale/he.min.mjs +1 -1
  78. package/dist/locale/he.mjs +1 -1
  79. package/dist/locale/hr.js +1 -1
  80. package/dist/locale/hr.min.js +1 -1
  81. package/dist/locale/hr.min.mjs +1 -1
  82. package/dist/locale/hr.mjs +1 -1
  83. package/dist/locale/hu.js +1 -1
  84. package/dist/locale/hu.min.js +1 -1
  85. package/dist/locale/hu.min.mjs +1 -1
  86. package/dist/locale/hu.mjs +1 -1
  87. package/dist/locale/hy-am.js +1 -1
  88. package/dist/locale/hy-am.min.js +1 -1
  89. package/dist/locale/hy-am.min.mjs +1 -1
  90. package/dist/locale/hy-am.mjs +1 -1
  91. package/dist/locale/id.js +1 -1
  92. package/dist/locale/id.min.js +1 -1
  93. package/dist/locale/id.min.mjs +1 -1
  94. package/dist/locale/id.mjs +1 -1
  95. package/dist/locale/it.js +1 -1
  96. package/dist/locale/it.min.js +1 -1
  97. package/dist/locale/it.min.mjs +1 -1
  98. package/dist/locale/it.mjs +1 -1
  99. package/dist/locale/ja.js +1 -1
  100. package/dist/locale/ja.min.js +1 -1
  101. package/dist/locale/ja.min.mjs +1 -1
  102. package/dist/locale/ja.mjs +1 -1
  103. package/dist/locale/kk.js +1 -1
  104. package/dist/locale/kk.min.js +1 -1
  105. package/dist/locale/kk.min.mjs +1 -1
  106. package/dist/locale/kk.mjs +1 -1
  107. package/dist/locale/km.js +1 -1
  108. package/dist/locale/km.min.js +1 -1
  109. package/dist/locale/km.min.mjs +1 -1
  110. package/dist/locale/km.mjs +1 -1
  111. package/dist/locale/ko.js +1 -1
  112. package/dist/locale/ko.min.js +1 -1
  113. package/dist/locale/ko.min.mjs +1 -1
  114. package/dist/locale/ko.mjs +1 -1
  115. package/dist/locale/ku.js +1 -1
  116. package/dist/locale/ku.min.js +1 -1
  117. package/dist/locale/ku.min.mjs +1 -1
  118. package/dist/locale/ku.mjs +1 -1
  119. package/dist/locale/ky.js +1 -1
  120. package/dist/locale/ky.min.js +1 -1
  121. package/dist/locale/ky.min.mjs +1 -1
  122. package/dist/locale/ky.mjs +1 -1
  123. package/dist/locale/lt.js +1 -1
  124. package/dist/locale/lt.min.js +1 -1
  125. package/dist/locale/lt.min.mjs +1 -1
  126. package/dist/locale/lt.mjs +1 -1
  127. package/dist/locale/lv.js +1 -1
  128. package/dist/locale/lv.min.js +1 -1
  129. package/dist/locale/lv.min.mjs +1 -1
  130. package/dist/locale/lv.mjs +1 -1
  131. package/dist/locale/mn.js +1 -1
  132. package/dist/locale/mn.min.js +1 -1
  133. package/dist/locale/mn.min.mjs +1 -1
  134. package/dist/locale/mn.mjs +1 -1
  135. package/dist/locale/nb-no.js +1 -1
  136. package/dist/locale/nb-no.min.js +1 -1
  137. package/dist/locale/nb-no.min.mjs +1 -1
  138. package/dist/locale/nb-no.mjs +1 -1
  139. package/dist/locale/nl.js +1 -1
  140. package/dist/locale/nl.min.js +1 -1
  141. package/dist/locale/nl.min.mjs +1 -1
  142. package/dist/locale/nl.mjs +1 -1
  143. package/dist/locale/pa.js +1 -1
  144. package/dist/locale/pa.min.js +1 -1
  145. package/dist/locale/pa.min.mjs +1 -1
  146. package/dist/locale/pa.mjs +1 -1
  147. package/dist/locale/pl.js +1 -1
  148. package/dist/locale/pl.min.js +1 -1
  149. package/dist/locale/pl.min.mjs +1 -1
  150. package/dist/locale/pl.mjs +1 -1
  151. package/dist/locale/pt-br.js +1 -1
  152. package/dist/locale/pt-br.min.js +1 -1
  153. package/dist/locale/pt-br.min.mjs +1 -1
  154. package/dist/locale/pt-br.mjs +1 -1
  155. package/dist/locale/pt.js +1 -1
  156. package/dist/locale/pt.min.js +1 -1
  157. package/dist/locale/pt.min.mjs +1 -1
  158. package/dist/locale/pt.mjs +1 -1
  159. package/dist/locale/ro.js +1 -1
  160. package/dist/locale/ro.min.js +1 -1
  161. package/dist/locale/ro.min.mjs +1 -1
  162. package/dist/locale/ro.mjs +1 -1
  163. package/dist/locale/ru.js +1 -1
  164. package/dist/locale/ru.min.js +1 -1
  165. package/dist/locale/ru.min.mjs +1 -1
  166. package/dist/locale/ru.mjs +1 -1
  167. package/dist/locale/sk.js +1 -1
  168. package/dist/locale/sk.min.js +1 -1
  169. package/dist/locale/sk.min.mjs +1 -1
  170. package/dist/locale/sk.mjs +1 -1
  171. package/dist/locale/sl.js +1 -1
  172. package/dist/locale/sl.min.js +1 -1
  173. package/dist/locale/sl.min.mjs +1 -1
  174. package/dist/locale/sl.mjs +1 -1
  175. package/dist/locale/sr.js +1 -1
  176. package/dist/locale/sr.min.js +1 -1
  177. package/dist/locale/sr.min.mjs +1 -1
  178. package/dist/locale/sr.mjs +1 -1
  179. package/dist/locale/sv.js +1 -1
  180. package/dist/locale/sv.min.js +1 -1
  181. package/dist/locale/sv.min.mjs +1 -1
  182. package/dist/locale/sv.mjs +1 -1
  183. package/dist/locale/ta.js +1 -1
  184. package/dist/locale/ta.min.js +1 -1
  185. package/dist/locale/ta.min.mjs +1 -1
  186. package/dist/locale/ta.mjs +1 -1
  187. package/dist/locale/th.js +1 -1
  188. package/dist/locale/th.min.js +1 -1
  189. package/dist/locale/th.min.mjs +1 -1
  190. package/dist/locale/th.mjs +1 -1
  191. package/dist/locale/tk.js +1 -1
  192. package/dist/locale/tk.min.js +1 -1
  193. package/dist/locale/tk.min.mjs +1 -1
  194. package/dist/locale/tk.mjs +1 -1
  195. package/dist/locale/tr.js +1 -1
  196. package/dist/locale/tr.min.js +1 -1
  197. package/dist/locale/tr.min.mjs +1 -1
  198. package/dist/locale/tr.mjs +1 -1
  199. package/dist/locale/ug-cn.js +1 -1
  200. package/dist/locale/ug-cn.min.js +1 -1
  201. package/dist/locale/ug-cn.min.mjs +1 -1
  202. package/dist/locale/ug-cn.mjs +1 -1
  203. package/dist/locale/uk.js +1 -1
  204. package/dist/locale/uk.min.js +1 -1
  205. package/dist/locale/uk.min.mjs +1 -1
  206. package/dist/locale/uk.mjs +1 -1
  207. package/dist/locale/uz-uz.js +1 -1
  208. package/dist/locale/uz-uz.min.js +1 -1
  209. package/dist/locale/uz-uz.min.mjs +1 -1
  210. package/dist/locale/uz-uz.mjs +1 -1
  211. package/dist/locale/vi.js +1 -1
  212. package/dist/locale/vi.min.js +1 -1
  213. package/dist/locale/vi.min.mjs +1 -1
  214. package/dist/locale/vi.mjs +1 -1
  215. package/dist/locale/zh-cn.js +1 -1
  216. package/dist/locale/zh-cn.min.js +1 -1
  217. package/dist/locale/zh-cn.min.mjs +1 -1
  218. package/dist/locale/zh-cn.mjs +1 -1
  219. package/dist/locale/zh-tw.js +1 -1
  220. package/dist/locale/zh-tw.min.js +1 -1
  221. package/dist/locale/zh-tw.min.mjs +1 -1
  222. package/dist/locale/zh-tw.mjs +1 -1
  223. package/es/components/autocomplete/index.d.ts +22 -0
  224. package/es/components/autocomplete/src/index.mjs +15 -15
  225. package/es/components/autocomplete/src/index.mjs.map +1 -1
  226. package/es/components/autocomplete/src/index.vue.d.ts +11 -0
  227. package/es/components/backtop/index.d.ts +11 -0
  228. package/es/components/backtop/src/backtop.vue.d.ts +11 -0
  229. package/es/components/backtop/src/backtop2.mjs +16 -8
  230. package/es/components/backtop/src/backtop2.mjs.map +1 -1
  231. package/es/components/index.mjs +1 -1
  232. package/es/components/popconfirm/index.mjs +2 -2
  233. package/es/components/popconfirm/src/popconfirm.mjs +104 -45
  234. package/es/components/popconfirm/src/popconfirm.mjs.map +1 -1
  235. package/es/components/popconfirm/src/popconfirm2.mjs +45 -104
  236. package/es/components/popconfirm/src/popconfirm2.mjs.map +1 -1
  237. package/es/index.mjs +1 -1
  238. package/es/version.d.ts +1 -1
  239. package/es/version.mjs +1 -1
  240. package/es/version.mjs.map +1 -1
  241. package/lib/components/autocomplete/index.d.ts +22 -0
  242. package/lib/components/autocomplete/src/index.js +17 -17
  243. package/lib/components/autocomplete/src/index.js.map +1 -1
  244. package/lib/components/autocomplete/src/index.vue.d.ts +11 -0
  245. package/lib/components/backtop/index.d.ts +11 -0
  246. package/lib/components/backtop/src/backtop.vue.d.ts +11 -0
  247. package/lib/components/backtop/src/backtop2.js +15 -7
  248. package/lib/components/backtop/src/backtop2.js.map +1 -1
  249. package/lib/components/index.js +1 -1
  250. package/lib/components/popconfirm/index.js +2 -2
  251. package/lib/components/popconfirm/src/popconfirm.js +104 -45
  252. package/lib/components/popconfirm/src/popconfirm.js.map +1 -1
  253. package/lib/components/popconfirm/src/popconfirm2.js +45 -104
  254. package/lib/components/popconfirm/src/popconfirm2.js.map +1 -1
  255. package/lib/index.js +1 -1
  256. package/lib/version.d.ts +1 -1
  257. package/lib/version.js +1 -1
  258. package/lib/version.js.map +1 -1
  259. package/package.json +2 -2
  260. package/web-types.json +1 -1
@@ -13,6 +13,7 @@ import { ElIcon } from '../../icon/index.mjs';
13
13
  import { Loading } from '@element-plus/icons-vue';
14
14
  import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
15
15
  import ClickOutside from '../../../directives/click-outside/index.mjs';
16
+ import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
16
17
  import { useAttrs } from '../../../hooks/use-attrs/index.mjs';
17
18
 
18
19
  const _sfc_main = defineComponent({
@@ -94,6 +95,7 @@ const _sfc_main = defineComponent({
94
95
  "select"
95
96
  ],
96
97
  setup(props, ctx) {
98
+ const ns = useNamespace("autocomplete");
97
99
  const attrs = useAttrs();
98
100
  const suggestions = ref([]);
99
101
  const highlightedIndex = ref(-1);
@@ -105,7 +107,7 @@ const _sfc_main = defineComponent({
105
107
  const regionRef = ref(null);
106
108
  const popper = ref(null);
107
109
  const id = computed(() => {
108
- return `el-autocomplete-${generateId()}`;
110
+ return ns.b(String(generateId()));
109
111
  });
110
112
  const suggestionVisible = computed(() => {
111
113
  const isValidData = isArray(suggestions.value) && suggestions.value.length > 0;
@@ -212,8 +214,8 @@ const _sfc_main = defineComponent({
212
214
  if (index >= suggestions.value.length) {
213
215
  index = suggestions.value.length - 1;
214
216
  }
215
- const suggestion = regionRef.value.querySelector(".el-autocomplete-suggestion__wrap");
216
- const suggestionList = suggestion.querySelectorAll(".el-autocomplete-suggestion__list li");
217
+ const suggestion = regionRef.value.querySelector(`.${ns.be("suggestion", "wrap")}`);
218
+ const suggestionList = suggestion.querySelectorAll(`.${ns.be("suggestion", "list")} li`);
217
219
  const highlightItem = suggestionList[index];
218
220
  const scrollTop = suggestion.scrollTop;
219
221
  const { offsetTop, scrollHeight } = highlightItem;
@@ -251,7 +253,8 @@ const _sfc_main = defineComponent({
251
253
  focus,
252
254
  select,
253
255
  highlight,
254
- onSuggestionShow
256
+ onSuggestionShow,
257
+ ns
255
258
  };
256
259
  }
257
260
  });
@@ -271,32 +274,29 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
271
274
  "onUpdate:visible": _cache[2] || (_cache[2] = ($event) => _ctx.suggestionVisible = $event),
272
275
  placement: _ctx.placement,
273
276
  "fallback-placements": ["bottom-start", "top-start"],
274
- "popper-class": `el-autocomplete__popper ${_ctx.popperClass}`,
277
+ "popper-class": `${_ctx.ns.e("popper")} ${_ctx.popperClass}`,
275
278
  "append-to-body": _ctx.popperAppendToBody,
276
279
  "gpu-acceleration": false,
277
280
  pure: "",
278
281
  "manual-mode": "",
279
282
  effect: "light",
280
283
  trigger: "click",
281
- transition: "el-zoom-in-top",
284
+ transition: `${_ctx.ns.namespace.value}-zoom-in-top`,
282
285
  persistent: "",
283
286
  onShow: _ctx.onSuggestionShow
284
287
  }, {
285
288
  content: withCtx(() => [
286
289
  createElementVNode("div", {
287
290
  ref: "regionRef",
288
- class: normalizeClass([
289
- "el-autocomplete-suggestion",
290
- _ctx.suggestionLoading && "is-loading"
291
- ]),
291
+ class: normalizeClass([_ctx.ns.b("suggestion"), _ctx.ns.is("loading", _ctx.suggestionLoading)]),
292
292
  style: normalizeStyle({ minWidth: _ctx.dropdownWidth, outline: "none" }),
293
293
  role: "region"
294
294
  }, [
295
295
  createVNode(_component_el_scrollbar, {
296
296
  id: _ctx.id,
297
297
  tag: "ul",
298
- "wrap-class": "el-autocomplete-suggestion__wrap",
299
- "view-class": "el-autocomplete-suggestion__list",
298
+ "wrap-class": _ctx.ns.be("suggestion", "wrap"),
299
+ "view-class": _ctx.ns.be("suggestion", "list"),
300
300
  role: "listbox"
301
301
  }, {
302
302
  default: withCtx(() => [
@@ -323,12 +323,12 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
323
323
  }), 128))
324
324
  ]),
325
325
  _: 3
326
- }, 8, ["id"])
326
+ }, 8, ["id", "wrap-class", "view-class"])
327
327
  ], 6)
328
328
  ]),
329
329
  default: withCtx(() => [
330
330
  withDirectives((openBlock(), createElementBlock("div", {
331
- class: normalizeClass(["el-autocomplete", _ctx.$attrs.class]),
331
+ class: normalizeClass([_ctx.ns.b(), _ctx.$attrs.class]),
332
332
  style: normalizeStyle(_ctx.$attrs.style),
333
333
  role: "combobox",
334
334
  "aria-haspopup": "listbox",
@@ -379,7 +379,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
379
379
  ])
380
380
  ]),
381
381
  _: 3
382
- }, 8, ["visible", "placement", "popper-class", "append-to-body", "onShow"]);
382
+ }, 8, ["visible", "placement", "popper-class", "append-to-body", "transition", "onShow"]);
383
383
  }
384
384
  var Autocomplete = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
385
385
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/autocomplete/src/index.vue"],"sourcesContent":["<template>\n <el-tooltip\n ref=\"popper\"\n v-model:visible=\"suggestionVisible\"\n :placement=\"placement\"\n :fallback-placements=\"['bottom-start', 'top-start']\"\n :popper-class=\"`el-autocomplete__popper ${popperClass}`\"\n :append-to-body=\"popperAppendToBody\"\n :gpu-acceleration=\"false\"\n pure\n manual-mode\n effect=\"light\"\n trigger=\"click\"\n transition=\"el-zoom-in-top\"\n persistent\n @show=\"onSuggestionShow\"\n >\n <div\n v-clickoutside=\"close\"\n :class=\"['el-autocomplete', $attrs.class]\"\n :style=\"$attrs.style\"\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n :aria-expanded=\"suggestionVisible\"\n :aria-owns=\"id\"\n >\n <el-input\n ref=\"inputRef\"\n v-bind=\"attrs\"\n :model-value=\"modelValue\"\n @input=\"handleInput\"\n @change=\"handleChange\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @clear=\"handleClear\"\n @keydown.up.prevent=\"highlight(highlightedIndex - 1)\"\n @keydown.down.prevent=\"highlight(highlightedIndex + 1)\"\n @keydown.enter=\"handleKeyEnter\"\n @keydown.tab=\"close\"\n >\n <template v-if=\"$slots.prepend\" #prepend>\n <slot name=\"prepend\"></slot>\n </template>\n <template v-if=\"$slots.append\" #append>\n <slot name=\"append\"></slot>\n </template>\n <template v-if=\"$slots.prefix\" #prefix>\n <slot name=\"prefix\"></slot>\n </template>\n <template v-if=\"$slots.suffix\" #suffix>\n <slot name=\"suffix\"></slot>\n </template>\n </el-input>\n </div>\n <template #content>\n <div\n ref=\"regionRef\"\n :class=\"[\n 'el-autocomplete-suggestion',\n suggestionLoading && 'is-loading',\n ]\"\n :style=\"{ minWidth: dropdownWidth, outline: 'none' }\"\n role=\"region\"\n >\n <el-scrollbar\n :id=\"id\"\n tag=\"ul\"\n wrap-class=\"el-autocomplete-suggestion__wrap\"\n view-class=\"el-autocomplete-suggestion__list\"\n role=\"listbox\"\n >\n <li v-if=\"suggestionLoading\">\n <el-icon class=\"is-loading\"><loading /></el-icon>\n </li>\n <template v-else>\n <li\n v-for=\"(item, index) in suggestions\"\n :id=\"`${id}-item-${index}`\"\n :key=\"index\"\n :class=\"{ highlighted: highlightedIndex === index }\"\n role=\"option\"\n :aria-selected=\"highlightedIndex === index\"\n @click=\"select(item)\"\n >\n <slot :item=\"item\">{{ item[valueKey] }}</slot>\n </li>\n </template>\n </el-scrollbar>\n </div>\n </template>\n </el-tooltip>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref, computed, onMounted, nextTick } from 'vue'\nimport { NOOP } from '@vue/shared'\nimport debounce from 'lodash/debounce'\nimport { useAttrs } from '@element-plus/hooks'\nimport { ClickOutside } from '@element-plus/directives'\nimport { generateId, isArray } from '@element-plus/utils/util'\nimport { UPDATE_MODEL_EVENT } from '@element-plus/utils/constants'\nimport { throwError } from '@element-plus/utils/error'\nimport ElInput from '@element-plus/components/input'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport ElTooltip from '@element-plus/components/tooltip'\nimport ElIcon from '@element-plus/components/icon'\nimport { Loading } from '@element-plus/icons-vue'\n\nimport type { Placement } from '@element-plus/components/popper'\nimport type { PropType } from 'vue'\n\nexport default defineComponent({\n name: 'ElAutocomplete',\n components: {\n ElTooltip,\n ElInput,\n ElScrollbar,\n ElIcon,\n Loading,\n },\n directives: {\n clickoutside: ClickOutside,\n },\n inheritAttrs: false,\n props: {\n valueKey: {\n type: String,\n default: 'value',\n },\n modelValue: {\n type: [String, Number],\n default: '',\n },\n debounce: {\n type: Number,\n default: 300,\n },\n placement: {\n type: String as PropType<Placement>,\n validator: (val: string): boolean => {\n return [\n 'top',\n 'top-start',\n 'top-end',\n 'bottom',\n 'bottom-start',\n 'bottom-end',\n ].includes(val)\n },\n default: 'bottom-start',\n },\n fetchSuggestions: {\n type: Function as PropType<\n (queryString: string, cb: (data: any[]) => void) => void\n >,\n default: NOOP,\n },\n popperClass: {\n type: String,\n default: '',\n },\n triggerOnFocus: {\n type: Boolean,\n default: true,\n },\n selectWhenUnmatched: {\n type: Boolean,\n default: false,\n },\n hideLoading: {\n type: Boolean,\n default: false,\n },\n popperAppendToBody: {\n type: Boolean,\n default: true,\n },\n highlightFirstItem: {\n type: Boolean,\n default: false,\n },\n },\n emits: [\n UPDATE_MODEL_EVENT,\n 'input',\n 'change',\n 'focus',\n 'blur',\n 'clear',\n 'select',\n ],\n setup(props, ctx) {\n const attrs = useAttrs()\n const suggestions = ref<any[]>([])\n const highlightedIndex = ref(-1)\n const dropdownWidth = ref('')\n const activated = ref(false)\n const suggestionDisabled = ref(false)\n const loading = ref(false)\n const inputRef = ref<{\n inputOrTextarea: HTMLInputElement | HTMLTextAreaElement\n focus: () => void\n $el: HTMLElement\n } | null>(null)\n const regionRef = ref<HTMLElement | null>(null)\n const popper = ref(null)\n\n const id = computed(() => {\n return `el-autocomplete-${generateId()}`\n })\n const suggestionVisible = computed(() => {\n const isValidData =\n isArray(suggestions.value) && suggestions.value.length > 0\n return (isValidData || loading.value) && activated.value\n })\n const suggestionLoading = computed(() => {\n return !props.hideLoading && loading.value\n })\n\n const onSuggestionShow = () => {\n nextTick(() => {\n if (suggestionVisible.value) {\n dropdownWidth.value = `${inputRef.value!.$el.offsetWidth}px`\n }\n })\n }\n\n onMounted(() => {\n inputRef.value!.inputOrTextarea.setAttribute('role', 'textbox')\n inputRef.value!.inputOrTextarea.setAttribute('aria-autocomplete', 'list')\n inputRef.value!.inputOrTextarea.setAttribute('aria-controls', 'id')\n inputRef.value!.inputOrTextarea.setAttribute(\n 'aria-activedescendant',\n `${id.value}-item-${highlightedIndex.value}`\n )\n })\n\n const getData = (queryString: string) => {\n if (suggestionDisabled.value) {\n return\n }\n loading.value = true\n props.fetchSuggestions(queryString, (suggestionsArg) => {\n loading.value = false\n if (suggestionDisabled.value) {\n return\n }\n if (isArray(suggestionsArg)) {\n suggestions.value = suggestionsArg\n highlightedIndex.value = props.highlightFirstItem ? 0 : -1\n } else {\n throwError(\n 'ElAutocomplete',\n 'autocomplete suggestions must be an array'\n )\n }\n })\n }\n const debouncedGetData = debounce(getData, props.debounce)\n const handleInput = (value: string) => {\n ctx.emit('input', value)\n ctx.emit(UPDATE_MODEL_EVENT, value)\n suggestionDisabled.value = false\n if (!props.triggerOnFocus && !value) {\n suggestionDisabled.value = true\n suggestions.value = []\n return\n }\n debouncedGetData(value)\n }\n const handleChange = (value) => {\n ctx.emit('change', value)\n }\n const handleFocus = (e) => {\n activated.value = true\n ctx.emit('focus', e)\n if (props.triggerOnFocus) {\n debouncedGetData(String(props.modelValue))\n }\n }\n const handleBlur = (e) => {\n ctx.emit('blur', e)\n }\n const handleClear = () => {\n activated.value = false\n ctx.emit(UPDATE_MODEL_EVENT, '')\n ctx.emit('clear')\n }\n const handleKeyEnter = () => {\n if (\n suggestionVisible.value &&\n highlightedIndex.value >= 0 &&\n highlightedIndex.value < suggestions.value.length\n ) {\n select(suggestions.value[highlightedIndex.value])\n } else if (props.selectWhenUnmatched) {\n ctx.emit('select', { value: props.modelValue })\n nextTick(() => {\n suggestions.value = []\n highlightedIndex.value = -1\n })\n }\n }\n const close = () => {\n activated.value = false\n }\n const focus = () => {\n inputRef.value?.focus()\n }\n const select = (item) => {\n ctx.emit('input', item[props.valueKey])\n ctx.emit(UPDATE_MODEL_EVENT, item[props.valueKey])\n ctx.emit('select', item)\n nextTick(() => {\n suggestions.value = []\n highlightedIndex.value = -1\n })\n }\n const highlight = (index: number) => {\n if (!suggestionVisible.value || loading.value) {\n return\n }\n if (index < 0) {\n highlightedIndex.value = -1\n return\n }\n if (index >= suggestions.value.length) {\n index = suggestions.value.length - 1\n }\n const suggestion = regionRef.value!.querySelector(\n '.el-autocomplete-suggestion__wrap'\n )!\n const suggestionList = suggestion.querySelectorAll(\n '.el-autocomplete-suggestion__list li'\n )!\n const highlightItem = suggestionList[index]\n const scrollTop = suggestion.scrollTop\n const { offsetTop, scrollHeight } = highlightItem as HTMLElement\n\n if (offsetTop + scrollHeight > scrollTop + suggestion.clientHeight) {\n suggestion.scrollTop += scrollHeight\n }\n if (offsetTop < scrollTop) {\n suggestion.scrollTop -= scrollHeight\n }\n highlightedIndex.value = index\n inputRef.value!.inputOrTextarea.setAttribute(\n 'aria-activedescendant',\n `${id.value}-item-${highlightedIndex.value}`\n )\n }\n\n return {\n attrs,\n suggestions,\n highlightedIndex,\n dropdownWidth,\n activated,\n suggestionDisabled,\n loading,\n inputRef,\n regionRef,\n popper,\n\n id,\n suggestionVisible,\n suggestionLoading,\n\n getData,\n handleInput,\n handleChange,\n handleFocus,\n handleBlur,\n handleClear,\n handleKeyEnter,\n close,\n focus,\n select,\n highlight,\n onSuggestionShow,\n }\n },\n})\n</script>\n"],"names":["_openBlock","_createBlock","_withCtx","_normalizeStyle","_createElementBlock","_Fragment","_normalizeClass","_mergeProps","_withModifiers","_createSlots"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/autocomplete/src/index.vue"],"sourcesContent":["<template>\n <el-tooltip\n ref=\"popper\"\n v-model:visible=\"suggestionVisible\"\n :placement=\"placement\"\n :fallback-placements=\"['bottom-start', 'top-start']\"\n :popper-class=\"`${ns.e('popper')} ${popperClass}`\"\n :append-to-body=\"popperAppendToBody\"\n :gpu-acceleration=\"false\"\n pure\n manual-mode\n effect=\"light\"\n trigger=\"click\"\n :transition=\"`${ns.namespace.value}-zoom-in-top`\"\n persistent\n @show=\"onSuggestionShow\"\n >\n <div\n v-clickoutside=\"close\"\n :class=\"[ns.b(), $attrs.class]\"\n :style=\"$attrs.style\"\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n :aria-expanded=\"suggestionVisible\"\n :aria-owns=\"id\"\n >\n <el-input\n ref=\"inputRef\"\n v-bind=\"attrs\"\n :model-value=\"modelValue\"\n @input=\"handleInput\"\n @change=\"handleChange\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @clear=\"handleClear\"\n @keydown.up.prevent=\"highlight(highlightedIndex - 1)\"\n @keydown.down.prevent=\"highlight(highlightedIndex + 1)\"\n @keydown.enter=\"handleKeyEnter\"\n @keydown.tab=\"close\"\n >\n <template v-if=\"$slots.prepend\" #prepend>\n <slot name=\"prepend\"></slot>\n </template>\n <template v-if=\"$slots.append\" #append>\n <slot name=\"append\"></slot>\n </template>\n <template v-if=\"$slots.prefix\" #prefix>\n <slot name=\"prefix\"></slot>\n </template>\n <template v-if=\"$slots.suffix\" #suffix>\n <slot name=\"suffix\"></slot>\n </template>\n </el-input>\n </div>\n <template #content>\n <div\n ref=\"regionRef\"\n :class=\"[ns.b('suggestion'), ns.is('loading', suggestionLoading)]\"\n :style=\"{ minWidth: dropdownWidth, outline: 'none' }\"\n role=\"region\"\n >\n <el-scrollbar\n :id=\"id\"\n tag=\"ul\"\n :wrap-class=\"ns.be('suggestion', 'wrap')\"\n :view-class=\"ns.be('suggestion', 'list')\"\n role=\"listbox\"\n >\n <li v-if=\"suggestionLoading\">\n <el-icon class=\"is-loading\"><loading /></el-icon>\n </li>\n <template v-else>\n <li\n v-for=\"(item, index) in suggestions\"\n :id=\"`${id}-item-${index}`\"\n :key=\"index\"\n :class=\"{ highlighted: highlightedIndex === index }\"\n role=\"option\"\n :aria-selected=\"highlightedIndex === index\"\n @click=\"select(item)\"\n >\n <slot :item=\"item\">{{ item[valueKey] }}</slot>\n </li>\n </template>\n </el-scrollbar>\n </div>\n </template>\n </el-tooltip>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref, computed, onMounted, nextTick } from 'vue'\nimport { NOOP } from '@vue/shared'\nimport debounce from 'lodash/debounce'\nimport { useAttrs, useNamespace } from '@element-plus/hooks'\nimport { ClickOutside } from '@element-plus/directives'\nimport { generateId, isArray } from '@element-plus/utils/util'\nimport { UPDATE_MODEL_EVENT } from '@element-plus/utils/constants'\nimport { throwError } from '@element-plus/utils/error'\nimport ElInput from '@element-plus/components/input'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport ElTooltip from '@element-plus/components/tooltip'\nimport ElIcon from '@element-plus/components/icon'\nimport { Loading } from '@element-plus/icons-vue'\n\nimport type { Placement } from '@element-plus/components/popper'\nimport type { PropType } from 'vue'\n\nexport default defineComponent({\n name: 'ElAutocomplete',\n components: {\n ElTooltip,\n ElInput,\n ElScrollbar,\n ElIcon,\n Loading,\n },\n directives: {\n clickoutside: ClickOutside,\n },\n inheritAttrs: false,\n props: {\n valueKey: {\n type: String,\n default: 'value',\n },\n modelValue: {\n type: [String, Number],\n default: '',\n },\n debounce: {\n type: Number,\n default: 300,\n },\n placement: {\n type: String as PropType<Placement>,\n validator: (val: string): boolean => {\n return [\n 'top',\n 'top-start',\n 'top-end',\n 'bottom',\n 'bottom-start',\n 'bottom-end',\n ].includes(val)\n },\n default: 'bottom-start',\n },\n fetchSuggestions: {\n type: Function as PropType<\n (queryString: string, cb: (data: any[]) => void) => void\n >,\n default: NOOP,\n },\n popperClass: {\n type: String,\n default: '',\n },\n triggerOnFocus: {\n type: Boolean,\n default: true,\n },\n selectWhenUnmatched: {\n type: Boolean,\n default: false,\n },\n hideLoading: {\n type: Boolean,\n default: false,\n },\n popperAppendToBody: {\n type: Boolean,\n default: true,\n },\n highlightFirstItem: {\n type: Boolean,\n default: false,\n },\n },\n emits: [\n UPDATE_MODEL_EVENT,\n 'input',\n 'change',\n 'focus',\n 'blur',\n 'clear',\n 'select',\n ],\n setup(props, ctx) {\n const ns = useNamespace('autocomplete')\n const attrs = useAttrs()\n const suggestions = ref<any[]>([])\n const highlightedIndex = ref(-1)\n const dropdownWidth = ref('')\n const activated = ref(false)\n const suggestionDisabled = ref(false)\n const loading = ref(false)\n const inputRef = ref<{\n inputOrTextarea: HTMLInputElement | HTMLTextAreaElement\n focus: () => void\n $el: HTMLElement\n } | null>(null)\n const regionRef = ref<HTMLElement | null>(null)\n const popper = ref(null)\n\n const id = computed(() => {\n return ns.b(String(generateId()))\n })\n const suggestionVisible = computed(() => {\n const isValidData =\n isArray(suggestions.value) && suggestions.value.length > 0\n return (isValidData || loading.value) && activated.value\n })\n const suggestionLoading = computed(() => {\n return !props.hideLoading && loading.value\n })\n\n const onSuggestionShow = () => {\n nextTick(() => {\n if (suggestionVisible.value) {\n dropdownWidth.value = `${inputRef.value!.$el.offsetWidth}px`\n }\n })\n }\n\n onMounted(() => {\n inputRef.value!.inputOrTextarea.setAttribute('role', 'textbox')\n inputRef.value!.inputOrTextarea.setAttribute('aria-autocomplete', 'list')\n inputRef.value!.inputOrTextarea.setAttribute('aria-controls', 'id')\n inputRef.value!.inputOrTextarea.setAttribute(\n 'aria-activedescendant',\n `${id.value}-item-${highlightedIndex.value}`\n )\n })\n\n const getData = (queryString: string) => {\n if (suggestionDisabled.value) {\n return\n }\n loading.value = true\n props.fetchSuggestions(queryString, (suggestionsArg) => {\n loading.value = false\n if (suggestionDisabled.value) {\n return\n }\n if (isArray(suggestionsArg)) {\n suggestions.value = suggestionsArg\n highlightedIndex.value = props.highlightFirstItem ? 0 : -1\n } else {\n throwError(\n 'ElAutocomplete',\n 'autocomplete suggestions must be an array'\n )\n }\n })\n }\n const debouncedGetData = debounce(getData, props.debounce)\n const handleInput = (value: string) => {\n ctx.emit('input', value)\n ctx.emit(UPDATE_MODEL_EVENT, value)\n suggestionDisabled.value = false\n if (!props.triggerOnFocus && !value) {\n suggestionDisabled.value = true\n suggestions.value = []\n return\n }\n debouncedGetData(value)\n }\n const handleChange = (value) => {\n ctx.emit('change', value)\n }\n const handleFocus = (e) => {\n activated.value = true\n ctx.emit('focus', e)\n if (props.triggerOnFocus) {\n debouncedGetData(String(props.modelValue))\n }\n }\n const handleBlur = (e) => {\n ctx.emit('blur', e)\n }\n const handleClear = () => {\n activated.value = false\n ctx.emit(UPDATE_MODEL_EVENT, '')\n ctx.emit('clear')\n }\n const handleKeyEnter = () => {\n if (\n suggestionVisible.value &&\n highlightedIndex.value >= 0 &&\n highlightedIndex.value < suggestions.value.length\n ) {\n select(suggestions.value[highlightedIndex.value])\n } else if (props.selectWhenUnmatched) {\n ctx.emit('select', { value: props.modelValue })\n nextTick(() => {\n suggestions.value = []\n highlightedIndex.value = -1\n })\n }\n }\n const close = () => {\n activated.value = false\n }\n const focus = () => {\n inputRef.value?.focus()\n }\n const select = (item) => {\n ctx.emit('input', item[props.valueKey])\n ctx.emit(UPDATE_MODEL_EVENT, item[props.valueKey])\n ctx.emit('select', item)\n nextTick(() => {\n suggestions.value = []\n highlightedIndex.value = -1\n })\n }\n const highlight = (index: number) => {\n if (!suggestionVisible.value || loading.value) {\n return\n }\n if (index < 0) {\n highlightedIndex.value = -1\n return\n }\n if (index >= suggestions.value.length) {\n index = suggestions.value.length - 1\n }\n const suggestion = regionRef.value!.querySelector(\n `.${ns.be('suggestion', 'wrap')}`\n )!\n const suggestionList = suggestion.querySelectorAll(\n `.${ns.be('suggestion', 'list')} li`\n )!\n const highlightItem = suggestionList[index]\n const scrollTop = suggestion.scrollTop\n const { offsetTop, scrollHeight } = highlightItem as HTMLElement\n\n if (offsetTop + scrollHeight > scrollTop + suggestion.clientHeight) {\n suggestion.scrollTop += scrollHeight\n }\n if (offsetTop < scrollTop) {\n suggestion.scrollTop -= scrollHeight\n }\n highlightedIndex.value = index\n inputRef.value!.inputOrTextarea.setAttribute(\n 'aria-activedescendant',\n `${id.value}-item-${highlightedIndex.value}`\n )\n }\n\n return {\n attrs,\n suggestions,\n highlightedIndex,\n dropdownWidth,\n activated,\n suggestionDisabled,\n loading,\n inputRef,\n regionRef,\n popper,\n\n id,\n suggestionVisible,\n suggestionLoading,\n\n getData,\n handleInput,\n handleChange,\n handleFocus,\n handleBlur,\n handleClear,\n handleKeyEnter,\n close,\n focus,\n select,\n highlight,\n onSuggestionShow,\n ns,\n }\n },\n})\n</script>\n"],"names":["_openBlock","_createBlock","_withCtx","_normalizeClass","_normalizeStyle","_createElementBlock","_Fragment","_mergeProps","_withModifiers","_createSlots"],"mappings":";;;;;;;;;;;;;;;;;;AA4GA,MAAK,YAAa,gBAAa;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF,YAAY;AAAA,IACV,cAAc;AAAA;AAAA,EAEhB,cAAc;AAAA,EACd,OAAO;AAAA,IACL,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA;AAAA,IAEX,YAAY;AAAA,MACV,MAAM,CAAC,QAAQ;AAAA,MACf,SAAS;AAAA;AAAA,IAEX,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA;AAAA,IAEX,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW,CAAC,QAAyB;AACnC,eAAO;AAAA,UACL;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,SAAS;AAAA;AAAA,MAEb,SAAS;AAAA;AAAA,IAEX,kBAAkB;AAAA,MAChB,MAAM;AAAA,MAGN,SAAS;AAAA;AAAA,IAEX,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA;AAAA,IAEX,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,SAAS;AAAA;AAAA,IAEX,qBAAqB;AAAA,MACnB,MAAM;AAAA,MACN,SAAS;AAAA;AAAA,IAEX,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA;AAAA,IAEX,oBAAoB;AAAA,MAClB,MAAM;AAAA,MACN,SAAS;AAAA;AAAA,IAEX,oBAAoB;AAAA,MAClB,MAAM;AAAA,MACN,SAAS;AAAA;AAAA;AAAA,EAGb,OAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF,MAAM,OAAO,KAAK;AAChB,UAAM,KAAK,aAAa;AACxB,UAAM,QAAQ;AACd,UAAM,cAAc,IAAW;AAC/B,UAAM,mBAAmB,IAAI;AAC7B,UAAM,gBAAgB,IAAI;AAC1B,UAAM,YAAY,IAAI;AACtB,UAAM,qBAAqB,IAAI;AAC/B,UAAM,UAAU,IAAI;AACpB,UAAM,WAAW,IAIP;AACV,UAAM,YAAY,IAAwB;AAC1C,UAAM,SAAS,IAAI;AAEnB,UAAM,KAAK,SAAS,MAAM;AACxB,aAAO,GAAG,EAAE,OAAO;AAAA;AAErB,UAAM,oBAAoB,SAAS,MAAM;AACvC,YAAM,cACJ,QAAQ,YAAY,UAAU,YAAY,MAAM,SAAS;AAC3D,aAAQ,gBAAe,QAAQ,UAAU,UAAU;AAAA;AAErD,UAAM,oBAAoB,SAAS,MAAM;AACvC,aAAO,CAAC,MAAM,eAAe,QAAQ;AAAA;AAGvC,UAAM,mBAAmB,MAAM;AAC7B,eAAS,MAAM;AACb,YAAI,kBAAkB,OAAO;AAC3B,wBAAc,QAAQ,GAAG,SAAS,MAAO,IAAI;AAAA;AAAA;AAAA;AAKnD,cAAU,MAAM;AACd,eAAS,MAAO,gBAAgB,aAAa,QAAQ;AACrD,eAAS,MAAO,gBAAgB,aAAa,qBAAqB;AAClE,eAAS,MAAO,gBAAgB,aAAa,iBAAiB;AAC9D,eAAS,MAAO,gBAAgB,aAC9B,yBACA,GAAG,GAAG,cAAc,iBAAiB;AAAA;AAIzC,UAAM,UAAU,CAAC,gBAAwB;AACvC,UAAI,mBAAmB,OAAO;AAC5B;AAAA;AAEF,cAAQ,QAAQ;AAChB,YAAM,iBAAiB,aAAa,CAAC,mBAAmB;AACtD,gBAAQ,QAAQ;AAChB,YAAI,mBAAmB,OAAO;AAC5B;AAAA;AAEF,YAAI,QAAQ,iBAAiB;AAC3B,sBAAY,QAAQ;AACpB,2BAAiB,QAAQ,MAAM,qBAAqB,IAAI;AAAA,eACnD;AACL,qBACE,kBACA;AAAA;AAAA;AAAA;AAKR,UAAM,mBAAmB,SAAS,SAAS,MAAM;AACjD,UAAM,cAAc,CAAC,UAAkB;AACrC,UAAI,KAAK,SAAS;AAClB,UAAI,KAAK,oBAAoB;AAC7B,yBAAmB,QAAQ;AAC3B,UAAI,CAAC,MAAM,kBAAkB,CAAC,OAAO;AACnC,2BAAmB,QAAQ;AAC3B,oBAAY,QAAQ;AACpB;AAAA;AAEF,uBAAiB;AAAA;AAEnB,UAAM,eAAe,CAAC,UAAU;AAC9B,UAAI,KAAK,UAAU;AAAA;AAErB,UAAM,cAAc,CAAC,MAAM;AACzB,gBAAU,QAAQ;AAClB,UAAI,KAAK,SAAS;AAClB,UAAI,MAAM,gBAAgB;AACxB,yBAAiB,OAAO,MAAM;AAAA;AAAA;AAGlC,UAAM,aAAa,CAAC,MAAM;AACxB,UAAI,KAAK,QAAQ;AAAA;AAEnB,UAAM,cAAc,MAAM;AACxB,gBAAU,QAAQ;AAClB,UAAI,KAAK,oBAAoB;AAC7B,UAAI,KAAK;AAAA;AAEX,UAAM,iBAAiB,MAAM;AAC3B,UACE,kBAAkB,SAClB,iBAAiB,SAAS,KAC1B,iBAAiB,QAAQ,YAAY,MAAM,QAC3C;AACA,eAAO,YAAY,MAAM,iBAAiB;AAAA,iBACjC,MAAM,qBAAqB;AACpC,YAAI,KAAK,UAAU,EAAE,OAAO,MAAM;AAClC,iBAAS,MAAM;AACb,sBAAY,QAAQ;AACpB,2BAAiB,QAAQ;AAAA;AAAA;AAAA;AAI/B,UAAM,QAAQ,MAAM;AAClB,gBAAU,QAAQ;AAAA;AAEpB,UAAM,QAAQ,MAAM;AAClB,eAAS,OAAO;AAAA;AAElB,UAAM,SAAS,CAAC,SAAS;AACvB,UAAI,KAAK,SAAS,KAAK,MAAM;AAC7B,UAAI,KAAK,oBAAoB,KAAK,MAAM;AACxC,UAAI,KAAK,UAAU;AACnB,eAAS,MAAM;AACb,oBAAY,QAAQ;AACpB,yBAAiB,QAAQ;AAAA;AAAA;AAG7B,UAAM,YAAY,CAAC,UAAkB;AACnC,UAAI,CAAC,kBAAkB,SAAS,QAAQ,OAAO;AAC7C;AAAA;AAEF,UAAI,QAAQ,GAAG;AACb,yBAAiB,QAAQ;AACzB;AAAA;AAEF,UAAI,SAAS,YAAY,MAAM,QAAQ;AACrC,gBAAQ,YAAY,MAAM,SAAS;AAAA;AAErC,YAAM,aAAa,UAAU,MAAO,cAClC,IAAI,GAAG,GAAG,cAAc;AAE1B,YAAM,iBAAiB,WAAW,iBAChC,IAAI,GAAG,GAAG,cAAc;AAE1B,YAAM,gBAAgB,eAAe;AACrC,YAAM,YAAY,WAAW;AAC7B,YAAM,EAAE,WAAW,iBAAiB;AAEpC,UAAI,YAAY,eAAe,YAAY,WAAW,cAAc;AAClE,mBAAW,aAAa;AAAA;AAE1B,UAAI,YAAY,WAAW;AACzB,mBAAW,aAAa;AAAA;AAE1B,uBAAiB,QAAQ;AACzB,eAAS,MAAO,gBAAgB,aAC9B,yBACA,GAAG,GAAG,cAAc,iBAAiB;AAAA;AAIzC,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA;AAAA;;;;;;;;;;;SAxXEA,aAAQC;AAAA,IACJ;AAAA;IACP,oBAAW,OAAS;AAAA,IACpB;AAAA,IACA,uBAAiB,iBAAI;AAAA,IACrB,gBAAc,GAAE,uBAAkB;AAAA,IAClC,kBAAgB,KAAE;AAAA,IACnB,oBAAI;AAAA,IACJ;AAAA,IACA,eAAc;AAAA,IACd,QAAO;AAAA,IACN;AAAA,IACD,eAAU;AAAA,IACT,YAAM;AAAA;KAuCI;AAAA,aACTC,cA8BM;AAAA,yBA7BW;AAAA,QACd,KAAK;AAAA,QACL,OAAKC,yCAAc,KAAa;AAAA,QACjC,OAAKC,eAAQ;AAAA;SAEb;AAAA,oBACS;AAAA,UACP,IAAG,KAAK;AAAA,UACP;AAAA,UACA,cAAY,QAAG,GAAE;AAAA,UAClB,cAAK,KAAS;AAAA;;mBAEJF;AAAA,mDACyCG,yBAAxC,YAAM;AAAA,8CAAwB;AAAA,yBAAXH,QAAW;AAAA;;;;uDAGvCI,UAUK;qBARAN,aAAOK,mBAAc;AAAA,gBACvB,IAAG,GAAE,KAAK;AAAA,gBACV,KAAK;AAAA,gBACN,OAAKF,eAAQ;AAAA,gBACZ;AAAA,gBACA,iBAAK,KAAE,qBAAW;AAAA;iBAEnB;AAAA,mDAAsB,UAAK,MAAQ;AAAA;;;;;;;;;;mCA9DlCE,mBAAe,OAAK;AAAA,QAC5B,OAAKF,eAAE,cAAO,KAAK;AAAA,QACpB,OAAKC,eAAU;AAAA,QACf;AAAA,QACC,iBAAe;AAAA,QACf,iBAAW,KAAE;AAAA;SAEd;AAAA,oBAGG,qBAAuBG;AAAA,UACvB,eAAO;AAAA,UACP,SAAM,KAAE;AAAA,UACR,UAAO;AAAA,UACP,SAAM;AAAA,UACN,QAAK,KAAE;AAAA,UACP,SAAO;AAAA;yEACe,eAAU,wBAAgB;AAAA,+CACnBC;AAAA,qBAChB,qBAAK;AAAA;;YAEHC,YAAO,KAAO;AAAA;;gBAC5BP,cAA4B;AAAA;;cAEd;AAAA;;gBACdA,cAA2B;AAAA;;cAEb;AAAA;;gBACdA,cAA2B;AAAA;;cAEb;AAAA;;gBACdA,cAA2B;AAAA;;;;aAhCf,cAAK;AAAA;;;;;;;;;;"}
@@ -76,6 +76,17 @@ declare const _default: import("vue").DefineComponent<{
76
76
  select: (item: any) => void;
77
77
  highlight: (index: number) => void;
78
78
  onSuggestionShow: () => void;
79
+ ns: {
80
+ namespace: import("vue").ComputedRef<string>;
81
+ b: (blockSuffix?: string) => string;
82
+ e: (element?: string | undefined) => string;
83
+ m: (modifier?: string | undefined) => string;
84
+ be: (blockSuffix?: string | undefined, element?: string | undefined) => string;
85
+ em: (element?: string | undefined, modifier?: string | undefined) => string;
86
+ bm: (blockSuffix?: string | undefined, modifier?: string | undefined) => string;
87
+ bem: (blockSuffix?: string | undefined, element?: string | undefined, modifier?: string | undefined) => string;
88
+ is: (name: string, state?: boolean) => string;
89
+ };
79
90
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("input" | "select" | "update:modelValue" | "change" | "blur" | "focus" | "clear")[], "input" | "select" | "update:modelValue" | "change" | "blur" | "focus" | "clear", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
80
91
  valueKey: {
81
92
  type: StringConstructor;
@@ -20,6 +20,17 @@ export declare const ElBacktop: import("../../utils/types").SFCWithInstall<impor
20
20
  styleBottom: import("vue").ComputedRef<string>;
21
21
  styleRight: import("vue").ComputedRef<string>;
22
22
  handleClick: (event: MouseEvent) => void;
23
+ ns: {
24
+ namespace: import("vue").ComputedRef<string>;
25
+ b: (blockSuffix?: string) => string;
26
+ e: (element?: string | undefined) => string;
27
+ m: (modifier?: string | undefined) => string;
28
+ be: (blockSuffix?: string | undefined, element?: string | undefined) => string;
29
+ em: (element?: string | undefined, modifier?: string | undefined) => string;
30
+ bm: (blockSuffix?: string | undefined, modifier?: string | undefined) => string;
31
+ bem: (blockSuffix?: string | undefined, element?: string | undefined, modifier?: string | undefined) => string;
32
+ is: (name: string, state?: boolean) => string;
33
+ };
23
34
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
24
35
  click: (evt: MouseEvent) => boolean;
25
36
  }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
@@ -20,6 +20,17 @@ declare const _default: import("vue").DefineComponent<{
20
20
  styleBottom: import("vue").ComputedRef<string>;
21
21
  styleRight: import("vue").ComputedRef<string>;
22
22
  handleClick: (event: MouseEvent) => void;
23
+ ns: {
24
+ namespace: import("vue").ComputedRef<string>;
25
+ b: (blockSuffix?: string) => string;
26
+ e: (element?: string | undefined) => string;
27
+ m: (modifier?: string | undefined) => string;
28
+ be: (blockSuffix?: string | undefined, element?: string | undefined) => string;
29
+ em: (element?: string | undefined, modifier?: string | undefined) => string;
30
+ bm: (blockSuffix?: string | undefined, modifier?: string | undefined) => string;
31
+ bem: (blockSuffix?: string | undefined, element?: string | undefined, modifier?: string | undefined) => string;
32
+ is: (name: string, state?: boolean) => string;
33
+ };
23
34
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
24
35
  click: (evt: MouseEvent) => boolean;
25
36
  }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
@@ -1,11 +1,13 @@
1
- import { defineComponent, shallowRef, ref, computed, onMounted, resolveComponent, openBlock, createBlock, Transition, withCtx, createElementBlock, normalizeStyle, withModifiers, renderSlot, createVNode, createCommentVNode } from 'vue';
1
+ import { defineComponent, shallowRef, ref, computed, onMounted, resolveComponent, openBlock, createBlock, Transition, withCtx, createElementBlock, normalizeStyle, normalizeClass, withModifiers, renderSlot, createVNode, createCommentVNode } from 'vue';
2
2
  import { useThrottleFn, useEventListener } from '@vueuse/core';
3
3
  import { ElIcon } from '../../icon/index.mjs';
4
4
  import { easeInOutCubic } from '../../../utils/animation.mjs';
5
5
  import { throwError } from '../../../utils/error.mjs';
6
6
  import { CaretTop } from '@element-plus/icons-vue';
7
+ import '../../../hooks/index.mjs';
7
8
  import { backtopProps, backtopEmits } from './backtop.mjs';
8
9
  import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
10
+ import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
9
11
 
10
12
  const COMPONENT_NAME = "ElBacktop";
11
13
  const _sfc_main = defineComponent({
@@ -17,6 +19,7 @@ const _sfc_main = defineComponent({
17
19
  props: backtopProps,
18
20
  emits: backtopEmits,
19
21
  setup(props, { emit }) {
22
+ const ns = useNamespace("backtop");
20
23
  const el = shallowRef(document.documentElement);
21
24
  const container = shallowRef(document);
22
25
  const visible = ref(false);
@@ -63,14 +66,17 @@ const _sfc_main = defineComponent({
63
66
  visible,
64
67
  styleBottom,
65
68
  styleRight,
66
- handleClick
69
+ handleClick,
70
+ ns
67
71
  };
68
72
  }
69
73
  });
70
74
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
71
75
  const _component_caret_top = resolveComponent("caret-top");
72
76
  const _component_el_icon = resolveComponent("el-icon");
73
- return openBlock(), createBlock(Transition, { name: "el-fade-in" }, {
77
+ return openBlock(), createBlock(Transition, {
78
+ name: `${_ctx.ns.namespace.value}-fade-in`
79
+ }, {
74
80
  default: withCtx(() => [
75
81
  _ctx.visible ? (openBlock(), createElementBlock("div", {
76
82
  key: 0,
@@ -78,21 +84,23 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
78
84
  right: _ctx.styleRight,
79
85
  bottom: _ctx.styleBottom
80
86
  }),
81
- class: "el-backtop",
87
+ class: normalizeClass(_ctx.ns.b()),
82
88
  onClick: _cache[0] || (_cache[0] = withModifiers((...args) => _ctx.handleClick && _ctx.handleClick(...args), ["stop"]))
83
89
  }, [
84
90
  renderSlot(_ctx.$slots, "default", {}, () => [
85
- createVNode(_component_el_icon, { class: "el-backtop__icon" }, {
91
+ createVNode(_component_el_icon, {
92
+ class: normalizeClass(_ctx.ns.e("icon"))
93
+ }, {
86
94
  default: withCtx(() => [
87
95
  createVNode(_component_caret_top)
88
96
  ]),
89
97
  _: 1
90
- })
98
+ }, 8, ["class"])
91
99
  ])
92
- ], 4)) : createCommentVNode("v-if", true)
100
+ ], 6)) : createCommentVNode("v-if", true)
93
101
  ]),
94
102
  _: 3
95
- });
103
+ }, 8, ["name"]);
96
104
  }
97
105
  var Backtop = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
98
106
 
@@ -1 +1 @@
1
- {"version":3,"file":"backtop2.mjs","sources":["../../../../../../packages/components/backtop/src/backtop.vue"],"sourcesContent":["<template>\n <transition name=\"el-fade-in\">\n <div\n v-if=\"visible\"\n :style=\"{\n right: styleRight,\n bottom: styleBottom,\n }\"\n class=\"el-backtop\"\n @click.stop=\"handleClick\"\n >\n <slot>\n <el-icon class=\"el-backtop__icon\"><caret-top /></el-icon>\n </slot>\n </div>\n </transition>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref, computed, onMounted, shallowRef } from 'vue'\nimport { useEventListener, useThrottleFn } from '@vueuse/core'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { easeInOutCubic } from '@element-plus/utils/animation'\nimport { throwError } from '@element-plus/utils/error'\nimport { CaretTop } from '@element-plus/icons-vue'\n\nimport { backtopEmits, backtopProps } from './backtop'\n\nconst COMPONENT_NAME = 'ElBacktop'\n\nexport default defineComponent({\n name: COMPONENT_NAME,\n components: {\n ElIcon,\n CaretTop,\n },\n props: backtopProps,\n emits: backtopEmits,\n\n setup(props, { emit }) {\n const el = shallowRef<HTMLElement | undefined>(document.documentElement)\n const container = shallowRef<Document | HTMLElement>(document)\n const visible = ref(false)\n const styleBottom = computed(() => `${props.bottom}px`)\n const styleRight = computed(() => `${props.right}px`)\n\n const scrollToTop = () => {\n if (!el.value) return\n const beginTime = Date.now()\n const beginValue = el.value.scrollTop\n const frameFunc = () => {\n if (!el.value) return\n const progress = (Date.now() - beginTime) / 500\n if (progress < 1) {\n el.value.scrollTop = beginValue * (1 - easeInOutCubic(progress))\n requestAnimationFrame(frameFunc)\n } else {\n el.value.scrollTop = 0\n }\n }\n requestAnimationFrame(frameFunc)\n }\n const handleScroll = () => {\n if (el.value) visible.value = el.value.scrollTop >= props.visibilityHeight\n }\n const handleClick = (event: MouseEvent) => {\n scrollToTop()\n emit('click', event)\n }\n\n const handleScrollThrottled = useThrottleFn(handleScroll, 300)\n\n onMounted(() => {\n if (props.target) {\n el.value =\n document.querySelector<HTMLElement>(props.target) ?? undefined\n if (!el.value) {\n throwError(COMPONENT_NAME, `target is not existed: ${props.target}`)\n }\n container.value = el.value\n }\n\n useEventListener(container, 'scroll', handleScrollThrottled)\n })\n\n return {\n visible,\n styleBottom,\n styleRight,\n handleClick,\n }\n },\n})\n</script>\n"],"names":["_createBlock","_withCtx","_normalizeStyle"],"mappings":";;;;;;;;;AA4BA,MAAM,iBAAiB;AAEvB,MAAK,YAAa,gBAAa;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IACV;AAAA,IACA;AAAA;AAAA,EAEF,OAAO;AAAA,EACP,OAAO;AAAA,EAEP,MAAM,OAAO,EAAE,QAAQ;AACrB,UAAM,KAAK,WAAoC,SAAS;AACxD,UAAM,YAAY,WAAmC;AACrD,UAAM,UAAU,IAAI;AACpB,UAAM,cAAc,SAAS,MAAM,GAAG,MAAM;AAC5C,UAAM,aAAa,SAAS,MAAM,GAAG,MAAM;AAE3C,UAAM,cAAc,MAAM;AACxB,UAAI,CAAC,GAAG;AAAO;AACf,YAAM,YAAY,KAAK;AACvB,YAAM,aAAa,GAAG,MAAM;AAC5B,YAAM,YAAY,MAAM;AACtB,YAAI,CAAC,GAAG;AAAO;AACf,cAAM,WAAY,MAAK,QAAQ,aAAa;AAC5C,YAAI,WAAW,GAAG;AAChB,aAAG,MAAM,YAAY,kBAAkB,eAAe;AACtD,gCAAsB;AAAA,eACjB;AACL,aAAG,MAAM,YAAY;AAAA;AAAA;AAGzB,4BAAsB;AAAA;AAExB,UAAM,eAAe,MAAM;AACzB,UAAI,GAAG;AAAO,gBAAQ,QAAQ,GAAG,MAAM,aAAa,MAAM;AAAA;AAE5D,UAAM,cAAc,CAAC,UAAsB;AACzC;AACA,WAAK,SAAS;AAAA;AAGhB,UAAM,wBAAwB,cAAc,cAAc;AAE1D,cAAU,MAAM;AACd,UAAI,MAAM,QAAQ;AAChB,WAAG,QACD,SAAS,cAA2B,MAAM,WAAW;AACvD,YAAI,CAAC,GAAG,OAAO;AACb,qBAAW,gBAAgB,0BAA0B,MAAM;AAAA;AAE7D,kBAAU,QAAQ,GAAG;AAAA;AAGvB,uBAAiB,WAAW,UAAU;AAAA;AAGxC,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA;AAAA;;;;sBA3EIA;AAAA,aAXEC,QAAO;AAAA;QACZ,KAAK;AAAA,eAAmBC,eAAU;AAAA,sBAAkB;AAAA;;QAKpD,OAAK;AAAA;SAEN;AAAA,mBACE,KAAyD,uBAAhD,MAAM;AAAA,0CAAgC;AAAA,qBAAbD,QAAa;AAAA;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"backtop2.mjs","sources":["../../../../../../packages/components/backtop/src/backtop.vue"],"sourcesContent":["<template>\n <transition :name=\"`${ns.namespace.value}-fade-in`\">\n <div\n v-if=\"visible\"\n :style=\"{\n right: styleRight,\n bottom: styleBottom,\n }\"\n :class=\"ns.b()\"\n @click.stop=\"handleClick\"\n >\n <slot>\n <el-icon :class=\"ns.e('icon')\"><caret-top /></el-icon>\n </slot>\n </div>\n </transition>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref, computed, onMounted, shallowRef } from 'vue'\nimport { useEventListener, useThrottleFn } from '@vueuse/core'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { easeInOutCubic } from '@element-plus/utils/animation'\nimport { throwError } from '@element-plus/utils/error'\nimport { CaretTop } from '@element-plus/icons-vue'\nimport { useNamespace } from '@element-plus/hooks'\n\nimport { backtopEmits, backtopProps } from './backtop'\n\nconst COMPONENT_NAME = 'ElBacktop'\n\nexport default defineComponent({\n name: COMPONENT_NAME,\n components: {\n ElIcon,\n CaretTop,\n },\n props: backtopProps,\n emits: backtopEmits,\n\n setup(props, { emit }) {\n const ns = useNamespace('backtop')\n const el = shallowRef<HTMLElement | undefined>(document.documentElement)\n const container = shallowRef<Document | HTMLElement>(document)\n const visible = ref(false)\n const styleBottom = computed(() => `${props.bottom}px`)\n const styleRight = computed(() => `${props.right}px`)\n\n const scrollToTop = () => {\n if (!el.value) return\n const beginTime = Date.now()\n const beginValue = el.value.scrollTop\n const frameFunc = () => {\n if (!el.value) return\n const progress = (Date.now() - beginTime) / 500\n if (progress < 1) {\n el.value.scrollTop = beginValue * (1 - easeInOutCubic(progress))\n requestAnimationFrame(frameFunc)\n } else {\n el.value.scrollTop = 0\n }\n }\n requestAnimationFrame(frameFunc)\n }\n const handleScroll = () => {\n if (el.value) visible.value = el.value.scrollTop >= props.visibilityHeight\n }\n const handleClick = (event: MouseEvent) => {\n scrollToTop()\n emit('click', event)\n }\n\n const handleScrollThrottled = useThrottleFn(handleScroll, 300)\n\n onMounted(() => {\n if (props.target) {\n el.value =\n document.querySelector<HTMLElement>(props.target) ?? undefined\n if (!el.value) {\n throwError(COMPONENT_NAME, `target is not existed: ${props.target}`)\n }\n container.value = el.value\n }\n\n useEventListener(container, 'scroll', handleScrollThrottled)\n })\n\n return {\n visible,\n styleBottom,\n styleRight,\n handleClick,\n ns,\n }\n },\n})\n</script>\n"],"names":["_openBlock","_createBlock","_Transition","_withCtx","_normalizeStyle","_normalizeClass"],"mappings":";;;;;;;;;;;AA6BA,MAAM,iBAAiB;AAEvB,MAAK,YAAa,gBAAa;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IACV;AAAA,IACA;AAAA;AAAA,EAEF,OAAO;AAAA,EACP,OAAO;AAAA,EAEP,MAAM,OAAO,EAAE,QAAQ;AACrB,UAAM,KAAK,aAAa;AACxB,UAAM,KAAK,WAAoC,SAAS;AACxD,UAAM,YAAY,WAAmC;AACrD,UAAM,UAAU,IAAI;AACpB,UAAM,cAAc,SAAS,MAAM,GAAG,MAAM;AAC5C,UAAM,aAAa,SAAS,MAAM,GAAG,MAAM;AAE3C,UAAM,cAAc,MAAM;AACxB,UAAI,CAAC,GAAG;AAAO;AACf,YAAM,YAAY,KAAK;AACvB,YAAM,aAAa,GAAG,MAAM;AAC5B,YAAM,YAAY,MAAM;AACtB,YAAI,CAAC,GAAG;AAAO;AACf,cAAM,WAAY,MAAK,QAAQ,aAAa;AAC5C,YAAI,WAAW,GAAG;AAChB,aAAG,MAAM,YAAY,kBAAkB,eAAe;AACtD,gCAAsB;AAAA,eACjB;AACL,aAAG,MAAM,YAAY;AAAA;AAAA;AAGzB,4BAAsB;AAAA;AAExB,UAAM,eAAe,MAAM;AACzB,UAAI,GAAG;AAAO,gBAAQ,QAAQ,GAAG,MAAM,aAAa,MAAM;AAAA;AAE5D,UAAM,cAAc,CAAC,UAAsB;AACzC;AACA,WAAK,SAAS;AAAA;AAGhB,UAAM,wBAAwB,cAAc,cAAc;AAE1D,cAAU,MAAM;AACd,UAAI,MAAM,QAAQ;AAChB,WAAG,QACD,SAAS,cAA2B,MAAM,WAAW;AACvD,YAAI,CAAC,GAAG,OAAO;AACb,qBAAW,gBAAgB,0BAA0B,MAAM;AAAA;AAE7D,kBAAU,QAAQ,GAAG;AAAA;AAGvB,uBAAiB,WAAW,UAAU;AAAA;AAGxC,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA;AAAA;;;;SA3FaA,aAAQC,YAAeC;AAAA;;aAE9BC,QAAO;AAAA;QACZ,KAAK;AAAA,eAAmBC,eAAU;AAAA,sBAAkB;AAAA;;QAKpD,OAAKC;AAAA;SAEN;AAAA,mBACE,KAAsD;AAAA,sBAAvC,oBAAK;AAAA;;qBAAWF,QAAa;AAAA;;;;;;;;;;;;;;"}
@@ -103,7 +103,7 @@ export { subMenuProps } from './menu/src/sub-menu.mjs';
103
103
  export { overlayEmits, overlayProps } from './overlay/src/overlay.mjs';
104
104
  export { pageHeaderEmits, pageHeaderProps } from './page-header/src/page-header.mjs';
105
105
  export { paginationEmits, paginationProps } from './pagination/src/pagination.mjs';
106
- export { popconfirmProps } from './popconfirm/src/popconfirm.mjs';
106
+ export { popconfirmProps } from './popconfirm/src/popconfirm2.mjs';
107
107
  export { default as ElPopperArrow } from './popper/src/arrow.mjs';
108
108
  export { default as ElPopperTrigger } from './popper/src/trigger.mjs';
109
109
  export { default as ElPopperContent } from './popper/src/content.mjs';
@@ -1,6 +1,6 @@
1
1
  import { withInstall } from '../../utils/with-install.mjs';
2
- import Popconfirm from './src/popconfirm2.mjs';
3
- export { popconfirmProps } from './src/popconfirm.mjs';
2
+ import Popconfirm from './src/popconfirm.mjs';
3
+ export { popconfirmProps } from './src/popconfirm2.mjs';
4
4
 
5
5
  const ElPopconfirm = withInstall(Popconfirm);
6
6
 
@@ -1,51 +1,110 @@
1
- import '../../button/index.mjs';
2
- import { QuestionFilled } from '@element-plus/icons-vue';
3
- import { buildProps, definePropType } from '../../../utils/props.mjs';
4
- import { buttonType } from '../../button/src/button.mjs';
1
+ import { defineComponent, ref, unref, computed, resolveComponent, openBlock, createBlock, mergeProps, withCtx, createElementVNode, normalizeStyle, resolveDynamicComponent, createCommentVNode, createTextVNode, toDisplayString, createVNode, renderSlot } from 'vue';
2
+ import { ElButton } from '../../button/index.mjs';
3
+ import { ElIcon } from '../../icon/index.mjs';
4
+ import { ElTooltip } from '../../tooltip/index.mjs';
5
+ import '../../../hooks/index.mjs';
6
+ import { popconfirmProps } from './popconfirm2.mjs';
7
+ import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
8
+ import { useLocale } from '../../../hooks/use-locale/index.mjs';
5
9
 
6
- const popconfirmProps = buildProps({
7
- title: {
8
- type: String
10
+ const _sfc_main = defineComponent({
11
+ name: "ElPopconfirm",
12
+ components: {
13
+ ElButton,
14
+ ElTooltip,
15
+ ElIcon
9
16
  },
10
- confirmButtonText: {
11
- type: String
12
- },
13
- cancelButtonText: {
14
- type: String
15
- },
16
- confirmButtonType: {
17
- type: String,
18
- values: buttonType,
19
- default: "primary"
20
- },
21
- cancelButtonType: {
22
- type: String,
23
- values: buttonType,
24
- default: "text"
25
- },
26
- icon: {
27
- type: definePropType([String, Object]),
28
- default: QuestionFilled
29
- },
30
- iconColor: {
31
- type: String,
32
- default: "#f90"
33
- },
34
- hideIcon: {
35
- type: Boolean,
36
- default: false
37
- },
38
- hideAfter: {
39
- type: Number,
40
- default: 200
41
- },
42
- onConfirm: {
43
- type: definePropType(Function)
44
- },
45
- onCancel: {
46
- type: definePropType(Function)
17
+ props: popconfirmProps,
18
+ setup(props) {
19
+ const { t } = useLocale();
20
+ const tooltipRef = ref();
21
+ const hidePopper = () => {
22
+ unref(tooltipRef)?.onClose?.();
23
+ };
24
+ const handleCallback = () => {
25
+ hidePopper();
26
+ };
27
+ const confirm = (e) => {
28
+ props.onConfirm?.(e);
29
+ handleCallback();
30
+ };
31
+ const cancel = (e) => {
32
+ props.onCancel?.(e);
33
+ handleCallback();
34
+ };
35
+ const finalConfirmButtonText = computed(() => props.confirmButtonText || t("el.popconfirm.confirmButtonText"));
36
+ const finalCancelButtonText = computed(() => props.cancelButtonText || t("el.popconfirm.cancelButtonText"));
37
+ return {
38
+ finalConfirmButtonText,
39
+ finalCancelButtonText,
40
+ tooltipRef,
41
+ confirm,
42
+ cancel
43
+ };
47
44
  }
48
45
  });
46
+ const _hoisted_1 = { class: "el-popconfirm" };
47
+ const _hoisted_2 = { class: "el-popconfirm__main" };
48
+ const _hoisted_3 = { class: "el-popconfirm__action" };
49
+ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
50
+ const _component_el_icon = resolveComponent("el-icon");
51
+ const _component_el_button = resolveComponent("el-button");
52
+ const _component_el_tooltip = resolveComponent("el-tooltip");
53
+ return openBlock(), createBlock(_component_el_tooltip, mergeProps({ ref: "tooltipRef" }, _ctx.$attrs, {
54
+ trigger: "click",
55
+ effect: "light",
56
+ "popper-class": "el-popover",
57
+ "append-to-body": "",
58
+ "fallback-placements": ["bottom", "top", "right", "left"],
59
+ "hide-after": _ctx.hideAfter,
60
+ persistent: ""
61
+ }), {
62
+ content: withCtx(() => [
63
+ createElementVNode("div", _hoisted_1, [
64
+ createElementVNode("div", _hoisted_2, [
65
+ !_ctx.hideIcon && _ctx.icon ? (openBlock(), createBlock(_component_el_icon, {
66
+ key: 0,
67
+ class: "el-popconfirm__icon",
68
+ style: normalizeStyle({ color: _ctx.iconColor })
69
+ }, {
70
+ default: withCtx(() => [
71
+ (openBlock(), createBlock(resolveDynamicComponent(_ctx.icon)))
72
+ ]),
73
+ _: 1
74
+ }, 8, ["style"])) : createCommentVNode("v-if", true),
75
+ createTextVNode(" " + toDisplayString(_ctx.title), 1)
76
+ ]),
77
+ createElementVNode("div", _hoisted_3, [
78
+ createVNode(_component_el_button, {
79
+ size: "small",
80
+ type: _ctx.cancelButtonType,
81
+ onClick: _ctx.cancel
82
+ }, {
83
+ default: withCtx(() => [
84
+ createTextVNode(toDisplayString(_ctx.finalCancelButtonText), 1)
85
+ ]),
86
+ _: 1
87
+ }, 8, ["type", "onClick"]),
88
+ createVNode(_component_el_button, {
89
+ size: "small",
90
+ type: _ctx.confirmButtonType,
91
+ onClick: _ctx.confirm
92
+ }, {
93
+ default: withCtx(() => [
94
+ createTextVNode(toDisplayString(_ctx.finalConfirmButtonText), 1)
95
+ ]),
96
+ _: 1
97
+ }, 8, ["type", "onClick"])
98
+ ])
99
+ ])
100
+ ]),
101
+ default: withCtx(() => [
102
+ _ctx.$slots.reference ? renderSlot(_ctx.$slots, "reference", { key: 0 }) : createCommentVNode("v-if", true)
103
+ ]),
104
+ _: 3
105
+ }, 16, ["hide-after"]);
106
+ }
107
+ var Popconfirm = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
49
108
 
50
- export { popconfirmProps };
109
+ export { Popconfirm as default };
51
110
  //# sourceMappingURL=popconfirm.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"popconfirm.mjs","sources":["../../../../../../packages/components/popconfirm/src/popconfirm.ts"],"sourcesContent":["import { buttonType } from '@element-plus/components/button'\nimport { QuestionFilled } from '@element-plus/icons-vue'\nimport { buildProps, definePropType } from '@element-plus/utils/props'\n\nimport type { Component, ExtractPropTypes } from 'vue'\n\nexport const popconfirmProps = buildProps({\n title: {\n type: String,\n },\n confirmButtonText: {\n type: String,\n },\n cancelButtonText: {\n type: String,\n },\n confirmButtonType: {\n type: String,\n values: buttonType,\n default: 'primary',\n },\n cancelButtonType: {\n type: String,\n values: buttonType,\n default: 'text',\n },\n icon: {\n type: definePropType<string | Component>([String, Object]),\n default: QuestionFilled as any,\n },\n iconColor: {\n type: String,\n default: '#f90',\n },\n hideIcon: {\n type: Boolean,\n default: false,\n },\n hideAfter: {\n type: Number,\n default: 200,\n },\n onConfirm: {\n type: definePropType<(e: Event) => Promise<boolean> | boolean>(Function),\n },\n onCancel: {\n type: definePropType<(e: Event) => Promise<boolean> | boolean>(Function),\n },\n} as const)\nexport type PopconfirmProps = ExtractPropTypes<typeof popconfirmProps>\n"],"names":[],"mappings":";;;;;AAGY,MAAC,eAAe,GAAG,UAAU,CAAC;AAC1C,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,MAAM;AAChB,GAAG;AACH,EAAE,iBAAiB,EAAE;AACrB,IAAI,IAAI,EAAE,MAAM;AAChB,GAAG;AACH,EAAE,gBAAgB,EAAE;AACpB,IAAI,IAAI,EAAE,MAAM;AAChB,GAAG;AACH,EAAE,iBAAiB,EAAE;AACrB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,UAAU;AACtB,IAAI,OAAO,EAAE,SAAS;AACtB,GAAG;AACH,EAAE,gBAAgB,EAAE;AACpB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,UAAU;AACtB,IAAI,OAAO,EAAE,MAAM;AACnB,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAE,cAAc,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC1C,IAAI,OAAO,EAAE,cAAc;AAC3B,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,MAAM;AACnB,GAAG;AACH,EAAE,QAAQ,EAAE;AACZ,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,KAAK;AAClB,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,GAAG;AAChB,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,GAAG;AACH,EAAE,QAAQ,EAAE;AACZ,IAAI,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,GAAG;AACH,CAAC;;;;"}
1
+ {"version":3,"file":"popconfirm.mjs","sources":["../../../../../../packages/components/popconfirm/src/popconfirm.vue"],"sourcesContent":["<template>\n <el-tooltip\n ref=\"tooltipRef\"\n v-bind=\"$attrs\"\n trigger=\"click\"\n effect=\"light\"\n popper-class=\"el-popover\"\n append-to-body\n :fallback-placements=\"['bottom', 'top', 'right', 'left']\"\n :hide-after=\"hideAfter\"\n persistent\n >\n <template #content>\n <div class=\"el-popconfirm\">\n <div class=\"el-popconfirm__main\">\n <el-icon\n v-if=\"!hideIcon && icon\"\n class=\"el-popconfirm__icon\"\n :style=\"{ color: iconColor }\"\n >\n <component :is=\"icon\" />\n </el-icon>\n {{ title }}\n </div>\n <div class=\"el-popconfirm__action\">\n <el-button size=\"small\" :type=\"cancelButtonType\" @click=\"cancel\">\n {{ finalCancelButtonText }}\n </el-button>\n <el-button size=\"small\" :type=\"confirmButtonType\" @click=\"confirm\">\n {{ finalConfirmButtonText }}\n </el-button>\n </div>\n </div>\n </template>\n <template v-if=\"$slots.reference\">\n <slot name=\"reference\" />\n </template>\n </el-tooltip>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref, computed, unref } from 'vue'\nimport ElButton from '@element-plus/components/button'\nimport ElIcon from '@element-plus/components/icon'\nimport ElTooltip from '@element-plus/components/tooltip'\nimport { useLocale } from '@element-plus/hooks'\nimport { popconfirmProps } from './popconfirm'\n\nexport default defineComponent({\n name: 'ElPopconfirm',\n\n components: {\n ElButton,\n ElTooltip,\n ElIcon,\n },\n\n props: popconfirmProps,\n\n setup(props) {\n const { t } = useLocale()\n const tooltipRef = ref<{ onClose: () => void }>()\n\n const hidePopper = () => {\n unref(tooltipRef)?.onClose?.()\n }\n\n const handleCallback = () => {\n hidePopper()\n }\n\n const confirm = (e: Event) => {\n props.onConfirm?.(e)\n handleCallback()\n }\n const cancel = (e: Event) => {\n props.onCancel?.(e)\n handleCallback()\n }\n\n const finalConfirmButtonText = computed(\n () => props.confirmButtonText || t('el.popconfirm.confirmButtonText')\n )\n const finalCancelButtonText = computed(\n () => props.cancelButtonText || t('el.popconfirm.cancelButtonText')\n )\n\n return {\n finalConfirmButtonText,\n finalCancelButtonText,\n tooltipRef,\n\n confirm,\n cancel,\n }\n },\n})\n</script>\n"],"names":["_openBlock","_createBlock","_withCtx"],"mappings":";;;;;;;;;AAgDA,MAAK,YAAa,gBAAa;AAAA,EAC7B,MAAM;AAAA,EAEN,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAGF,OAAO;AAAA,EAEP,MAAM,OAAO;AACX,UAAM,EAAE,MAAM;AACd,UAAM,aAAa;AAEnB,UAAM,aAAa,MAAM;AACvB,YAAM,aAAa;AAAA;AAGrB,UAAM,iBAAiB,MAAM;AAC3B;AAAA;AAGF,UAAM,UAAU,CAAC,MAAa;AAC5B,YAAM,YAAY;AAClB;AAAA;AAEF,UAAM,SAAS,CAAC,MAAa;AAC3B,YAAM,WAAW;AACjB;AAAA;AAGF,UAAM,yBAAyB,SAC7B,MAAM,MAAM,qBAAqB,EAAE;AAErC,UAAM,wBAAwB,SAC5B,MAAM,MAAM,oBAAoB,EAAE;AAGpC,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MAEA;AAAA,MACA;AAAA;AAAA;AAAA;qBA/EO,OAAM;qBAUN,OAAM;;;;;;SApBfA,aAAeC;AAAA,IACf,SAAO;AAAA,IACP;AAAA,IACA,gBAAc;AAAA,IACb;AAAA,IACA,uBAAY,WAAS;AAAA,IACtB,cAAU;AAAA;MAEC;AAAA,aACTC,cAmBM;AAAA,yBAlBJ,OASM;AAAA,2BAPa,OAAI,YAAI;AAAA,4BADzB;YAEE,KAAK;AAAA,YACJ,OAAK;AAAA;;6BAEN;AAAA;;;iDAEF;AAAA;;2BAKY;AAAA,sBAFI,sBAAO;AAAA,YAAE,MAAM;AAAA,YAAmB,WAAO;AAAA;;;;;;aAGzD,GAEY;AAAA,sBAFI,sBAAO;AAAA,YAAE,MAAM;AAAA,YAAoB,WAAO;AAAA;;;;;;;;;;aAMhDA,QAAO,MAAS;AAAA,WAC9B;;;;;;;;;"}