UNPKG

tav-ui

Version:
107 lines (104 loc) 5.82 kB
import { defineComponent, openBlock, createBlock, unref, mergeProps, withCtx, createVNode, createElementBlock, Fragment, renderList, withModifiers, createCommentVNode, createSlots, createElementVNode, normalizeClass, toDisplayString, renderSlot } from 'vue'; import { Dropdown as Dropdown$1, Menu } from 'ant-design-vue'; import { TaButtonModal } from '../../button-modal/index2.mjs'; import { TaIcon } from '../../icon/index2.mjs'; import '../../../utils/index2.mjs'; import { dropdownProps } from './types2.mjs'; import _export_sfc from '../../../../_virtual/plugin-vue_export-helper.mjs'; import { isDef } from '../../../utils/is2.mjs'; const _hoisted_1 = { style: { "position": "relative" } }; const _sfc_main = /* @__PURE__ */ defineComponent({ props: dropdownProps, emits: ["menuEvent", "menuItemPopConfirmVisible"], setup(__props, { emit }) { const props = __props; const ADropdown = Dropdown$1; const AMenu = Menu; const AMenuItem = Menu.Item; const AMenuDivider = Menu.Divider; function handleClickMenu(item) { const { event } = item; if (isDef(event)) { const menu = props.dropMenuList.find((item2) => `${item2.event}` === `${event}`); menu && emit("menuEvent", menu); } item.onClick?.(); } const getAttr = (key) => ({ key }); return (_ctx, _cache) => { return openBlock(), createBlock(unref(ADropdown), mergeProps({ trigger: _ctx.trigger }, _ctx.$attrs, { "overlay-class-name": props.overlayClassName }), { overlay: withCtx(() => [ createVNode(unref(AMenu), { "selected-keys": _ctx.selectedKeys }, { default: withCtx(() => [ (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.dropMenuList, (item) => { return openBlock(), createElementBlock(Fragment, { key: `${item.event}` }, [ createVNode(unref(AMenuItem), mergeProps(getAttr(item.event), { disabled: item.disabled, size: "small", onClick: withModifiers(($event) => handleClickMenu(item), ["stop", "prevent"]) }), { default: withCtx(() => [ createCommentVNode(' <a-popconfirm\n v-if="popconfirm && item.popConfirm"\n v-bind="getPopConfirmAttrs(item.popConfirm)"\n :getPopupContainer="item.getPopupContainer"\n @visibleChange="handlePopConfirmVisible"\n >\n <template #icon v-if="item.popConfirm.icon">\n <Icon :icon="item.popConfirm.icon" />\n </template>\n <div>\n <Icon :icon="item.icon" v-if="item.icon" />\n <span class="ml-1">{{ item.text }}</span>\n </div>\n </a-popconfirm> '), _ctx.popconfirm && item.popConfirm ? (openBlock(), createBlock(unref(TaButtonModal), mergeProps({ key: 0 }, item, { "is-in-drop-down": true }), createSlots({ default: withCtx(() => [ createElementVNode("div", null, [ item.icon ? (openBlock(), createBlock(unref(TaIcon), { key: 0, icon: item.icon }, null, 8, ["icon"])) : createCommentVNode("v-if", true), createElementVNode("span", { class: normalizeClass(`ml-1 ant-btn ant-btn-${item.type ?? "link"} ant-btn-sm ${item.className ?? ""}`), style: { "font-size": "12px" } }, toDisplayString(item.text), 3) ]) ]), _: 2 }, [ item.popConfirm.icon ? { name: "icon", fn: withCtx(() => [ createVNode(unref(TaIcon), { icon: item.popConfirm.icon }, null, 8, ["icon"]) ]) } : void 0 ]), 1040)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [ item.icon ? (openBlock(), createBlock(unref(TaIcon), { key: 0, icon: item.icon }, null, 8, ["icon"])) : createCommentVNode("v-if", true), createElementVNode("span", { class: normalizeClass(`ml-1 ant-btn ant-btn-${item.type ?? "link"} ant-btn-sm ${item.className ?? ""}`), style: { "font-size": "12px" } }, toDisplayString(item.text), 3), createCommentVNode(' <span class="ml-1">{{ item.text }}</span> ') ], 64)) ]), _: 2 }, 1040, ["disabled", "onClick"]), item.divider ? (openBlock(), createBlock(unref(AMenuDivider), { key: `d-${item.event}` })) : createCommentVNode("v-if", true) ], 64); }), 128)) ]), _: 1 }, 8, ["selected-keys"]) ]), default: withCtx(() => [ createElementVNode("span", _hoisted_1, [ renderSlot(_ctx.$slots, "default") ]) ]), _: 3 }, 16, ["trigger", "overlay-class-name"]); }; } }); var Dropdown = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/home/runner/work/tav-ui/tav-ui/packages/components/dropdown/src/dropdown.vue"]]); export { Dropdown as default }; //# sourceMappingURL=dropdown2.mjs.map