UNPKG

tdesign-vue-next

Version:
1 lines 9 kB
{"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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"}