{"version":3,"file":"Item.mjs","sources":["../../../../components/cascader/components/Item.tsx"],"sourcesContent":["import { defineComponent, PropType, computed, ref } from 'vue';\nimport { ChevronRightIcon as TdChevronRightIcon } from 'tdesign-icons-vue-next';\n\nimport { getFullPathLabel, getCascaderItemClass, getCascaderItemIconClass } from '../utils';\n\nimport Checkbox from '../../checkbox/index';\nimport TLoading from '../../loading';\n\nimport { CascaderContextType, TreeNodeValue, TreeNode, TdCascaderProps } from '../types';\nimport { useRipple, useGlobalIcon, usePrefixClass, useCommonClassName } from '@tdesign/shared-hooks';\n\nconst props = {\n  node: {\n    type: Object as PropType<TreeNode>,\n    default() {\n      return {};\n    },\n  },\n  optionChild: {\n    type: [Object, Array] as PropType<TdCascaderProps['option']>,\n  },\n  cascaderContext: {\n    type: Object as PropType<CascaderContextType>,\n  },\n  onChange: Function as PropType<() => void>,\n  onClick: Function as PropType<() => void>,\n  onMouseenter: Function as PropType<() => void>,\n};\n\nexport default defineComponent({\n  name: 'TCascaderItem',\n  props,\n  setup(props) {\n    const liRef = ref<HTMLElement>();\n    useRipple(liRef);\n\n    const COMPONENT_NAME = usePrefixClass('cascader__item');\n    const classPrefix = usePrefixClass();\n    const { ChevronRightIcon } = useGlobalIcon({ ChevronRightIcon: TdChevronRightIcon });\n    const { STATUS, SIZE } = useCommonClassName();\n\n    const itemClass = computed(() => {\n      return getCascaderItemClass(classPrefix.value, props.node, SIZE.value, STATUS.value, props.cascaderContext);\n    });\n\n    const iconClass = computed(() => {\n      return getCascaderItemIconClass(classPrefix.value, props.node, STATUS.value, props.cascaderContext);\n    });\n\n    function RenderLabelInner(node: TreeNode, cascaderContext: CascaderContextType) {\n      const { inputVal } = cascaderContext;\n      const labelText = inputVal ? getFullPathLabel(node) : node.label;\n      if (inputVal) {\n        const texts = labelText.split(inputVal as string);\n        const doms = [];\n        for (let index = 0; index < texts.length; index++) {\n          doms.push(<span key={index}>{texts[index]}</span>);\n          if (index === texts.length - 1) break;\n          doms.push(\n            <span key={`${index}filter`} class={`${COMPONENT_NAME.value}-label--filter`}>\n              {inputVal}\n            </span>,\n          );\n        }\n        return doms;\n      }\n      return labelText;\n    }\n\n    const renderTitle = (node: TreeNode) => {\n      if (typeof node.label === 'string') return node.label;\n\n      return null;\n    };\n\n    function RenderLabelContent(node: TreeNode, cascaderContext: CascaderContextType) {\n      const label = RenderLabelInner(node, cascaderContext);\n\n      const labelCont = (\n        <span\n          title={cascaderContext.inputVal ? getFullPathLabel(node) : renderTitle(node)}\n          class={[`${COMPONENT_NAME.value}-label`, `${COMPONENT_NAME.value}-label--ellipsis`]}\n          role=\"label\"\n        >\n          {label}\n        </span>\n      );\n\n      return labelCont;\n    }\n\n    function RenderCheckBox(node: TreeNode, cascaderContext: CascaderContextType) {\n      const { checkProps, value, max, inputVal } = cascaderContext;\n      const label = RenderLabelInner(node, cascaderContext);\n      return (\n        <Checkbox\n          checked={node.checked}\n          indeterminate={node.indeterminate}\n          disabled={node.isDisabled() || ((value as TreeNodeValue[]).length >= max && max !== 0)}\n          // node.value maybe string or number\n          name={String(node.value)}\n          stopLabelTrigger={!!node.children && !props.cascaderContext.isParentFilterable}\n          title={inputVal ? getFullPathLabel(node) : renderTitle(node)}\n          onChange={() => {\n            props.onChange();\n          }}\n          {...checkProps}\n        >\n          {label}\n        </Checkbox>\n      );\n    }\n\n    return () => {\n      const { cascaderContext, node, optionChild } = props;\n      return (\n        <li ref={liRef} class={itemClass.value} onClick={props.onClick} onMouseenter={props.onMouseenter}>\n          {optionChild ||\n            (cascaderContext.multiple\n              ? RenderCheckBox(node, cascaderContext)\n              : RenderLabelContent(node, cascaderContext))}\n          {node.children &&\n            !props.cascaderContext.isParentFilterable &&\n            (node.loading ? (\n              <TLoading class={iconClass.value} size=\"small\" />\n            ) : (\n              <ChevronRightIcon class={iconClass.value} />\n            ))}\n        </li>\n      );\n    };\n  },\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","props","node","type","default","optionChild","Array","cascaderContext","onChange","Function","onClick","onMouseenter","defineComponent","name","setup","liRef","ref","useRipple","COMPONENT_NAME","usePrefixClass","classPrefix","_useGlobalIcon","useGlobalIcon","ChevronRightIcon","TdChevronRightIcon","_useCommonClassName","useCommonClassName","STATUS","SIZE","itemClass","computed","getCascaderItemClass","value","iconClass","getCascaderItemIconClass","RenderLabelInner","inputVal","labelText","getFullPathLabel","label","texts","split","doms","index","length","push","_createVNode","concat","renderTitle","RenderLabelContent","labelCont","RenderCheckBox","checkProps","max","Checkbox","_mergeProps","checked","indeterminate","isDisabled","String","children","isParentFilterable","_default","multiple","loading"],"mappings":"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"}