UNPKG

ll-package

Version:

2 lines (1 loc) 6.27 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const b=require("../../../../@babel/runtime/helpers/esm/objectSpread2.js"),u=require("../../../../@babel/runtime/helpers/esm/extends.js"),n=require("vue"),O=require("./TabNavList/index.js"),ae=require("./TabPanelList/index.js"),z=require("../../_util/props-util/index.js"),ne=require("../../config-provider/hooks/useConfigInject.js"),_=require("../../_util/hooks/useState.js"),le=require("../../vc-util/isMobile.js"),V=require("../../_util/hooks/useMergedState.js"),D=require("../../_util/classNames.js"),ie=require("../../../../@ant-design/icons-vue/es/icons/CloseOutlined.js"),re=require("../../../../@ant-design/icons-vue/es/icons/PlusOutlined.js"),q=require("../../vc-util/devWarning.js"),oe=require("./TabContext.js"),a=require("../../_util/type.js"),de=require("../../../../lodash-es/pick.js"),ue=require("../../_util/vue-types/index.js"),se=require("../../_util/omit.js"),ce=require("../style/index.js"),R=require("../../_util/props-util/initDefaultProps.js"),fe=require("../../_util/util.js");let w=0;const N=()=>({prefixCls:{type:String},id:{type:String},popupClassName:String,getPopupContainer:a.functionType(),activeKey:{type:[String,Number]},defaultActiveKey:{type:[String,Number]},direction:a.stringType(),animated:a.someType([Boolean,Object]),renderTabBar:a.functionType(),tabBarGutter:{type:Number},tabBarStyle:a.objectType(),tabPosition:a.stringType(),destroyInactiveTabPane:a.booleanType(),hideAdd:Boolean,type:a.stringType(),size:a.stringType(),centered:Boolean,onEdit:a.functionType(),onChange:a.functionType(),onTabClick:a.functionType(),onTabScroll:a.functionType(),"onUpdate:activeKey":a.functionType(),locale:a.objectType(),onPrevClick:a.functionType(),onNextClick:a.functionType(),tabBarExtraContent:ue.default.any});function be(e){return e.map(i=>{if(z.isValidElement(i)){const d=u.default({},i.props||{});for(const[C,p]of Object.entries(d))delete d[C],d[fe.camelize(C)]=p;const r=i.children||{},c=i.key!==void 0?i.key:void 0,{tab:y=r.tab,disabled:o,forceRender:v,closable:P,animated:x,active:m,destroyInactiveTabPane:T}=d;return u.default(u.default({key:c},d),{node:i,closeIcon:r.closeIcon,tab:y,disabled:o===""||o,forceRender:v===""||v,closable:P===""||P,animated:x===""||x,active:m===""||m,destroyInactiveTabPane:T===""||T})}return null}).filter(i=>i)}const ve=n.defineComponent({compatConfig:{MODE:3},name:"InternalTabs",inheritAttrs:!1,props:u.default(u.default({},R.default(N(),{tabPosition:"top",animated:{inkBar:!0,tabPane:!1}})),{tabs:a.arrayType()}),slots:Object,setup(e,i){let{attrs:d,slots:r}=i;q.default(e.onPrevClick===void 0&&e.onNextClick===void 0,"Tabs","`onPrevClick / @prevClick` and `onNextClick / @nextClick` has been removed. Please use `onTabScroll / @tabScroll` instead."),q.default(e.tabBarExtraContent===void 0,"Tabs","`tabBarExtraContent` prop has been removed. Please use `rightExtra` slot instead."),q.default(r.tabBarExtraContent===void 0,"Tabs","`tabBarExtraContent` slot is deprecated. Please use `rightExtra` slot instead.");const{prefixCls:c,direction:y,size:o,rootPrefixCls:v,getPopupContainer:P}=ne.default("tabs",e),[x,m]=ce.default(c),T=n.computed(()=>y.value==="rtl"),C=n.computed(()=>{const{animated:t,tabPosition:l}=e;return t===!1||["left","right"].includes(l)?{inkBar:!1,tabPane:!1}:t===!0?{inkBar:!0,tabPane:!0}:u.default({inkBar:!0,tabPane:!1},typeof t=="object"?t:{})}),[p,G]=_.default(!1);n.onMounted(()=>{G(le.default())});const[h,E]=V.default(()=>{var t;return(t=e.tabs[0])===null||t===void 0?void 0:t.key},{value:n.computed(()=>e.activeKey),defaultValue:e.defaultActiveKey}),[U,L]=_.default(()=>e.tabs.findIndex(t=>t.key===h.value));n.watchEffect(()=>{var t;let l=e.tabs.findIndex(f=>f.key===h.value);l===-1&&(l=Math.max(0,Math.min(U.value,e.tabs.length-1)),E((t=e.tabs[l])===null||t===void 0?void 0:t.key)),L(l)});const[W,F]=V.default(null,{value:n.computed(()=>e.id)}),S=n.computed(()=>p.value&&!["left","right"].includes(e.tabPosition)?"top":e.tabPosition);n.onMounted(()=>{e.id||(F(`rc-tabs-${process.env.NODE_ENV==="test"?"test":w}`),w+=1)});const H=(t,l)=>{var f,g;(f=e.onTabClick)===null||f===void 0||f.call(e,t,l);const B=t!==h.value;E(t),B&&((g=e.onChange)===null||g===void 0||g.call(e,t))};return oe.useProvideTabs({tabs:n.computed(()=>e.tabs),prefixCls:c}),()=>{const{id:t,type:l,tabBarGutter:f,tabBarStyle:g,locale:B,destroyInactiveTabPane:J,renderTabBar:$=r.renderTabBar,onTabScroll:Q,hideAdd:X,centered:Y}=e,A={id:W.value,activeKey:h.value,animated:C.value,tabPosition:S.value,rtl:T.value,mobile:p.value};let M;l==="editable-card"&&(M={onEdit:(K,Z)=>{let{key:ee,event:te}=Z;var k;(k=e.onEdit)===null||k===void 0||k.call(e,K==="add"?te:ee,K)},removeIcon:()=>n.createVNode(ie.default,null,null),addIcon:r.addIcon?r.addIcon:()=>n.createVNode(re.default,null,null),showAdd:X!==!0});let I;const j=u.default(u.default({},A),{moreTransitionName:`${v.value}-slide-up`,editable:M,locale:B,tabBarGutter:f,onTabClick:H,onTabScroll:Q,style:g,getPopupContainer:P.value,popupClassName:D.default(e.popupClassName,m.value)});$?I=$(u.default(u.default({},j),{DefaultTabBar:O.default})):I=n.createVNode(O.default,j,de.default(r,["moreIcon","leftExtra","rightExtra","tabBarExtraContent"]));const s=c.value;return x(n.createVNode("div",b.default(b.default({},d),{},{id:t,class:D.default(s,`${s}-${S.value}`,{[m.value]:!0,[`${s}-${o.value}`]:o.value,[`${s}-card`]:["card","editable-card"].includes(l),[`${s}-editable-card`]:l==="editable-card",[`${s}-centered`]:Y,[`${s}-mobile`]:p.value,[`${s}-editable`]:l==="editable-card",[`${s}-rtl`]:T.value},d.class)}),[I,n.createVNode(ae.default,b.default(b.default({destroyInactiveTabPane:J},A),{},{animated:C.value}),null)]))}}}),ye=n.defineComponent({compatConfig:{MODE:3},name:"ATabs",inheritAttrs:!1,props:R.default(N(),{tabPosition:"top",animated:{inkBar:!0,tabPane:!1}}),slots:Object,setup(e,i){let{attrs:d,slots:r,emit:c}=i;const y=o=>{c("update:activeKey",o),c("change",o)};return()=>{var o;const v=be(z.flattenChildren((o=r.default)===null||o===void 0?void 0:o.call(r)));return n.createVNode(ve,b.default(b.default(b.default({},se.default(e,["onUpdate:activeKey"])),d),{},{onChange:y,tabs:v}),r)}}});exports.default=ye;exports.tabsProps=N;