feadd011f04c476d43ccd230fb8f300db075399899d63f2d7a8a913fee6fb6147d8f7151e7edffef6039f6553464e4ea8fbad1a46907faa373f7b7c0b5edc3 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. 'use strict';
  2. Object.defineProperty(exports, '__esModule', { value: true });
  3. var vue = require('vue');
  4. var core = require('@vueuse/core');
  5. var token = require('./token.js');
  6. var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js');
  7. var form = require('../../../constants/form.js');
  8. var index = require('../../../hooks/use-namespace/index.js');
  9. const _sfc_main = vue.defineComponent({
  10. name: "ElSelectDropdown",
  11. componentName: "ElSelectDropdown",
  12. setup() {
  13. const select = vue.inject(token.selectKey);
  14. const ns = index.useNamespace("select");
  15. const popperClass = vue.computed(() => select.props.popperClass);
  16. const isMultiple = vue.computed(() => select.props.multiple);
  17. const isFitInputWidth = vue.computed(() => select.props.fitInputWidth);
  18. const minWidth = vue.ref("");
  19. function updateMinWidth() {
  20. var _a;
  21. const offsetWidth = (_a = select.selectRef) == null ? void 0 : _a.offsetWidth;
  22. if (offsetWidth) {
  23. minWidth.value = `${offsetWidth - form.BORDER_HORIZONTAL_WIDTH}px`;
  24. } else {
  25. minWidth.value = "";
  26. }
  27. }
  28. vue.onMounted(() => {
  29. updateMinWidth();
  30. core.useResizeObserver(select.selectRef, updateMinWidth);
  31. });
  32. return {
  33. ns,
  34. minWidth,
  35. popperClass,
  36. isMultiple,
  37. isFitInputWidth
  38. };
  39. }
  40. });
  41. function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
  42. return vue.openBlock(), vue.createElementBlock("div", {
  43. class: vue.normalizeClass([_ctx.ns.b("dropdown"), _ctx.ns.is("multiple", _ctx.isMultiple), _ctx.popperClass]),
  44. style: vue.normalizeStyle({ [_ctx.isFitInputWidth ? "width" : "minWidth"]: _ctx.minWidth })
  45. }, [
  46. _ctx.$slots.header ? (vue.openBlock(), vue.createElementBlock("div", {
  47. key: 0,
  48. class: vue.normalizeClass(_ctx.ns.be("dropdown", "header"))
  49. }, [
  50. vue.renderSlot(_ctx.$slots, "header")
  51. ], 2)) : vue.createCommentVNode("v-if", true),
  52. vue.renderSlot(_ctx.$slots, "default"),
  53. _ctx.$slots.footer ? (vue.openBlock(), vue.createElementBlock("div", {
  54. key: 1,
  55. class: vue.normalizeClass(_ctx.ns.be("dropdown", "footer"))
  56. }, [
  57. vue.renderSlot(_ctx.$slots, "footer")
  58. ], 2)) : vue.createCommentVNode("v-if", true)
  59. ], 6);
  60. }
  61. var ElSelectMenu = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["render", _sfc_render], ["__file", "select-dropdown.vue"]]);
  62. exports["default"] = ElSelectMenu;
  63. //# sourceMappingURL=select-dropdown.js.map