UNPKG

ll-package

Version:

2 lines (1 loc) 2.18 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("../../../../@babel/runtime/helpers/esm/extends.js"),t=require("vue"),A=require("../../vc-trigger/Trigger.js"),m=require("./hooks/useMenuContext.js"),v=require("./placements.js"),s=require("../../_util/raf.js"),D=require("../../_util/classNames.js"),_=require("../../_util/transition.js"),j={horizontal:"bottomLeft",vertical:"rightTop","vertical-left":"rightTop","vertical-right":"leftTop"},w=t.defineComponent({compatConfig:{MODE:3},name:"PopupTrigger",inheritAttrs:!1,props:{prefixCls:String,mode:String,visible:Boolean,popupClassName:String,popupOffset:Array,disabled:Boolean,onVisibleChange:Function},slots:Object,emits:["visibleChange"],setup(u,g){let{slots:r,emit:b}=g;const p=t.shallowRef(!1),{getPopupContainer:C,rtl:c,subMenuOpenDelay:h,subMenuCloseDelay:M,builtinPlacements:d,triggerSubMenuAction:P,forceSubMenuRender:q,motion:R,defaultMotions:f,rootClassName:T}=m.useInjectMenu(),y=m.useInjectForceRender(),S=t.computed(()=>c.value?a.default(a.default({},v.placementsRtl),d.value):a.default(a.default({},v.placements),d.value)),N=t.computed(()=>j[u.mode]),i=t.shallowRef();t.watch(()=>u.visible,e=>{s.default.cancel(i.value),i.value=s.default(()=>{p.value=e})},{immediate:!0}),t.onBeforeUnmount(()=>{s.default.cancel(i.value)});const O=e=>{b("visibleChange",e)},V=t.computed(()=>{var e,o;const n=R.value||((e=f.value)===null||e===void 0?void 0:e[u.mode])||((o=f.value)===null||o===void 0?void 0:o.other),l=typeof n=="function"?n():n;return l?_.getTransitionProps(l.name,{css:!0}):void 0});return()=>{const{prefixCls:e,popupClassName:o,mode:n,popupOffset:l,disabled:x}=u;return t.createVNode(A.default,{prefixCls:e,popupClassName:D.default(`${e}-popup`,{[`${e}-rtl`]:c.value},o,T.value),stretch:n==="horizontal"?"minWidth":null,getPopupContainer:C.value,builtinPlacements:S.value,popupPlacement:N.value,popupVisible:p.value,popupAlign:l&&{offset:l},action:x?[]:[P.value],mouseEnterDelay:h.value,mouseLeaveDelay:M.value,onPopupVisibleChange:O,forceRender:y||q.value,popupAnimation:V.value},{popup:r.popup,default:r.default})}}});exports.default=w;