{"version":3,"file":"Panel.mjs","sources":["../../../../components/cascader/components/Panel.tsx"],"sourcesContent":["import { defineComponent, PropType, computed, h } from 'vue';\n\nimport Item from './Item';\nimport { TreeNode, CascaderContextType } from '../types';\nimport CascaderProps from '../props';\nimport { useConfig, usePrefixClass, useTNodeDefault } from '@tdesign/shared-hooks';\n\nimport { getDefaultNode } from '@tdesign/shared-utils';\nimport { getPanels, expandClickEffect, valueChangeEffect } from '../utils';\n\nexport default defineComponent({\n  name: 'TCascaderSubPanel',\n  props: {\n    option: CascaderProps.option,\n    options: CascaderProps.options,\n    empty: CascaderProps.empty,\n    trigger: CascaderProps.trigger,\n    onChange: CascaderProps.onChange,\n    loading: CascaderProps.loading,\n    loadingText: CascaderProps.loadingText,\n    cascaderContext: {\n      type: Object as PropType<CascaderContextType>,\n    },\n  },\n\n  setup(props) {\n    const renderTNodeJSXDefault = useTNodeDefault();\n    const COMPONENT_NAME = usePrefixClass('cascader');\n    const { globalConfig } = useConfig('cascader');\n\n    const panels = computed(() => getPanels(props.cascaderContext.treeNodes));\n\n    const handleExpand = (node: TreeNode, trigger: 'hover' | 'click') => {\n      const { trigger: propsTrigger, cascaderContext } = props;\n      expandClickEffect(propsTrigger, trigger, node, cascaderContext);\n    };\n\n    const renderItem = (node: TreeNode, index: number) => {\n      const optionChild = node.data.content\n        ? getDefaultNode(node.data.content(h))\n        : renderTNodeJSXDefault('option', {\n            params: {\n              item: node.data,\n              index,\n              onExpand: () => handleExpand(node, 'click'),\n              onChange: () => valueChangeEffect(node, props.cascaderContext),\n            },\n          });\n      return (\n        <Item\n          key={node.value}\n          node={node}\n          optionChild={optionChild}\n          cascaderContext={props.cascaderContext}\n          onClick={() => {\n            handleExpand(node, 'click');\n          }}\n          onMouseenter={() => {\n            handleExpand(node, 'hover');\n          }}\n          onChange={() => {\n            valueChangeEffect(node, props.cascaderContext);\n          }}\n        />\n      );\n    };\n\n    const renderList = (treeNodes: TreeNode[], isFilter = false, segment = true, index = 1) => (\n      <ul\n        class={[\n          `${COMPONENT_NAME.value}__menu`,\n          'narrow-scrollbar',\n          {\n            [`${COMPONENT_NAME.value}__menu--segment`]: segment,\n            [`${COMPONENT_NAME.value}__menu--filter`]: isFilter,\n          },\n        ]}\n        key={`${COMPONENT_NAME}__menu${index}`}\n      >\n        {treeNodes.map((node: TreeNode) => renderItem(node, index))}\n      </ul>\n    );\n\n    const renderPanels = () => {\n      const { inputVal, treeNodes } = props.cascaderContext;\n      return inputVal\n        ? renderList(treeNodes, true)\n        : panels.value.map((treeNodes, index: number) =>\n            renderList(treeNodes, false, index !== panels.value.length - 1, index),\n          );\n    };\n\n    return () => {\n      let content;\n      if (props.loading) {\n        content = renderTNodeJSXDefault(\n          'loadingText',\n          <div class={`${COMPONENT_NAME.value}__panel--empty`}>{globalConfig.value.loadingText}</div>,\n        );\n      } else {\n        content = panels.value.length\n          ? renderPanels()\n          : renderTNodeJSXDefault(\n              'empty',\n              <div class={`${COMPONENT_NAME.value}__panel--empty`}>{globalConfig.value.empty}</div>,\n            );\n      }\n      return (\n        <div\n          class={[\n            `${COMPONENT_NAME.value}__panel`,\n            { [`${COMPONENT_NAME.value}--normal`]: panels.value.length && !props.loading },\n          ]}\n        >\n          {content}\n        </div>\n      );\n    };\n  },\n});\n"],"names":["defineComponent","name","props","option","CascaderProps","options","empty","trigger","onChange","loading","loadingText","cascaderContext","type","Object","setup","renderTNodeJSXDefault","useTNodeDefault","COMPONENT_NAME","usePrefixClass","_useConfig","useConfig","globalConfig","panels","computed","getPanels","treeNodes","handleExpand","node","propsTrigger","expandClickEffect","renderItem","index","optionChild","data","content","getDefaultNode","h","params","item","onExpand","valueChangeEffect","_createVNode","Item","value","onClick","onMouseenter","renderList","isFilter","arguments","length","undefined","segment","concat","_defineProperty","map","renderPanels","_props$cascaderContex","inputVal"],"mappings":"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"}