UNPKG

ll-package

Version:

2 lines (1 loc) 1.9 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i=require("vue"),C=require("../../../_util/KeyCode.js"),P=require("../../../_util/classNames.js"),S=i.defineComponent({compatConfig:{MODE:3},name:"TabNode",props:{id:{type:String},prefixCls:{type:String},tab:{type:Object},active:{type:Boolean},closable:{type:Boolean},editable:{type:Object},onClick:{type:Function},onResize:{type:Function},renderWrapper:{type:Function},removeAriaLabel:{type:String},onFocus:{type:Function}},emits:["click","resize","remove","focus"],setup(a,k){let{expose:$,attrs:g}=k;const b=i.ref();function r(e){var t;!((t=a.tab)===null||t===void 0)&&t.disabled||a.onClick(e)}$({domRef:b});function F(e){var t;e.preventDefault(),e.stopPropagation(),a.editable.onEdit("remove",{key:(t=a.tab)===null||t===void 0?void 0:t.key,event:e})}const v=i.computed(()=>{var e;return a.editable&&a.closable!==!1&&!(!((e=a.tab)===null||e===void 0)&&e.disabled)});return()=>{var e;const{prefixCls:t,id:l,active:f,tab:{key:c,tab:d,disabled:s,closeIcon:u},renderWrapper:p,removeAriaLabel:N,editable:y,onFocus:x}=a,n=`${t}-tab`,m=i.createVNode("div",{key:c,ref:b,class:P.default(n,{[`${n}-with-remove`]:v.value,[`${n}-active`]:f,[`${n}-disabled`]:s}),style:g.style,onClick:r},[i.createVNode("div",{role:"tab","aria-selected":f,id:l&&`${l}-tab-${c}`,class:`${n}-btn`,"aria-controls":l&&`${l}-panel-${c}`,"aria-disabled":s,tabindex:s?null:0,onClick:o=>{o.stopPropagation(),r(o)},onKeydown:o=>{[C.default.SPACE,C.default.ENTER].includes(o.which)&&(o.preventDefault(),r(o))},onFocus:x},[typeof d=="function"?d():d]),v.value&&i.createVNode("button",{type:"button","aria-label":N||"remove",tabindex:0,class:`${n}-remove`,onClick:o=>{o.stopPropagation(),F(o)}},[(u==null?void 0:u())||((e=y.removeIcon)===null||e===void 0?void 0:e.call(y))||"×"])]);return p?p(m):m}}});exports.default=S;