UNPKG

tdesign-mobile-vue

Version:
1 lines 5.22 kB
{"version":3,"file":"tab-bar.mjs","sources":["../../src/tab-bar/tab-bar.tsx"],"sourcesContent":["import { defineComponent, ref, provide, Ref, computed, toRefs, VNode } from 'vue';\nimport TabBarProps from './props';\nimport config from '../config';\nimport useChildSlots from '../hooks/useChildSlots';\nimport useVModel from '../hooks/useVModel';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { usePrefixClass } from '../hooks/useClass';\n\nconst { prefix } = config;\n\nexport default defineComponent({\n name: `${prefix}-tab-bar`,\n props: TabBarProps,\n emits: ['update:value', 'update:modelValue', 'change'],\n setup(props, context) {\n const tabBarClass = usePrefixClass('tab-bar');\n\n const renderTNodeJSX = useTNodeJSX();\n\n const { value, modelValue } = toRefs(props);\n const [activeValue, setActiveValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const defaultIndex: Ref<number> = ref(-1);\n const itemCount = ref(0);\n\n const updateChild = (currentValue: number | string) => {\n setActiveValue(currentValue);\n };\n\n const rootClass = computed(() => [\n `${tabBarClass.value}`,\n {\n [`${tabBarClass.value}--bordered`]: props.bordered,\n [`${tabBarClass.value}--fixed`]: props.fixed,\n [`${tabBarClass.value}--safe`]: props.safeAreaInsetBottom,\n },\n `${tabBarClass.value}--${props.shape}`,\n ]);\n\n provide('tab-bar', {\n ...toRefs(props),\n defaultIndex,\n activeValue,\n itemCount,\n updateChild,\n });\n\n // 在渲染函数中调用插槽函数并更新子节点数量\n const updateItemCount = (vNodes?: VNode[]) => {\n if (!vNodes || !Array.isArray(vNodes)) {\n itemCount.value = 0;\n return;\n }\n\n const childSlots = useChildSlots(`${prefix}-tab-bar-item`, vNodes);\n itemCount.value = childSlots.length;\n };\n\n return () => {\n const vNodes = context.slots.default ? context.slots.default() : [];\n updateItemCount(vNodes);\n\n return (\n <div class={rootClass.value} role=\"tablist\">\n {renderTNodeJSX('default')}\n </div>\n );\n };\n },\n});\n"],"names":["prefix","config","defineComponent","name","props","TabBarProps","emits","setup","context","tabBarClass","usePrefixClass","renderTNodeJSX","useTNodeJSX","_toRefs","toRefs","value","modelValue","_useVModel","useVModel","defaultValue","onChange","_useVModel2","_slicedToArray","activeValue","setActiveValue","defaultIndex","ref","itemCount","updateChild","currentValue","rootClass","computed","concat","_defineProperty","bordered","fixed","safeAreaInsetBottom","shape","provide","_objectSpread","updateItemCount","vNodes","Array","isArray","childSlots","useChildSlots","length","slots","default","_createVNode"],"mappings":"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"}