ll-package
Version:
2 lines (1 loc) • 4.13 kB
JavaScript
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("vue");require("../../../menu/index.js");const _=require("../../../vc-dropdown/Dropdown.js"),R=require("./AddButton.js"),G=require("../../../_util/type.js"),n=require("../../../_util/KeyCode.js"),S=require("../../../_util/classNames.js"),W=require("../../../_util/vue-types/index.js"),$=require("../../../_util/hooks/useState.js"),F=require("../../../../../@ant-design/icons-vue/es/icons/EllipsisOutlined.js"),U=require("../../../menu/src/OverrideContext.js"),z=require("../../../menu/src/Menu.js"),H=require("../../../menu/src/MenuItem.js"),q={prefixCls:{type:String},id:{type:String},tabs:{type:Object},rtl:{type:Boolean},tabBarGutter:{type:Number},activeKey:{type:[String,Number]},mobile:{type:Boolean},moreIcon:W.default.any,moreTransitionName:{type:String},editable:{type:Object},locale:{type:Object,default:void 0},removeAriaLabel:String,onTabClick:{type:Function},popupClassName:String,getPopupContainer:G.functionType()},J=t.defineComponent({compatConfig:{MODE:3},name:"OperationNode",inheritAttrs:!1,props:q,emits:["tabClick"],slots:Object,setup(r,E){let{attrs:C,slots:g}=E;const[u,f]=$.default(!1),[i,k]=$.default(null),h=e=>{const o=r.tabs.filter(a=>!a.disabled);let d=o.findIndex(a=>a.key===i.value)||0;const s=o.length;for(let a=0;a<s;a+=1){d=(d+e+s)%s;const m=o[d];if(!m.disabled){k(m.key);return}}},P=e=>{const{which:o}=e;if(!u.value){[n.default.DOWN,n.default.SPACE,n.default.ENTER].includes(o)&&(f(!0),e.preventDefault());return}switch(o){case n.default.UP:h(-1),e.preventDefault();break;case n.default.DOWN:h(1),e.preventDefault();break;case n.default.ESC:f(!1);break;case n.default.SPACE:case n.default.ENTER:i.value!==null&&r.onTabClick(i.value,e);break}},v=t.computed(()=>`${r.id}-more-popup`),x=t.computed(()=>i.value!==null?`${v.value}-${i.value}`:null),V=(e,o)=>{e.preventDefault(),e.stopPropagation(),r.editable.onEdit("remove",{key:o,event:e})};return t.onMounted(()=>{t.watch(i,()=>{const e=document.getElementById(x.value);e&&e.scrollIntoView&&e.scrollIntoView(!1)},{flush:"post",immediate:!0})}),t.watch(u,()=>{u.value||k(null)}),U.useProvideOverride({}),()=>{var e;const{prefixCls:o,id:d,tabs:s,locale:a,mobile:m,moreIcon:D=((e=g.moreIcon)===null||e===void 0?void 0:e.call(g))||t.createVNode(F.default,null,null),moreTransitionName:T,editable:b,tabBarGutter:A,rtl:O,onTabClick:K,popupClassName:B}=r;if(!s.length)return null;const y=`${o}-dropdown`,w=a==null?void 0:a.dropdownAriaLabel,N={[O?"marginRight":"marginLeft"]:A};s.length||(N.visibility="hidden",N.order=1);const L=S.default({[`${y}-rtl`]:O,[`${B}`]:!0}),M=m?null:t.createVNode(_.default,{prefixCls:y,trigger:["hover"],visible:u.value,transitionName:T,onVisibleChange:f,overlayClassName:L,mouseEnterDelay:.1,mouseLeaveDelay:.1,getPopupContainer:r.getPopupContainer},{overlay:()=>t.createVNode(z.default,{onClick:l=>{let{key:c,domEvent:p}=l;K(c,p),f(!1)},id:v.value,tabindex:-1,role:"listbox","aria-activedescendant":x.value,selectedKeys:[i.value],"aria-label":w!==void 0?w:"expanded dropdown"},{default:()=>[s.map(l=>{var c,p;const j=b&&l.closable!==!1&&!l.disabled;return t.createVNode(H.default,{key:l.key,id:`${v.value}-${l.key}`,role:"option","aria-controls":d&&`${d}-panel-${l.key}`,disabled:l.disabled},{default:()=>[t.createVNode("span",null,[typeof l.tab=="function"?l.tab():l.tab]),j&&t.createVNode("button",{type:"button","aria-label":r.removeAriaLabel||"remove",tabindex:0,class:`${y}-menu-item-remove`,onClick:I=>{I.stopPropagation(),V(I,l.key)}},[((c=l.closeIcon)===null||c===void 0?void 0:c.call(l))||((p=b.removeIcon)===null||p===void 0?void 0:p.call(b))||"×"])]})})]}),default:()=>t.createVNode("button",{type:"button",class:`${o}-nav-more`,style:N,tabindex:-1,"aria-hidden":"true","aria-haspopup":"listbox","aria-controls":v.value,id:`${d}-more`,"aria-expanded":u.value,onKeydown:P},[D])});return t.createVNode("div",{class:S.default(`${o}-nav-operations`,C.class),style:C.style},[M,t.createVNode(R.default,{prefixCls:o,locale:a,editable:b},null)])}}});exports.default=J;exports.operationNodeProps=q;
;