{"version":3,"file":"TabNode.mjs","sources":["../../../../../../../packages/components/tabs/src/TabNavList/TabNode.tsx"],"sourcesContent":["import type { CSSProperties } from 'vue';\nimport { classNames, KeyCode } from '@antdv/utils';\nimport { computed, defineComponent, ref } from 'vue';\nimport { tabNodeProps } from '../props';\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'TabNode',\n  props: tabNodeProps(),\n  emits: ['click', 'resize', 'remove', 'focus'],\n  setup(props, { expose, attrs }) {\n    const domRef = ref();\n    function onInternalClick(e: MouseEvent | KeyboardEvent) {\n      if (props.tab?.disabled)\n        return;\n\n      props.onClick(e);\n    }\n    expose({\n      domRef,\n    });\n    // onBeforeUnmount(() => {\n    //   props.onRemove();\n    // });\n    function onRemoveTab(event: MouseEvent | KeyboardEvent) {\n      event.preventDefault();\n      event.stopPropagation();\n      props.editable.onEdit('remove', {\n        key: props.tab?.key,\n        event,\n      });\n    }\n\n    const removable = computed(\n      () => props.editable && props.closable !== false && !props.tab?.disabled,\n    );\n    return () => {\n      const {\n        prefixCls,\n        id,\n        active,\n        tab: { key, tab, disabled, closeIcon },\n        renderWrapper,\n        removeAriaLabel,\n        editable,\n        onFocus,\n      } = props;\n      const tabPrefix = `${prefixCls}-tab`;\n      const node = (\n        <div\n          key={key}\n          ref={domRef}\n          class={classNames(tabPrefix, {\n            [`${tabPrefix}-with-remove`]: removable.value,\n            [`${tabPrefix}-active`]: active,\n            [`${tabPrefix}-disabled`]: disabled,\n          })}\n          style={attrs.style as CSSProperties}\n          onClick={onInternalClick}\n        >\n          {/* Primary Tab Button */}\n          <div\n            role=\"tab\"\n            aria-selected={active}\n            id={id && `${id}-tab-${key}`}\n            class={`${tabPrefix}-btn`}\n            aria-controls={id && `${id}-panel-${key}`}\n            aria-disabled={disabled}\n            tabindex={disabled ? null : 0}\n            onClick={(e) => {\n              e.stopPropagation();\n              onInternalClick(e);\n            }}\n            onKeydown={(e) => {\n              if ([KeyCode.SPACE, KeyCode.ENTER].includes(e.which)) {\n                e.preventDefault();\n                onInternalClick(e);\n              }\n            }}\n            onFocus={onFocus}\n          >\n            {typeof tab === 'function' ? tab() : tab}\n          </div>\n\n          {/* Remove Button */}\n          {removable.value && (\n            <button\n              type=\"button\"\n              aria-label={removeAriaLabel || 'remove'}\n              tabindex={0}\n              class={`${tabPrefix}-remove`}\n              onClick={(e) => {\n                e.stopPropagation();\n                onRemoveTab(e);\n              }}\n            >\n              {closeIcon?.() || editable.removeIcon?.() || '×'}\n            </button>\n          )}\n        </div>\n      );\n      return renderWrapper ? renderWrapper(node) : node;\n    };\n  },\n});\n"],"names":["compatConfig","MODE","name","props","tabNodeProps","emits","setup","expose","attrs","domRef","ref","onInternalClick","e","tab","disabled","onClick","onRemoveTab","event","preventDefault","stopPropagation","editable","onEdit","key","removable","computed","closable","prefixCls","id","active","closeIcon","renderWrapper","removeAriaLabel","onFocus","tabPrefix","node","_createVNode","classNames","value","style","KeyCode","SPACE","ENTER","includes","which","removeIcon"],"mappings":";;;;;;AAKA,8BAA+B,eAAA,CAAA;AAAA,EAC7BA,YAAc,EAAA;AAAA,IAAEC,IAAM,EAAA,CAAA;AAAA,GAAE;AAAA,EACxBC,IAAM,EAAA,SAAA;AAAA,EACNC,OAAOC,YAAa,EAAA;AAAA,EACpBC,KAAO,EAAA,CAAC,OAAS,EAAA,QAAA,EAAU,UAAU,OAAO,CAAA;AAAA,EAC5CC,MAAMH,KAAO,EAAA;AAAA,IAAEI,MAAAA;AAAAA,IAAQC,KAAAA;AAAAA,GAAS,EAAA;AAC9B,IAAA,MAAMC,SAASC,GAAI,EAAA,CAAA;AACnB,IAAA,SAASC,gBAAgBC,CAA+B,EAAA;;AACtD,MAAIT,IAAAA,CAAAA,EAAAA,GAAAA,KAAAA,CAAMU,QAANV,IAAWW,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,QAAAA;AACb,QAAA,OAAA;AAEFX,MAAAA,KAAAA,CAAMY,QAAQH,CAAC,CAAA,CAAA;AAAA,KACjB;AACAL,IAAO,MAAA,CAAA;AAAA,MACLE,MAAAA;AAAAA,KACD,CAAA,CAAA;AAID,IAAA,SAASO,YAAYC,KAAmC,EAAA;;AACtDA,MAAAA,KAAAA,CAAMC,cAAe,EAAA,CAAA;AACrBD,MAAAA,KAAAA,CAAME,eAAgB,EAAA,CAAA;AACtBhB,MAAMiB,KAAAA,CAAAA,QAAAA,CAASC,OAAO,QAAU,EAAA;AAAA,QAC9BC,GAAAA,EAAAA,CAAKnB,EAAMU,GAAAA,KAAAA,CAAAA,GAAAA,KAANV,IAAWmB,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,GAAAA;AAAAA,QAChBL,KAAAA;AAAAA,OACD,CAAA,CAAA;AAAA,KACH;AAEA,IAAMM,MAAAA,SAAAA,GAAYC,SAChB;;AAAMrB,MAAAA,OAAAA,KAAAA,CAAMiB,YAAYjB,KAAMsB,CAAAA,QAAAA,KAAa,SAAS,EAACtB,CAAAA,EAAAA,GAAAA,KAAAA,CAAMU,QAANV,IAAWW,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,QAAAA,CAAAA,CAAAA;AAAAA,KAClE,CAAA,CAAA;AACA,IAAA,OAAO,MAAM;;AACX,MAAM,MAAA;AAAA,QACJY,SAAAA;AAAAA,QACAC,EAAAA;AAAAA,QACAC,MAAAA;AAAAA,QACAf,GAAK,EAAA;AAAA,UAAES,GAAAA;AAAAA,UAAKT,GAAAA;AAAAA,UAAKC,QAAAA;AAAAA,UAAUe,SAAAA;AAAAA,SAAU;AAAA,QACrCC,aAAAA;AAAAA,QACAC,eAAAA;AAAAA,QACAX,QAAAA;AAAAA,QACAY,OAAAA;AAAAA,OACE7B,GAAAA,KAAAA,CAAAA;AACJ,MAAM8B,MAAAA,SAAAA,GAAa,GAAEP,SAAU,CAAA,IAAA,CAAA,CAAA;AAC/B,MAAMQ,MAAAA,IAAAA,GAAIC,YAAA,KAAA,EAAA;AAAA,QAAA,KAEDb,EAAAA,GAAAA;AAAAA,QAAG,KACHb,EAAAA,MAAAA;AAAAA,QAAM,OAAA,EACJ2B,WAAWH,SAAW,EAAA;AAAA,UAC3B,CAAE,CAAA,EAAEA,SAAU,CAAA,YAAA,CAAa,GAAGV,SAAUc,CAAAA,KAAAA;AAAAA,UACxC,CAAE,CAAA,EAAEJ,SAAU,CAAA,OAAA,CAAQ,GAAGL,MAAAA;AAAAA,UACzB,CAAE,CAAA,EAAEK,SAAU,CAAA,SAAA,CAAU,GAAGnB,QAAAA;AAAAA,SAC5B,CAAA;AAAA,QAAC,SACKN,KAAM8B,CAAAA,KAAAA;AAAAA,QAAK,SACT3B,EAAAA,eAAAA;AAAAA,OAAe,EAAA,CAAAwB,WAAAA,CAAA,KAAA,EAAA;AAAA,QAAA,MAAA,EAAA,KAAA;AAAA,QAAA,eAKPP,EAAAA,MAAAA;AAAAA,QAAM,IACjBD,EAAAA,EAAAA,IAAO,CAAEA,EAAAA,EAAG,QAAOL,GAAI,CAAA,CAAA;AAAA,QAAC,OAAA,EACpB,GAAEW,SAAU,CAAA,IAAA,CAAA;AAAA,QAAK,eACVN,EAAAA,EAAAA,IAAO,CAAEA,EAAAA,EAAG,UAASL,GAAI,CAAA,CAAA;AAAA,QAAC,eAC1BR,EAAAA,QAAAA;AAAAA,QAAQ,UAAA,EACbA,WAAW,IAAO,GAAA,CAAA;AAAA,QAAC,WACnBF,CAAM,CAAA,KAAA;AACdA,UAAAA,CAAAA,CAAEO,eAAgB,EAAA,CAAA;AAClBR,UAAAA,eAAAA,CAAgBC,CAAC,CAAA,CAAA;AAAA,SACnB;AAAA,QAAC,aACWA,CAAM,CAAA,KAAA;AAChB,UAAI,IAAA,CAAC2B,QAAQC,KAAOD,EAAAA,OAAAA,CAAQE,KAAK,CAAEC,CAAAA,QAAAA,CAAS9B,CAAE+B,CAAAA,KAAK,CAAG,EAAA;AACpD/B,YAAAA,CAAAA,CAAEM,cAAe,EAAA,CAAA;AACjBP,YAAAA,eAAAA,CAAgBC,CAAC,CAAA,CAAA;AAAA,WACnB;AAAA,SACF;AAAA,QAAC,SACQoB,EAAAA,OAAAA;AAAAA,OAAO,EAAA,CAEf,OAAOnB,GAAAA,KAAQ,UAAaA,GAAAA,GAAAA,EAAQA,GAAAA,GAAG,CAIzCU,CAAAA,EAAAA,SAAUc,CAAAA,KAAAA,IAAKF,YAAA,QAAA,EAAA;AAAA,QAAA,MAAA,EAAA,QAAA;AAAA,QAAA,cAGAJ,eAAmB,IAAA,QAAA;AAAA,QAAQ,UAC7B,EAAA,CAAA;AAAA,QAAC,OAAA,EACH,GAAEE,SAAU,CAAA,OAAA,CAAA;AAAA,QAAQ,WAClBrB,CAAM,CAAA,KAAA;AACdA,UAAAA,CAAAA,CAAEO,eAAgB,EAAA,CAAA;AAClBH,UAAAA,WAAAA,CAAYJ,CAAC,CAAA,CAAA;AAAA,SACf;AAAA,OAAC,EAAA,EAEAiB,SAAiBT,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,SAAAA,EAAAA,MAAAA,CAAAA,EAAAA,GAAAA,QAAAA,CAASwB,eAATxB,IAA2B,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,QAAA,CAAA,CAAA,IAAA,MAAG,CAAA,CAEnD,CAEJ,CAAA,CAAA;AACD,MAAOU,OAAAA,aAAAA,GAAgBA,aAAcI,CAAAA,IAAI,CAAIA,GAAAA,IAAAA,CAAAA;AAAAA,KAC/C,CAAA;AAAA,GACF;AACF,CAAC,CAAA;;;;"}