{"version":3,"file":"Tabs.cjs","sources":["../../../../../../packages/components/tabs/src/Tabs.tsx"],"sourcesContent":["import type { SlotsType } from 'vue';\nimport type { Tab } from './interface';\n\nimport { camelize, flattenChildren, initDefaultProps, isValidElement, omit } from '@antdv/utils';\n\n// Accessibility https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/Tab_Role\nimport { defineComponent } from 'vue';\nimport InternalTabs from './InternalTabs';\nimport { tabsProps } from './props';\n\nfunction parseTabList(children: any[]): Tab[] {\n  return children\n    .map((node) => {\n      if (isValidElement(node)) {\n        const props = { ...(node.props || {}) };\n        for (const [k, v] of Object.entries(props)) {\n          delete props[k];\n          props[camelize(k)] = v;\n        }\n        const slots = node.children || {};\n        const key = node.key !== undefined ? node.key : undefined;\n        const {\n          tab = slots.tab,\n          disabled,\n          forceRender,\n          closable,\n          animated,\n          active,\n          destroyInactiveTabPane,\n        } = props;\n        return {\n          key,\n          ...props,\n          node,\n          closeIcon: slots.closeIcon,\n          tab,\n          disabled: disabled === '' || disabled,\n          forceRender: forceRender === '' || forceRender,\n          closable: closable === '' || closable,\n          animated: animated === '' || animated,\n          active: active === '' || active,\n          destroyInactiveTabPane: destroyInactiveTabPane === '' || destroyInactiveTabPane,\n        };\n      }\n\n      return null;\n    })\n    .filter(tab => tab);\n}\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'ATabs',\n  inheritAttrs: false,\n  props: initDefaultProps(tabsProps(), {\n    tabPosition: 'top',\n    animated: {\n      inkBar: true,\n      tabPane: false,\n    },\n  }),\n  slots: Object as SlotsType<{\n    tabBarExtraContent?: any\n    leftExtra?: any\n    rightExtra?: any\n    moreIcon?: any\n    addIcon?: any\n    removeIcon?: any\n    renderTabBar?: any\n    default?: any\n  }>,\n  // emits: ['tabClick', 'tabScroll', 'change', 'update:activeKey'],\n  setup(props, { attrs, slots, emit }) {\n    const handleChange = (key: string) => {\n      emit('update:activeKey', key);\n      emit('change', key);\n    };\n    return () => {\n      const tabs = parseTabList(flattenChildren(slots.default?.()));\n      return (\n        <InternalTabs\n          {...omit(props, ['onUpdate:activeKey', 'onChange'])}\n          {...attrs}\n          onChange={handleChange}\n          tabs={tabs}\n          v-slots={slots}\n        />\n      );\n    };\n  },\n});\n"],"names":["parseTabList","children","map","node","isValidElement","props","k","v","Object","entries","camelize","slots","key","undefined","tab","disabled","forceRender","closable","animated","active","destroyInactiveTabPane","closeIcon","filter","defineComponent","compatConfig","MODE","name","inheritAttrs","initDefaultProps","tabsProps","tabPosition","inkBar","tabPane","setup","attrs","emit","handleChange","tabs","flattenChildren","default","_createVNode","InternalTabs","omit"],"mappings":";;;;;;;;;;;;;;AAUA,SAASA,aAAaC,QAAwB,EAAA;AAC5C,EAAOA,OAAAA,QAAAA,CACJC,IAAKC,CAAS,IAAA,KAAA;AACb,IAAIC,IAAAA,iBAAAA,CAAeD,IAAI,CAAG,EAAA;AACxB,MAAA,MAAME,KAAQ,GAAA;AAAA,QAAE,GAAIF,IAAKE,CAAAA,KAAAA,IAAS,EAAC;AAAA,OAAG,CAAA;AACtC,MAAA,KAAA,MAAW,CAACC,CAAGC,EAAAA,CAAC,KAAKC,MAAOC,CAAAA,OAAAA,CAAQJ,KAAK,CAAG,EAAA;AAC1C,QAAA,OAAOA,MAAMC,CAAC,CAAA,CAAA;AACdD,QAAMK,KAAAA,CAAAA,iBAAAA,CAASJ,CAAC,CAAC,CAAIC,GAAAA,CAAAA,CAAAA;AAAAA,OACvB;AACA,MAAMI,MAAAA,KAAAA,GAAQR,IAAKF,CAAAA,QAAAA,IAAY,EAAC,CAAA;AAChC,MAAA,MAAMW,GAAMT,GAAAA,IAAAA,CAAKS,GAAQC,KAAAA,KAAAA,CAAAA,GAAYV,KAAKS,GAAMC,GAAAA,KAAAA,CAAAA,CAAAA;AAChD,MAAM,MAAA;AAAA,QACJC,MAAMH,KAAMG,CAAAA,GAAAA;AAAAA,QACZC,QAAAA;AAAAA,QACAC,WAAAA;AAAAA,QACAC,QAAAA;AAAAA,QACAC,QAAAA;AAAAA,QACAC,MAAAA;AAAAA,QACAC,sBAAAA;AAAAA,OACEf,GAAAA,KAAAA,CAAAA;AACJ,MAAO,OAAA;AAAA,QACLO,GAAAA;AAAAA,QACA,GAAGP,KAAAA;AAAAA,QACHF,IAAAA;AAAAA,QACAkB,WAAWV,KAAMU,CAAAA,SAAAA;AAAAA,QACjBP,GAAAA;AAAAA,QACAC,QAAAA,EAAUA,aAAa,EAAMA,IAAAA,QAAAA;AAAAA,QAC7BC,WAAAA,EAAaA,gBAAgB,EAAMA,IAAAA,WAAAA;AAAAA,QACnCC,QAAAA,EAAUA,aAAa,EAAMA,IAAAA,QAAAA;AAAAA,QAC7BC,QAAAA,EAAUA,aAAa,EAAMA,IAAAA,QAAAA;AAAAA,QAC7BC,MAAAA,EAAQA,WAAW,EAAMA,IAAAA,MAAAA;AAAAA,QACzBC,sBAAAA,EAAwBA,2BAA2B,EAAMA,IAAAA,sBAAAA;AAAAA,OAC3D,CAAA;AAAA,KACF;AAEA,IAAO,OAAA,IAAA,CAAA;AAAA,GACR,CAAA,CACAE,MAAOR,CAAAA,CAAAA,GAAAA,KAAOA,GAAG,CAAA,CAAA;AACtB,CAAA;AAEA,4BAA+BS,mBAAA,CAAA;AAAA,EAC7BC,YAAc,EAAA;AAAA,IAAEC,IAAM,EAAA,CAAA;AAAA,GAAE;AAAA,EACxBC,IAAM,EAAA,OAAA;AAAA,EACNC,YAAc,EAAA,KAAA;AAAA,EACdtB,KAAAA,EAAOuB,iCAAiBC,CAAAA,eAAAA,EAAa,EAAA;AAAA,IACnCC,WAAa,EAAA,KAAA;AAAA,IACbZ,QAAU,EAAA;AAAA,MACRa,MAAQ,EAAA,IAAA;AAAA,MACRC,OAAS,EAAA,KAAA;AAAA,KACX;AAAA,GACD,CAAA;AAAA,EACDrB,KAAOH,EAAAA,MAAAA;AAAAA;AAAAA,EAWPyB,MAAM5B,KAAO,EAAA;AAAA,IAAE6B,KAAAA;AAAAA,IAAOvB,KAAAA;AAAAA,IAAOwB,IAAAA;AAAAA,GAAQ,EAAA;AACnC,IAAA,MAAMC,eAAgBxB,CAAgB,GAAA,KAAA;AACpCuB,MAAAA,IAAAA,CAAK,oBAAoBvB,GAAG,CAAA,CAAA;AAC5BuB,MAAAA,IAAAA,CAAK,UAAUvB,GAAG,CAAA,CAAA;AAAA,KACpB,CAAA;AACA,IAAA,OAAO,MAAM;;AACX,MAAA,MAAMyB,OAAOrC,YAAasC,CAAAA,uBAAAA,CAAAA,CAAgB3B,EAAM4B,GAAAA,KAAAA,CAAAA,OAAAA,KAAN5B,8BAAiB,CAAC,CAAA,CAAA;AAC5D,MAAA,OAAA6B,gBAAAC,oBAAA,EAAA;AAAA,QAAA,GAEQC,SAAKrC,CAAAA,KAAAA,EAAO,CAAC,oBAAA,EAAsB,UAAU,CAAC,CAAA;AAAA,QAAC,GAC/C6B,KAAAA;AAAAA,QAAK,UACCE,EAAAA,YAAAA;AAAAA,QAAY,MAChBC,EAAAA,IAAAA;AAAAA,SACG1B,KAAK,CAAA,CAAA;AAAA,KAGpB,CAAA;AAAA,GACF;AACF,CAAC,CAAA;;;;"}