{"version":3,"file":"iconUtil.mjs","sources":["../../../../../../../packages/components/tree/src/utils/iconUtil.tsx"],"sourcesContent":["import type { AntTreeNodeProps } from '../interface';\nimport {\n  CaretDownFilled,\n  FileOutlined,\n  LoadingOutlined,\n  MinusSquareOutlined,\n  PlusSquareOutlined,\n} from '@ant-design/icons-vue';\nimport { isValidElement } from '@antdv/utils';\nimport { cloneVNode } from 'vue';\n\nexport interface SwitcherIconProps extends AntTreeNodeProps {\n  expanded: boolean\n  loading: boolean\n}\nexport default function renderSwitcherIcon(\n  prefixCls: string,\n  switcherIcon: any,\n  props: SwitcherIconProps,\n  leafIcon?: (props: SwitcherIconProps) => any,\n  showLine?: boolean | { showLeafIcon: boolean } | undefined,\n) {\n  const { isLeaf, expanded, loading } = props;\n  let icon = switcherIcon;\n  if (loading)\n    return <LoadingOutlined class={`${prefixCls}-switcher-loading-icon`} />;\n\n  let showLeafIcon: boolean;\n  if (showLine && typeof showLine === 'object')\n    showLeafIcon = showLine.showLeafIcon;\n\n  let defaultIcon = null;\n  const switcherCls = `${prefixCls}-switcher-icon`;\n  if (isLeaf) {\n    if (!showLine)\n      return null;\n\n    if (showLeafIcon && leafIcon)\n      return leafIcon(props);\n\n    if (typeof showLine === 'object' && !showLeafIcon)\n      defaultIcon = <span class={`${prefixCls}-switcher-leaf-line`} />;\n    else\n      defaultIcon = <FileOutlined class={`${prefixCls}-switcher-line-icon`} />;\n\n    return defaultIcon;\n  } else {\n    defaultIcon = <CaretDownFilled class={switcherCls} />;\n    if (showLine) {\n      defaultIcon = expanded\n        ? <MinusSquareOutlined class={`${prefixCls}-switcher-line-icon`} />\n        : <PlusSquareOutlined class={`${prefixCls}-switcher-line-icon`} />;\n    }\n  }\n\n  if (typeof switcherIcon === 'function') {\n    icon = switcherIcon({ ...props, defaultIcon, switcherCls });\n  } else if (isValidElement(icon)) {\n    icon = cloneVNode(icon, {\n      class: switcherCls,\n    });\n  }\n\n  return icon || defaultIcon;\n}\n"],"names":["renderSwitcherIcon","prefixCls","switcherIcon","props","leafIcon","showLine","isLeaf","expanded","loading","icon","_createVNode","LoadingOutlined","showLeafIcon","defaultIcon","switcherCls","FileOutlined","CaretDownFilled","MinusSquareOutlined","PlusSquareOutlined","isValidElement","cloneVNode","class"],"mappings":";;;;;AAeA,SAAwBA,kBACtBC,CAAAA,SAAAA,EACAC,YACAC,EAAAA,KAAAA,EACAC,UACAC,QACA,EAAA;AACA,EAAM,MAAA;AAAA,IAAEC,MAAAA;AAAAA,IAAQC,QAAAA;AAAAA,IAAUC,OAAAA;AAAAA,GAAYL,GAAAA,KAAAA,CAAAA;AACtC,EAAA,IAAIM,IAAOP,GAAAA,YAAAA,CAAAA;AACX,EAAIM,IAAAA,OAAAA;AACF,IAAA,OAAAE,YAAAC,eAAA,EAAA;AAAA,MAAA,OAAA,EAAgC,GAAEV,SAAU,CAAA,sBAAA,CAAA;AAAA,OAAuB,IAAA,CAAA,CAAA;AAErE,EAAIW,IAAAA,YAAAA,CAAAA;AACJ,EAAIP,IAAAA,QAAAA,IAAY,OAAOA,QAAa,KAAA,QAAA;AAClCO,IAAAA,YAAAA,GAAeP,QAASO,CAAAA,YAAAA,CAAAA;AAE1B,EAAA,IAAIC,WAAc,GAAA,IAAA,CAAA;AAClB,EAAMC,MAAAA,WAAAA,GAAe,GAAEb,SAAU,CAAA,cAAA,CAAA,CAAA;AACjC,EAAA,IAAIK,MAAQ,EAAA;AACV,IAAA,IAAI,CAACD,QAAAA;AACH,MAAO,OAAA,IAAA,CAAA;AAET,IAAA,IAAIO,YAAgBR,IAAAA,QAAAA;AAClB,MAAA,OAAOA,SAASD,KAAK,CAAA,CAAA;AAEvB,IAAI,IAAA,OAAOE,QAAa,KAAA,QAAA,IAAY,CAACO,YAAAA;AACnCC,MAAAA,WAAAA,GAAWH,YAAA,MAAA,EAAA;AAAA,QAAA,OAAA,EAAiB,GAAET,SAAU,CAAA,mBAAA,CAAA;AAAA,SAAoB,IAAA,CAAA,CAAA;AAAA;AAE5DY,MAAAA,WAAAA,GAAWH,YAAAK,YAAA,EAAA;AAAA,QAAA,OAAA,EAAyB,GAAEd,SAAU,CAAA,mBAAA,CAAA;AAAA,SAAwB,IAAA,CAAA,CAAA;AAE1E,IAAOY,OAAAA,WAAAA,CAAAA;AAAAA,GACF,MAAA;AACLA,IAAAA,WAAAA,GAAWH,YAAAM,eAAA,EAAA;AAAA,MAAA,OAA2BF,EAAAA,WAAAA;AAAAA,OAAe,IAAA,CAAA,CAAA;AACrD,IAAA,IAAIT,QAAU,EAAA;AACZQ,MAAcN,WAAAA,GAAAA,QAAAA,GAAQG,YAAAO,mBAAA,EAAA;AAAA,QAAA,OAAA,EACW,GAAEhB,SAAU,CAAA,mBAAA,CAAA;AAAA,OAAoBS,EAAAA,IAAAA,CAAAA,GAAAA,WAAAA,CAAAQ,kBAAA,EAAA;AAAA,QAAA,OAAA,EACjC,GAAEjB,SAAU,CAAA,mBAAA,CAAA;AAAA,SAAwB,IAAA,CAAA,CAAA;AAAA,KACtE;AAAA,GACF;AAEA,EAAI,IAAA,OAAOC,iBAAiB,UAAY,EAAA;AACtCO,IAAAA,IAAAA,GAAOP,YAAa,CAAA;AAAA,MAAE,GAAGC,KAAAA;AAAAA,MAAOU,WAAAA;AAAAA,MAAaC,WAAAA;AAAAA,KAAa,CAAA,CAAA;AAAA,GAC5D,MAAA,IAAWK,cAAeV,CAAAA,IAAI,CAAG,EAAA;AAC/BA,IAAAA,IAAAA,GAAOW,WAAWX,IAAM,EAAA;AAAA,MACtBY,KAAOP,EAAAA,WAAAA;AAAAA,KACR,CAAA,CAAA;AAAA,GACH;AAEA,EAAA,OAAOL,IAAQI,IAAAA,WAAAA,CAAAA;AACjB;;;;"}