{"version":3,"file":"dropdown-menu.mjs","sources":["../../../components/dropdown/dropdown-menu.tsx"],"sourcesContent":["import { defineComponent, ref, onMounted, h, reactive, withDirectives } from 'vue';\nimport { ChevronRightIcon as TdChevronRightIcon } from 'tdesign-icons-vue-next';\nimport DropdownItem from './dropdown-item';\n\nimport { DropdownOption } from './type';\nimport props from './props';\nimport TDivider from '../divider';\nimport { useGlobalIcon, usePrefixClass, useTNodeJSX } from '@tdesign/shared-hooks';\n\nimport { TNode } from '../common';\nimport { isFunction } from 'lodash-es';\n\nexport default defineComponent({\n  name: 'TDropdownMenu',\n  props,\n  setup(props) {\n    const renderTNodeJSX = useTNodeJSX();\n    const dropdownClass = usePrefixClass('dropdown');\n    const dropdownMenuClass = usePrefixClass('dropdown__menu');\n    const scrollTopMap = reactive<Record<string, number>>({});\n    const itemHeight = ref(null);\n    const menuRef = ref<HTMLElement>();\n    const panelTopContentRef = ref<HTMLElement>();\n    const topContentHeight = ref(0);\n    const isOverMaxHeight = ref(false);\n    const { ChevronRightIcon } = useGlobalIcon({\n      ChevronRightIcon: TdChevronRightIcon,\n    });\n\n    const handleItemClick = (options: { data: DropdownOption; context: { e: MouseEvent } }) => {\n      const { data, context } = options;\n      data?.onClick?.(data, context);\n      props.onClick?.(data, context);\n    };\n\n    const handleScroll = (e: MouseEvent, deep: number) => {\n      const { scrollTop } = e.target as HTMLElement;\n      scrollTopMap[deep] = scrollTop;\n    };\n\n    onMounted(() => {\n      if (menuRef.value) {\n        const menuHeight = parseInt(window?.getComputedStyle(menuRef.value).height, 10);\n        if (menuHeight >= props.maxHeight) isOverMaxHeight.value = true;\n      }\n      const dropdownItem = document.querySelector(`.${dropdownClass.value}__item`);\n      if (dropdownItem) {\n        itemHeight.value = dropdownItem.scrollHeight + 2;\n      }\n      if (panelTopContentRef.value) {\n        topContentHeight.value = panelTopContentRef.value.offsetHeight;\n      }\n    });\n\n    const getContent = (content: string | TNode) => {\n      if (isFunction(content)) {\n        return content(h);\n      }\n      return content;\n    };\n\n    // 处理options渲染的场景\n    const renderOptions = (data: Array<DropdownOption>, deep: number) => {\n      const arr: Array<unknown> = [];\n      let renderContent;\n      data.forEach?.((menu, idx) => {\n        const optionItem = { ...(menu as DropdownOption) };\n        // 子菜单 top = 菜单项偏移(itemHeight * idx) + panelTopContent高度补偿(仅第一级) - 容器滚动距离(currentScrollTop)\n        const currentScrollTop = scrollTopMap[deep] || 0;\n        const submenuTop = idx * itemHeight.value + (deep === 0 ? topContentHeight.value : 0) - currentScrollTop;\n\n        if (optionItem.children) {\n          optionItem.children = renderOptions(optionItem.children, deep + 1);\n          const item = (\n            <DropdownItem\n              style={optionItem.style}\n              class={[`${dropdownClass.value}__item`, `${dropdownClass.value}__item--suffix`, optionItem.class]}\n              value={optionItem.value}\n              theme={optionItem.theme}\n              active={optionItem.active}\n              prefixIcon={optionItem.prefixIcon}\n              disabled={optionItem.disabled}\n              minColumnWidth={props.minColumnWidth}\n              maxColumnWidth={props.maxColumnWidth}\n              isSubmenu={true}\n            >\n              <div class={`${dropdownClass.value}__item-content`}>\n                <span class={`${dropdownClass.value}__item-text`}>{getContent(optionItem.content)}</span>\n                <ChevronRightIcon class={`${dropdownClass.value}__item-direction`} size=\"16\" />\n              </div>\n              <div\n                class={[\n                  `${dropdownClass.value}__submenu-wrapper`,\n                  {\n                    [`${dropdownClass.value}__submenu-wrapper--${props.direction}`]: props.direction,\n                  },\n                ]}\n                style={{\n                  position: 'absolute',\n                  top: `${submenuTop}px`,\n                }}\n              >\n                <div\n                  class={[\n                    `${dropdownClass.value}__submenu`,\n                    {\n                      [`${dropdownClass.value}__submenu--disabled`]: optionItem.disabled,\n                    },\n                  ]}\n                  style={{\n                    position: 'static',\n                    maxHeight: `${props.maxHeight}px`,\n                  }}\n                  onScroll={(e: MouseEvent) => handleScroll(e, deep + 1)}\n                >\n                  <ul>{optionItem.children}</ul>\n                </div>\n              </div>\n            </DropdownItem>\n          );\n\n          renderContent = (\n            <div key={idx}>\n              {Array.isArray(optionItem.directives) && optionItem.directives.length\n                ? withDirectives(item, optionItem.directives)\n                : item}\n              {optionItem.divider ? <TDivider /> : null}\n            </div>\n          );\n        } else {\n          const item = (\n            <DropdownItem\n              style={optionItem.style}\n              class={[`${dropdownClass.value}__item`, optionItem.class]}\n              value={optionItem.value}\n              theme={optionItem.theme}\n              active={optionItem.active}\n              prefixIcon={optionItem.prefixIcon}\n              disabled={optionItem.disabled}\n              minColumnWidth={props.minColumnWidth}\n              maxColumnWidth={props.maxColumnWidth}\n              onClick={\n                optionItem.disabled || optionItem.children\n                  ? () => null\n                  : (value: string | number | { [key: string]: any }, context: { e: MouseEvent }) =>\n                      handleItemClick({ data: optionItem, context })\n              }\n            >\n              <span class={`${dropdownClass.value}__item-text`}>{getContent(optionItem.content)}</span>\n            </DropdownItem>\n          );\n          renderContent = (\n            <div key={idx}>\n              {optionItem.directives ? withDirectives(item, optionItem.directives) : item}\n              {optionItem.divider ? <TDivider /> : null}\n            </div>\n          );\n        }\n        arr.push(renderContent);\n      });\n      return arr;\n    };\n\n    return () => {\n      const panelTopContent = renderTNodeJSX('panelTopContent');\n      const panelBottomContent = renderTNodeJSX('panelBottomContent');\n\n      return (\n        <div\n          class={[\n            dropdownMenuClass.value,\n            `${dropdownMenuClass.value}--${props.direction}`,\n            {\n              [`${dropdownMenuClass.value}--overflow`]: isOverMaxHeight.value,\n            },\n          ]}\n          style={{\n            maxHeight: `${props.maxHeight}px`,\n          }}\n          ref={menuRef}\n          onScroll={(e: MouseEvent) => handleScroll(e, 0)}\n        >\n          {panelTopContent ? (\n            <div class={`${dropdownClass.value}__top-content`} ref={panelTopContentRef}>\n              {panelTopContent}\n            </div>\n          ) : null}\n          {renderOptions(props.options, 0)}\n          {panelBottomContent ? <div class={`${dropdownClass.value}__bottom-content`}>{panelBottomContent}</div> : null}\n        </div>\n      );\n    };\n  },\n});\n"],"names":["defineComponent","name","props","setup","renderTNodeJSX","useTNodeJSX","dropdownClass","usePrefixClass","dropdownMenuClass","scrollTopMap","reactive","itemHeight","ref","menuRef","panelTopContentRef","topContentHeight","isOverMaxHeight","_useGlobalIcon","useGlobalIcon","ChevronRightIcon","TdChevronRightIcon","handleItemClick","options","_data$onClick","_props2$onClick","data","context","onClick","call","handleScroll","e","deep","scrollTop","target","onMounted","value","_window","menuHeight","parseInt","window","getComputedStyle","height","maxHeight","dropdownItem","document","querySelector","concat","scrollHeight","offsetHeight","getContent","content","isFunction","h","renderOptions","_data$forEach","arr","renderContent","forEach","menu","idx","optionItem","_objectSpread","currentScrollTop","submenuTop","children","item","style","theme","active","prefixIcon","disabled","minColumnWidth","maxColumnWidth","_default","_createVNode","_defineProperty","direction","position","top","onScroll","Array","isArray","directives","length","withDirectives","divider","TDivider","DropdownItem","push","panelTopContent","panelBottomContent"],"mappings":"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"}