UNPKG

hongluan-ui

Version:
54 lines (51 loc) 2 kB
import { defineComponent, inject, computed, ref, onMounted, openBlock, createElementBlock, normalizeClass, normalizeStyle, withModifiers, renderSlot, createCommentVNode } from 'vue'; import { useResizeObserver } from '@vueuse/core'; import { selectKey } from './token.mjs'; import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs'; const _sfc_main = defineComponent({ name: "SelectDropdown", componentName: "SelectDropdown", setup() { const select = inject(selectKey); const popperClass = computed(() => select.props.popperClass); const isMultiple = computed(() => select.props.multiple); const minWidth = ref(""); function updateMinWidth() { var _a; minWidth.value = ((_a = select.selectWrapper) == null ? void 0 : _a.getBoundingClientRect().width) + "px"; } onMounted(() => { useResizeObserver(select.selectWrapper, updateMinWidth); }); return { minWidth, popperClass, isMultiple }; } }); function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { return openBlock(), createElementBlock("div", { class: normalizeClass(["select-dropdown", [{ "is-multiple": _ctx.isMultiple }, _ctx.popperClass]]), style: normalizeStyle({ minWidth: _ctx.minWidth }), onMousedown: withModifiers(() => { }, ["stop"]) }, [ _ctx.$slots.header ? (openBlock(), createElementBlock("div", { key: 0, class: "select-dropdown-header" }, [ renderSlot(_ctx.$slots, "header") ])) : createCommentVNode("v-if", true), renderSlot(_ctx.$slots, "default"), _ctx.$slots.footer ? (openBlock(), createElementBlock("div", { key: 1, class: "select-dropdown-footer" }, [ renderSlot(_ctx.$slots, "footer") ])) : createCommentVNode("v-if", true) ], 46, ["onMousedown"]); } var HlSelectMenu = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]); export { HlSelectMenu as default }; //# sourceMappingURL=select-dropdown.mjs.map