select-dropdown.js 2.2 KB

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