{"version":3,"file":"legacyUtil.cjs","sources":["../../../../../../../packages/vue-components/vc-tree-select/src/utils/legacyUtil.tsx"],"sourcesContent":["import type { VueNode } from '@antdv/types';\nimport type { ChangeEventExtra, LegacyCheckedNode, RawValueType, TreeSelectDataNode } from '../interface';\nimport type { DefaultOptionType, FieldNames } from '../TreeSelect';\nimport { camelize, filterEmpty, warning } from '@antdv/utils';\nimport TreeNode from '../TreeNode';\n\nfunction isTreeSelectNode(node: any) {\n  return node && node.type && (node.type as any).isTreeSelectNode;\n}\nexport function convertChildrenToData(rootNodes: VueNode[]): TreeSelectDataNode[] {\n  function dig(treeNodes: any[] = []): TreeSelectDataNode[] {\n    return filterEmpty(treeNodes).map((treeNode) => {\n      // Filter invalidate node\n      if (!isTreeSelectNode(treeNode)) {\n        warning(!treeNode, 'TreeSelect/TreeSelectNode can only accept TreeSelectNode as children.');\n        return null;\n      }\n      const slots = (treeNode.children as any) || {};\n      const key = treeNode.key as string | number;\n      const props: any = {};\n      for (const [k, v] of Object.entries(treeNode.props))\n        props[camelize(k)] = v;\n\n      const { isLeaf, checkable, selectable, disabled, disableCheckbox } = props;\n      // 默认值为 undefined\n      const newProps = {\n        isLeaf: isLeaf || isLeaf === '' || undefined,\n        checkable: checkable || checkable === '' || undefined,\n        selectable: selectable || selectable === '' || undefined,\n        disabled: disabled || disabled === '' || undefined,\n        disableCheckbox: disableCheckbox || disableCheckbox === '' || undefined,\n      };\n      const slotsProps = { ...props, ...newProps };\n      const {\n        title = slots.title?.(slotsProps),\n        switcherIcon = slots.switcherIcon?.(slotsProps),\n        ...rest\n      } = props;\n      const children = slots.default?.();\n      const dataNode: TreeSelectDataNode = {\n        ...rest,\n        title,\n        switcherIcon,\n        key,\n        isLeaf,\n        ...newProps,\n      };\n\n      const parsedChildren = dig(children);\n      if (parsedChildren.length)\n        dataNode.children = parsedChildren;\n\n      return dataNode;\n    });\n  }\n\n  return dig(rootNodes as any[]);\n}\n\nexport function fillLegacyProps(dataNode: TreeSelectDataNode): any {\n  // Skip if not dataNode exist\n  if (!dataNode)\n    return dataNode;\n\n  const cloneNode = { ...dataNode };\n\n  if (!('props' in cloneNode)) {\n    Object.defineProperty(cloneNode, 'props', {\n      get() {\n        warning(\n          false,\n          'New `vc-tree-select` not support return node instance as argument anymore. Please consider to remove `props` access.',\n        );\n        return cloneNode;\n      },\n    });\n  }\n\n  return cloneNode;\n}\n\nexport function fillAdditionalInfo(\n  extra: ChangeEventExtra,\n  triggerValue: RawValueType,\n  checkedValues: RawValueType[],\n  treeData: DefaultOptionType[],\n  showPosition: boolean,\n  fieldNames: FieldNames,\n) {\n  let triggerNode = null;\n  let nodeList: LegacyCheckedNode[] = null;\n\n  function generateMap() {\n    function dig(list: DefaultOptionType[], level = '0', parentIncluded = false) {\n      return list\n        .map((option, index) => {\n          const pos = `${level}-${index}`;\n          const value = option[fieldNames.value];\n          const included = checkedValues.includes(value);\n          const children = dig(option[fieldNames.children] || [], pos, included);\n          const node = (\n            <TreeNode {...(option as Required<DefaultOptionType>)}>\n              {children.map(child => child.node)}\n            </TreeNode>\n          );\n\n          // Link with trigger node\n          if (triggerValue === value)\n            triggerNode = node;\n\n          if (included) {\n            const checkedNode: LegacyCheckedNode = {\n              pos,\n              node,\n              children,\n            };\n\n            if (!parentIncluded)\n              nodeList.push(checkedNode);\n\n            return checkedNode;\n          }\n          return null;\n        })\n        .filter(node => node);\n    }\n\n    if (!nodeList) {\n      nodeList = [];\n\n      dig(treeData);\n\n      // Sort to keep the checked node length\n      nodeList.sort(\n        (\n          {\n            node: {\n              props: { value: val1 },\n            },\n          },\n          {\n            node: {\n              props: { value: val2 },\n            },\n          },\n        ) => {\n          const index1 = checkedValues.indexOf(val1);\n          const index2 = checkedValues.indexOf(val2);\n          return index1 - index2;\n        },\n      );\n    }\n  }\n\n  Object.defineProperty(extra, 'triggerNode', {\n    get() {\n      warning(false, '`triggerNode` is deprecated. Please consider decoupling data with node.');\n      generateMap();\n\n      return triggerNode;\n    },\n  });\n  Object.defineProperty(extra, 'allCheckedNodes', {\n    get() {\n      warning(false, '`allCheckedNodes` is deprecated. Please consider decoupling data with node.');\n      generateMap();\n\n      if (showPosition)\n        return nodeList;\n\n      return nodeList.map(({ node }) => node);\n    },\n  });\n}\n"],"names":["isTreeSelectNode","node","type","convertChildrenToData","rootNodes","dig","treeNodes","filterEmpty","map","treeNode","warning","slots","children","key","props","k","v","Object","entries","camelize","isLeaf","checkable","selectable","disabled","disableCheckbox","newProps","undefined","slotsProps","title","switcherIcon","rest","default","dataNode","parsedChildren","length","fillLegacyProps","cloneNode","defineProperty","get","fillAdditionalInfo","extra","triggerValue","checkedValues","treeData","showPosition","fieldNames","triggerNode","nodeList","generateMap","list","level","parentIncluded","option","index","pos","value","included","includes","_createVNode","TreeNode","child","checkedNode","push","filter","sort","val1","val2","index1","indexOf","index2"],"mappings":";;;;;;;;;AAMA,SAASA,iBAAiBC,IAAW,EAAA;AACnC,EAAA,OAAOA,IAAQA,IAAAA,IAAAA,CAAKC,IAASD,IAAAA,IAAAA,CAAKC,IAAaF,CAAAA,gBAAAA,CAAAA;AACjD,CAAA;AACO,SAASG,sBAAsBC,SAA4C,EAAA;AAChF,EAASC,SAAAA,GAAAA,CAAIC,SAAmB,GAAA,EAA0B,EAAA;AACxD,IAAA,OAAOC,iBAAYD,CAAAA,SAAS,CAAEE,CAAAA,GAAAA,CAAKC,CAAa,QAAA,KAAA;;AAE9C,MAAI,IAAA,CAACT,gBAAiBS,CAAAA,QAAQ,CAAG,EAAA;AAC/BC,QAAQA,WAAA,CAAA,CAACD,UAAU,uEAAuE,CAAA,CAAA;AAC1F,QAAO,OAAA,IAAA,CAAA;AAAA,OACT;AACA,MAAME,MAAAA,KAAAA,GAASF,QAASG,CAAAA,QAAAA,IAAoB,EAAC,CAAA;AAC7C,MAAA,MAAMC,MAAMJ,QAASI,CAAAA,GAAAA,CAAAA;AACrB,MAAA,MAAMC,QAAa,EAAC,CAAA;AACpB,MAAA,KAAA,MAAW,CAACC,CAAGC,EAAAA,CAAC,KAAKC,MAAOC,CAAAA,OAAAA,CAAQT,SAASK,KAAK,CAAA;AAChDA,QAAMK,KAAAA,CAAAA,iBAAAA,CAASJ,CAAC,CAAC,CAAIC,GAAAA,CAAAA,CAAAA;AAEvB,MAAM,MAAA;AAAA,QAAEI,MAAAA;AAAAA,QAAQC,SAAAA;AAAAA,QAAWC,UAAAA;AAAAA,QAAYC,QAAAA;AAAAA,QAAUC,eAAAA;AAAAA,OAAoBV,GAAAA,KAAAA,CAAAA;AAErE,MAAA,MAAMW,QAAW,GAAA;AAAA,QACfL,MAAAA,EAAQA,MAAUA,IAAAA,MAAAA,KAAW,EAAMM,IAAAA,KAAAA,CAAAA;AAAAA,QACnCL,SAAAA,EAAWA,SAAaA,IAAAA,SAAAA,KAAc,EAAMK,IAAAA,KAAAA,CAAAA;AAAAA,QAC5CJ,UAAAA,EAAYA,UAAcA,IAAAA,UAAAA,KAAe,EAAMI,IAAAA,KAAAA,CAAAA;AAAAA,QAC/CH,QAAAA,EAAUA,QAAYA,IAAAA,QAAAA,KAAa,EAAMG,IAAAA,KAAAA,CAAAA;AAAAA,QACzCF,eAAAA,EAAiBA,eAAmBA,IAAAA,eAAAA,KAAoB,EAAME,IAAAA,KAAAA,CAAAA;AAAAA,OAChE,CAAA;AACA,MAAA,MAAMC,UAAa,GAAA;AAAA,QAAE,GAAGb,KAAAA;AAAAA,QAAO,GAAGW,QAAAA;AAAAA,OAAS,CAAA;AAC3C,MAAM,MAAA;AAAA,QACJG,KAAAA,GAAAA,CAAQjB,EAAMiB,GAAAA,KAAAA,CAAAA,KAAAA,KAANjB,IAAcgB,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,IAAAA,CAAAA,KAAAA,EAAAA,UAAAA,CAAAA;AAAAA,QACtBE,YAAAA,GAAAA,CAAelB,EAAMkB,GAAAA,KAAAA,CAAAA,YAAAA,KAANlB,IAAqBgB,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,IAAAA,CAAAA,KAAAA,EAAAA,UAAAA,CAAAA;AAAAA,QACpC,GAAGG,IAAAA;AAAAA,OACDhB,GAAAA,KAAAA,CAAAA;AACJ,MAAMF,MAAAA,QAAAA,GAAAA,CAAWD,WAAMoB,OAANpB,KAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA;AACjB,MAAA,MAAMqB,QAA+B,GAAA;AAAA,QACnC,GAAGF,IAAAA;AAAAA,QACHF,KAAAA;AAAAA,QACAC,YAAAA;AAAAA,QACAhB,GAAAA;AAAAA,QACAO,MAAAA;AAAAA,QACA,GAAGK,QAAAA;AAAAA,OACL,CAAA;AAEA,MAAMQ,MAAAA,cAAAA,GAAiB5B,IAAIO,QAAQ,CAAA,CAAA;AACnC,MAAA,IAAIqB,cAAeC,CAAAA,MAAAA;AACjBF,QAAAA,QAAAA,CAASpB,QAAWqB,GAAAA,cAAAA,CAAAA;AAEtB,MAAOD,OAAAA,QAAAA,CAAAA;AAAAA,KACR,CAAA,CAAA;AAAA,GACH;AAEA,EAAA,OAAO3B,IAAID,SAAkB,CAAA,CAAA;AAC/B,CAAA;AAEO,SAAS+B,gBAAgBH,QAAmC,EAAA;AAEjE,EAAA,IAAI,CAACA,QAAAA;AACH,IAAOA,OAAAA,QAAAA,CAAAA;AAET,EAAA,MAAMI,SAAY,GAAA;AAAA,IAAE,GAAGJ,QAAAA;AAAAA,GAAS,CAAA;AAEhC,EAAI,IAAA,EAAE,WAAWI,SAAY,CAAA,EAAA;AAC3BnB,IAAOoB,MAAAA,CAAAA,cAAAA,CAAeD,WAAW,OAAS,EAAA;AAAA,MACxCE,GAAM,GAAA;AACJ5B,QAAAA,WAAAA,CACE,OACA,sHACF,CAAA,CAAA;AACA,QAAO0B,OAAAA,SAAAA,CAAAA;AAAAA,OACT;AAAA,KACD,CAAA,CAAA;AAAA,GACH;AAEA,EAAOA,OAAAA,SAAAA,CAAAA;AACT,CAAA;AAEO,SAASG,mBACdC,KACAC,EAAAA,YAAAA,EACAC,aACAC,EAAAA,QAAAA,EACAC,cACAC,UACA,EAAA;AACA,EAAA,IAAIC,WAAc,GAAA,IAAA,CAAA;AAClB,EAAA,IAAIC,QAAgC,GAAA,IAAA,CAAA;AAEpC,EAAA,SAASC,WAAc,GAAA;AACrB,IAAA,SAAS3C,GAAI4C,CAAAA,IAAAA,EAA2BC,KAAQ,GAAA,GAAA,EAAKC,iBAAiB,KAAO,EAAA;AAC3E,MAAA,OAAOF,IACJzC,CAAAA,GAAAA,CAAI,CAAC4C,MAAAA,EAAQC,KAAU,KAAA;AACtB,QAAA,MAAMC,GAAO,GAAA,CAAA,EAAEJ,KAAM,CAAA,CAAA,EAAGG,KAAM,CAAA,CAAA,CAAA;AAC9B,QAAME,MAAAA,KAAAA,GAAQH,MAAOP,CAAAA,UAAAA,CAAWU,KAAK,CAAA,CAAA;AACrC,QAAMC,MAAAA,QAAAA,GAAWd,aAAce,CAAAA,QAAAA,CAASF,KAAK,CAAA,CAAA;AAC7C,QAAM3C,MAAAA,QAAAA,GAAWP,IAAI+C,MAAOP,CAAAA,UAAAA,CAAWjC,QAAQ,CAAK,IAAA,EAAI0C,EAAAA,GAAAA,EAAKE,QAAQ,CAAA,CAAA;AACrE,QAAMvD,MAAAA,IAAAA,GAAIyD,eAAAC,CAAAA,gBAAAA,EACOP,MAAM,EAAA;AAAA,UAAArB,OAAAA,EAAAA,MAClBnB,CAAAA,QAAAA,CAASJ,IAAIoD,CAASA,KAAAA,KAAAA,KAAAA,CAAM3D,IAAI,CAAC,CAAA;AAAA,SAErC,CAAA,CAAA;AAGD,QAAA,IAAIwC,YAAiBc,KAAAA,KAAAA;AACnBT,UAAc7C,WAAAA,GAAAA,IAAAA,CAAAA;AAEhB,QAAA,IAAIuD,QAAU,EAAA;AACZ,UAAA,MAAMK,WAAiC,GAAA;AAAA,YACrCP,GAAAA;AAAAA,YACArD,IAAAA;AAAAA,YACAW,QAAAA;AAAAA,WACF,CAAA;AAEA,UAAA,IAAI,CAACuC,cAAAA;AACHJ,YAAAA,QAAAA,CAASe,KAAKD,WAAW,CAAA,CAAA;AAE3B,UAAOA,OAAAA,WAAAA,CAAAA;AAAAA,SACT;AACA,QAAO,OAAA,IAAA,CAAA;AAAA,OACR,CAAA,CACAE,MAAO9D,CAAAA,CAAAA,IAAAA,KAAQA,IAAI,CAAA,CAAA;AAAA,KACxB;AAEA,IAAA,IAAI,CAAC8C,QAAU,EAAA;AACbA,MAAAA,QAAAA,GAAW,EAAE,CAAA;AAEb1C,MAAAA,GAAAA,CAAIsC,QAAQ,CAAA,CAAA;AAGZI,MAAAA,QAAAA,CAASiB,KACP,CACE;AAAA,QACE/D,IAAM,EAAA;AAAA,UACJa,KAAO,EAAA;AAAA,YAAEyC,KAAOU,EAAAA,IAAAA;AAAAA,WAAK;AAAA,SACvB;AAAA,OAEF,EAAA;AAAA,QACEhE,IAAM,EAAA;AAAA,UACJa,KAAO,EAAA;AAAA,YAAEyC,KAAOW,EAAAA,IAAAA;AAAAA,WAAK;AAAA,SACvB;AAAA,OAEC,KAAA;AACH,QAAMC,MAAAA,MAAAA,GAASzB,aAAc0B,CAAAA,OAAAA,CAAQH,IAAI,CAAA,CAAA;AACzC,QAAMI,MAAAA,MAAAA,GAAS3B,aAAc0B,CAAAA,OAAAA,CAAQF,IAAI,CAAA,CAAA;AACzC,QAAA,OAAOC,MAASE,GAAAA,MAAAA,CAAAA;AAAAA,OAEpB,CAAA,CAAA;AAAA,KACF;AAAA,GACF;AAEApD,EAAOoB,MAAAA,CAAAA,cAAAA,CAAeG,OAAO,aAAe,EAAA;AAAA,IAC1CF,GAAM,GAAA;AACJ5B,MAAAA,WAAAA,CAAQ,OAAO,yEAAyE,CAAA,CAAA;AACxFsC,MAAY,WAAA,EAAA,CAAA;AAEZ,MAAOF,OAAAA,WAAAA,CAAAA;AAAAA,KACT;AAAA,GACD,CAAA,CAAA;AACD7B,EAAOoB,MAAAA,CAAAA,cAAAA,CAAeG,OAAO,iBAAmB,EAAA;AAAA,IAC9CF,GAAM,GAAA;AACJ5B,MAAAA,WAAAA,CAAQ,OAAO,6EAA6E,CAAA,CAAA;AAC5FsC,MAAY,WAAA,EAAA,CAAA;AAEZ,MAAIJ,IAAAA,YAAAA;AACF,QAAOG,OAAAA,QAAAA,CAAAA;AAET,MAAOA,OAAAA,QAAAA,CAASvC,IAAI,CAAC;AAAA,QAAEP,IAAAA;AAAAA,YAAWA,IAAI,CAAA,CAAA;AAAA,KACxC;AAAA,GACD,CAAA,CAAA;AACH;;;;;;"}