{"version":3,"file":"plain-tabs2.mjs","sources":["../../../../../../packages/components/plain-tabs/src/plain-tabs.vue"],"sourcesContent":["<template>\n  <div :class=\"ns.b()\" :role=\"type\">\n    <div :class=\"ns.e('header')\">\n      <template v-if=\"type === 'card'\">\n        <div :class=\"ns.e('prepend')\">\n          <slot name=\"prepend\" />\n        </div>\n        <div :class=\"ns.e('list')\">\n          <div\n            v-for=\"(item, index) in options\"\n            :key=\"item.value\"\n            :class=\"[\n              ns.e('item'),\n              item.value === modelValue ? ns.em('item', 'active') : '',\n            ]\"\n            @click=\"handleClick(item, index)\"\n          >\n            <slot name=\"label\" v-bind=\"{ ...item }\">\n              <div v-if=\"index !== 0\" :class=\"ns.e('placeholder')\" />\n              <div :class=\"[ns.e('label')]\">\n                {{ item.label }}\n              </div>\n            </slot>\n          </div>\n        </div>\n        <div :class=\"ns.e('append')\">\n          <slot name=\"append\" />\n        </div>\n      </template>\n      <template v-if=\"type === 'line'\">\n        <div :class=\"ns.e('nav-list')\">\n          <div\n            v-for=\"(item, index) in options\"\n            :key=\"item.value\"\n            :class=\"[\n              ns.e('nav-list-item'),\n              item.value === modelValue ? ns.em('nav-list-item', 'active') : '',\n            ]\"\n            @click=\"handleClick(item, index)\"\n          >\n            <slot name=\"label\" v-bind=\"{ ...item }\">\n              <el-text :type=\"item.value === modelValue ? 'primary' : ''\">\n                {{ item.label }}\n              </el-text>\n              <el-divider v-if=\"index !== len\" direction=\"vertical\" />\n            </slot>\n          </div>\n        </div>\n      </template>\n    </div>\n    <div :class=\"ns.e('conent')\">\n      <slot v-bind=\"{ action: action, transitionName }\" />\n    </div>\n  </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, ref } from 'vue'\nimport { ElDivider, ElText, useNamespace } from 'element-plus'\nimport { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { plainTabsEmits, plainTabsProps } from './plain-tabs'\nimport type { PlainTabsOption } from './plain-tabs'\n\ndefineOptions({\n  name: 'ElPlainTabs',\n})\n\nconst props = defineProps(plainTabsProps)\nconst emit = defineEmits(plainTabsEmits)\nconst ns = useNamespace('plain-tabs')\n\nconst action = ref<'next' | 'prev' | ''>('')\nconst len = computed(() => (props.options ? props.options.length - 1 : 0))\nconst transitionName = computed(() =>\n  action.value === 'next'\n    ? 'next-transition'\n    : action.value === 'prev'\n    ? 'prev-transition'\n    : ''\n)\n\nconst handleClick = (item: PlainTabsOption, index: number) => {\n  if (item.disabled) {\n    return\n  }\n  const preIndex = (props.options ?? [])?.findIndex(\n    (_: PlainTabsOption) => _.value === props.modelValue\n  )\n  const currentIndex = index\n  if (preIndex !== currentIndex) {\n    action.value = currentIndex > preIndex ? 'next' : 'prev'\n  }\n  emit(UPDATE_MODEL_EVENT, item.value)\n  emit(CHANGE_EVENT, item.value)\n}\n</script>\n"],"names":[],"mappings":";;;;;;mCA+Dc,CAAA;AAAA,EACZ,IAAM,EAAA,aAAA;AACR,CAAA,CAAA,CAAA;;;;;;AAEA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AACd,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AACP,IAAA,MAAA,EAAA,GAAK,aAAa,YAAY,CAAA,CAAA;AAE9B,IAAA,MAAA,MAAA,GAAS,IAA0B,EAAE,CAAA,CAAA;AACrC,IAAA,MAAA,GAAA,GAAM,SAAS,MAAO,KAAA,CAAM,UAAU,KAAM,CAAA,OAAA,CAAQ,MAAS,GAAA,CAAA,GAAI,CAAE,CAAA,CAAA;AACzE,IAAA,MAAM,cAAiB,GAAA,QAAA;AAAA,MAAS,MAC9B,OAAO,KAAU,KAAA,MAAA,GACb,oBACA,MAAO,CAAA,KAAA,KAAU,SACjB,iBACA,GAAA,EAAA;AAAA,KACN,CAAA;AAEM,IAAA,MAAA,WAAA,GAAc,CAAC,IAAA,EAAuB,KAAkB,KAAA;;AAC5D,MAAA,IAAI,KAAK,QAAU,EAAA;AACjB,QAAA,OAAA;AAAA,OACF;AACA,MAAA,MAAM,YAAY,EAAM,GAAA,CAAA,EAAA,GAAA,KAAA,CAAA,OAAA,KAAN,IAAiB,GAAA,EAAA,GAAA,OAAjB,IAAsB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,SAAA;AAAA,QACtC,CAAC,CAAA,KAAuB,CAAE,CAAA,KAAA,KAAU,KAAM,CAAA,UAAA;AAAA,OAAA,CAAA;AAE5C,MAAA,MAAM,YAAe,GAAA,KAAA,CAAA;AACrB,MAAA,IAAI,aAAa,YAAc,EAAA;AACtB,QAAA,MAAA,CAAA,KAAA,GAAQ,YAAe,GAAA,QAAA,GAAW,MAAS,GAAA,MAAA,CAAA;AAAA,OACpD;AACK,MAAA,IAAA,CAAA,kBAAA,EAAoB,KAAK,KAAK,CAAA,CAAA;AAC9B,MAAA,IAAA,CAAA,YAAA,EAAc,KAAK,KAAK,CAAA,CAAA;AAAA,KAC/B,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}