tdesign-mobile-vue
Version:
tdesign-mobile-vue
1 lines • 16.6 kB
Source Map (JSON)
{"version":3,"file":"dropdown-menu.mjs","sources":["../../src/dropdown-menu/dropdown-menu.tsx"],"sourcesContent":["import { defineComponent, computed, ref, reactive, watch, provide } from 'vue';\nimport { onClickOutside } from '@vueuse/core';\nimport { CaretDownSmallIcon, CaretUpSmallIcon } from 'tdesign-icons-vue-next';\nimport { camelCase, get as lodashGet } from 'lodash-es';\nimport config from '../config';\nimport {\n context as menuContext,\n DropdownMenuState,\n DropdownMenuControl,\n DropdownMenuExpandState,\n TriggerSource,\n} from './context';\nimport useExpose from '../hooks/useExpose';\nimport { findRelativeRect, findRelativeContainer } from './dom-utils';\nimport { useContent } from '../hooks/tnode';\nimport DropdownMenuProps from './props';\nimport { TdDropdownItemProps } from './type';\nimport { usePrefixClass } from '../hooks/useClass';\n\nconst { prefix } = config;\n\nexport default defineComponent({\n name: `${prefix}-dropdown-menu`,\n components: { CaretDownSmallIcon, CaretUpSmallIcon },\n props: {\n onMenuOpened: Function,\n onMenuClosed: Function,\n ...DropdownMenuProps,\n },\n emits: ['menuOpened', 'menuClosed'],\n setup(props, { slots }) {\n const dropdownMenuClass = usePrefixClass('dropdown-menu');\n\n const renderContent = useContent();\n\n // 菜单状态\n const state = reactive<DropdownMenuState>({\n activeId: null,\n barRect: {},\n childCount: 0,\n itemsLabel: [],\n });\n\n // 子成员处理\n const menuItems = ref<any>([]);\n const updateItems = () => {\n if (slots.default) {\n const itemName = `${prefix}-dropdown-item`;\n const children = slots.default();\n menuItems.value = children.filter((child: any) => {\n const childTypeName = child?.type?.name;\n return childTypeName?.includes && childTypeName.includes(itemName);\n });\n }\n };\n watch(() => slots?.default?.(), updateItems, {\n deep: true,\n immediate: true,\n });\n\n // 通过 slots.default 子成员,计算标题栏选项\n const menuTitles = computed(() =>\n menuItems.value?.map((item: any, index: number) => {\n const { keys, label, value, modelValue, defaultValue, disabled, options } = item.props as TdDropdownItemProps;\n const currentValue = value || modelValue || defaultValue;\n const target = options?.find((item: any) => lodashGet(item, keys?.value ?? 'value') === currentValue);\n if (state.itemsLabel.length < index + 1) {\n const targetLabel = (target && lodashGet(target, keys?.label ?? 'label')) || '';\n const computedLabel = label || targetLabel;\n\n state.itemsLabel.push(computedLabel);\n\n return {\n labelProps: label, // 优先级: label属性 > 选中项\n label: computedLabel,\n disabled: disabled !== undefined && disabled !== false,\n };\n }\n return {\n labelProps: label,\n label: label || lodashGet(target, keys?.label ?? 'label'),\n disabled: disabled !== undefined && disabled !== false,\n };\n }),\n );\n\n // 提供子组件访问\n provide('dropdownMenuProps', props);\n provide('dropdownMenuState', state);\n // 根结点样式\n const classes = computed(() => [`${dropdownMenuClass.value}`]);\n // 标题栏结点引用\n const refBar = ref();\n const styleBarItem = computed(() => (item: any, idx: number) => [\n `${dropdownMenuClass.value}__item`,\n {\n [`${dropdownMenuClass.value}__item--disabled`]: item.disabled,\n [`${dropdownMenuClass.value}__item--active`]: idx === state.activeId,\n },\n ]);\n const styleIcon = computed(() => (item: any, idx: number) => [\n `${dropdownMenuClass.value}__icon`,\n {\n [`${dropdownMenuClass.value}__icon--active`]: idx === state.activeId,\n },\n ]);\n\n // 展开对应项目的菜单\n const expandMenu = (item: any, idx: number) => {\n const { disabled } = item;\n\n if (disabled) return;\n\n if (state.activeId === idx) {\n // 再次点击时收起\n collapseMenu();\n props.onMenuClosed?.({ trigger: 'menu' });\n return;\n }\n props.onMenuOpened?.('menuOpened');\n state.activeId = idx;\n state.itemsLabel[idx] = item.label;\n\n // 获取菜单定位\n const bar = refBar.value as any;\n const barRect = findRelativeRect(bar);\n state.barRect = barRect;\n\n // 记录展开状态\n const container = findRelativeContainer(bar) || document.body;\n menuContext.recordMenuExpanded(container, control, DropdownMenuExpandState.expanded);\n };\n const collapseMenu = () => {\n menuTitles.value.forEach((item: any, index: number) => {\n item.label = state.itemsLabel[index];\n });\n state.activeId = null;\n\n // 清除已展开状态记录\n const bar = refBar.value as any;\n const container = findRelativeContainer(bar) || document.body;\n menuContext.recordMenuExpanded(container, control, DropdownMenuExpandState.collapsed);\n };\n\n // dropdown-menu外面点击触发dropdown下拉框收起\n onClickOutside(refBar, () => {\n if (state.activeId === null) return;\n collapseMenu();\n props.onMenuClosed?.({ trigger: 'outside' });\n });\n\n const control: DropdownMenuControl = {\n expandMenu,\n collapseMenu,\n emitEvents(emit: string, trigger?: TriggerSource) {\n const eventHandler = props[`on${camelCase(emit)}` as keyof typeof props] as Function;\n eventHandler?.(trigger);\n },\n };\n // 提供子组件访问\n provide('dropdownMenuControl', control);\n useExpose({\n toggle(idx?: number) {\n if (idx != null) {\n const item = menuTitles.value[idx];\n expandMenu(item, idx);\n } else {\n collapseMenu();\n }\n },\n });\n\n useExpose({\n expandMenu,\n collapseMenu,\n });\n\n return () => {\n const defaultSlot = renderContent('default', 'content');\n\n const renderDownIcon = (item: any, idx: number) => {\n if (props.direction === 'down') {\n return <caret-down-small-icon class={styleIcon.value(item, idx)} />;\n }\n return <caret-up-small-icon class={styleIcon.value(item, idx)} />;\n };\n\n return (\n <div ref={refBar} class={classes.value}>\n {(menuTitles.value || []).map(\n (item: { label: any; labelProps: TdDropdownItemProps['label'] }, idx: number) => (\n <div class={styleBarItem.value(item, idx)} onClick={() => expandMenu(item, idx)}>\n <div class={`${dropdownMenuClass.value}__title`}>{item.labelProps || item.label}</div>\n {renderDownIcon(item, idx)}\n </div>\n ),\n )}\n {defaultSlot}\n </div>\n );\n };\n },\n});\n"],"names":["prefix","config","defineComponent","name","components","CaretDownSmallIcon","CaretUpSmallIcon","props","_objectSpread","onMenuOpened","Function","onMenuClosed","DropdownMenuProps","emits","setup","_ref","slots","dropdownMenuClass","usePrefixClass","renderContent","useContent","state","reactive","activeId","barRect","childCount","itemsLabel","menuItems","ref","updateItems","default","itemName","children","value","filter","child","_child$type","childTypeName","type","includes","watch","_slots$default","call","deep","immediate","menuTitles","computed","_menuItems$value","map","item","index","_keys$label2","_item$props","keys","label","modelValue","defaultValue","disabled","options","currentValue","target","find","lodashGet","_keys$value","length","_keys$label","targetLabel","computedLabel","push","labelProps","provide","classes","concat","refBar","styleBarItem","idx","_defineProperty","styleIcon","expandMenu","_props$onMenuOpened","_props$onMenuClosed","collapseMenu","trigger","bar","findRelativeRect","container","findRelativeContainer","document","body","menuContext","recordMenuExpanded","control","DropdownMenuExpandState","expanded","forEach","collapsed","onClickOutside","_props$onMenuClosed2","emitEvents","emit","eventHandler","camelCase","useExpose","toggle","defaultSlot","renderDownIcon","direction","_createVNode","_resolveComponent","onClick"],"mappings":"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"}