hongluan-ui
Version:
Hongluan Component Library for Vue 3
54 lines (51 loc) • 2 kB
JavaScript
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