7ea0d04b41175b8f6776049391d98f8a.json 29.4 KB
{"ast":null,"code":"import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport toArray from \"rc-util/es/Children/toArray\";\nimport warning from \"rc-util/es/warning\";\nimport { getPosition, isTreeNode } from '../util';\nexport function getKey(key, pos) {\n  if (key !== null && key !== undefined) {\n    return key;\n  }\n\n  return pos;\n}\n/**\n * Warning if TreeNode do not provides key\n */\n\nexport function warningWithoutKey() {\n  var treeData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n  var keys = new Map();\n\n  function dig(list) {\n    var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n    (list || []).forEach(function (treeNode) {\n      var key = treeNode.key,\n          children = treeNode.children;\n      warning(key !== null && key !== undefined, \"Tree node must have a certain key: [\".concat(path).concat(key, \"]\"));\n      var recordKey = String(key);\n      warning(!keys.has(recordKey) || key === null || key === undefined, \"Same 'key' exist in the Tree: \".concat(recordKey));\n      keys.set(recordKey, true);\n      dig(children, \"\".concat(path).concat(recordKey, \" > \"));\n    });\n  }\n\n  dig(treeData);\n}\n/**\n * Convert `children` of Tree into `treeData` structure.\n */\n\nexport function convertTreeToData(rootNodes) {\n  function dig(node) {\n    var treeNodes = toArray(node);\n    return treeNodes.map(function (treeNode) {\n      // Filter invalidate node\n      if (!isTreeNode(treeNode)) {\n        warning(!treeNode, 'Tree/TreeNode can only accept TreeNode as children.');\n        return null;\n      }\n\n      var key = treeNode.key;\n\n      var _treeNode$props = treeNode.props,\n          children = _treeNode$props.children,\n          rest = _objectWithoutProperties(_treeNode$props, [\"children\"]);\n\n      var dataNode = _objectSpread({\n        key: key\n      }, rest);\n\n      var parsedChildren = dig(children);\n\n      if (parsedChildren.length) {\n        dataNode.children = parsedChildren;\n      }\n\n      return dataNode;\n    }).filter(function (dataNode) {\n      return dataNode;\n    });\n  }\n\n  return dig(rootNodes);\n}\n/**\n * Flat nest tree data into flatten list. This is used for virtual list render.\n * @param treeNodeList Origin data node list\n * @param expandedKeys\n * need expanded keys, provides `true` means all expanded (used in `rc-tree-select`).\n */\n\nexport function flattenTreeData() {\n  var treeNodeList = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n  var expandedKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n  var expandedKeySet = new Set(expandedKeys === true ? [] : expandedKeys);\n  var flattenList = [];\n\n  function dig(list) {\n    var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n    return list.map(function (treeNode, index) {\n      var pos = getPosition(parent ? parent.pos : '0', index);\n      var mergedKey = getKey(treeNode.key, pos); // Add FlattenDataNode into list\n\n      var flattenNode = _objectSpread(_objectSpread({}, treeNode), {}, {\n        parent: parent,\n        pos: pos,\n        children: null,\n        data: treeNode,\n        isStart: [].concat(_toConsumableArray(parent ? parent.isStart : []), [index === 0]),\n        isEnd: [].concat(_toConsumableArray(parent ? parent.isEnd : []), [index === list.length - 1])\n      });\n\n      flattenList.push(flattenNode); // Loop treeNode children\n\n      if (expandedKeys === true || expandedKeySet.has(mergedKey)) {\n        flattenNode.children = dig(treeNode.children || [], flattenNode);\n      } else {\n        flattenNode.children = [];\n      }\n\n      return flattenNode;\n    });\n  }\n\n  dig(treeNodeList);\n  return flattenList;\n}\n/**\n * Traverse all the data by `treeData`.\n * Please not use it out of the `rc-tree` since we may refactor this code.\n */\n\nexport function traverseDataNodes(dataNodes, callback, externalGetKey) {\n  var syntheticGetKey;\n\n  if (externalGetKey) {\n    if (typeof externalGetKey === 'string') {\n      syntheticGetKey = function syntheticGetKey(node) {\n        return node[externalGetKey];\n      };\n    } else if (typeof externalGetKey === 'function') {\n      syntheticGetKey = function syntheticGetKey(node) {\n        return externalGetKey(node);\n      };\n    }\n  } else {\n    syntheticGetKey = function syntheticGetKey(node, pos) {\n      return getKey(node.key, pos);\n    };\n  }\n\n  function processNode(node, index, parent) {\n    var children = node ? node.children : dataNodes;\n    var pos = node ? getPosition(parent.pos, index) : '0'; // Process node if is not root\n\n    if (node) {\n      var key = syntheticGetKey(node, pos);\n      var data = {\n        node: node,\n        index: index,\n        pos: pos,\n        key: key,\n        parentPos: parent.node ? parent.pos : null,\n        level: parent.level + 1\n      };\n      callback(data);\n    } // Process children node\n\n\n    if (children) {\n      children.forEach(function (subNode, subIndex) {\n        processNode(subNode, subIndex, {\n          node: node,\n          pos: pos,\n          level: parent ? parent.level + 1 : -1\n        });\n      });\n    }\n  }\n\n  processNode(null);\n}\n/**\n * Convert `treeData` into entity records.\n */\n\nexport function convertDataToEntities(dataNodes) {\n  var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n      initWrapper = _ref.initWrapper,\n      processEntity = _ref.processEntity,\n      onProcessFinished = _ref.onProcessFinished;\n\n  var externalGetKey = arguments.length > 2 ? arguments[2] : undefined;\n  var posEntities = {};\n  var keyEntities = {};\n  var wrapper = {\n    posEntities: posEntities,\n    keyEntities: keyEntities\n  };\n\n  if (initWrapper) {\n    wrapper = initWrapper(wrapper) || wrapper;\n  }\n\n  traverseDataNodes(dataNodes, function (item) {\n    var node = item.node,\n        index = item.index,\n        pos = item.pos,\n        key = item.key,\n        parentPos = item.parentPos,\n        level = item.level;\n    var entity = {\n      node: node,\n      index: index,\n      key: key,\n      pos: pos,\n      level: level\n    };\n    var mergedKey = getKey(key, pos);\n    posEntities[pos] = entity;\n    keyEntities[mergedKey] = entity; // Fill children\n\n    entity.parent = posEntities[parentPos];\n\n    if (entity.parent) {\n      entity.parent.children = entity.parent.children || [];\n      entity.parent.children.push(entity);\n    }\n\n    if (processEntity) {\n      processEntity(entity, wrapper);\n    }\n  }, externalGetKey);\n\n  if (onProcessFinished) {\n    onProcessFinished(wrapper);\n  }\n\n  return wrapper;\n}\n/**\n * Get TreeNode props with Tree props.\n */\n\nexport function getTreeNodeProps(key, _ref2) {\n  var expandedKeys = _ref2.expandedKeys,\n      selectedKeys = _ref2.selectedKeys,\n      loadedKeys = _ref2.loadedKeys,\n      loadingKeys = _ref2.loadingKeys,\n      checkedKeys = _ref2.checkedKeys,\n      halfCheckedKeys = _ref2.halfCheckedKeys,\n      dragOverNodeKey = _ref2.dragOverNodeKey,\n      dropPosition = _ref2.dropPosition,\n      keyEntities = _ref2.keyEntities;\n  var entity = keyEntities[key];\n  var treeNodeProps = {\n    eventKey: key,\n    expanded: expandedKeys.indexOf(key) !== -1,\n    selected: selectedKeys.indexOf(key) !== -1,\n    loaded: loadedKeys.indexOf(key) !== -1,\n    loading: loadingKeys.indexOf(key) !== -1,\n    checked: checkedKeys.indexOf(key) !== -1,\n    halfChecked: halfCheckedKeys.indexOf(key) !== -1,\n    pos: String(entity ? entity.pos : ''),\n    // [Legacy] Drag props\n    // Since the interaction of drag is changed, the semantic of the props are\n    // not accuracy, I think it should be finally removed\n    dragOver: dragOverNodeKey === key && dropPosition === 0,\n    dragOverGapTop: dragOverNodeKey === key && dropPosition === -1,\n    dragOverGapBottom: dragOverNodeKey === key && dropPosition === 1\n  };\n  return treeNodeProps;\n}\nexport function convertNodePropsToEventData(props) {\n  var data = props.data,\n      expanded = props.expanded,\n      selected = props.selected,\n      checked = props.checked,\n      loaded = props.loaded,\n      loading = props.loading,\n      halfChecked = props.halfChecked,\n      dragOver = props.dragOver,\n      dragOverGapTop = props.dragOverGapTop,\n      dragOverGapBottom = props.dragOverGapBottom,\n      pos = props.pos,\n      active = props.active;\n\n  var eventData = _objectSpread(_objectSpread({}, data), {}, {\n    expanded: expanded,\n    selected: selected,\n    checked: checked,\n    loaded: loaded,\n    loading: loading,\n    halfChecked: halfChecked,\n    dragOver: dragOver,\n    dragOverGapTop: dragOverGapTop,\n    dragOverGapBottom: dragOverGapBottom,\n    pos: pos,\n    active: active\n  });\n\n  if (!('props' in eventData)) {\n    Object.defineProperty(eventData, 'props', {\n      get: function get() {\n        warning(false, 'Second param return from event is node data instead of TreeNode instance. Please read value directly instead of reading from `props`.');\n        return props;\n      }\n    });\n  }\n\n  return eventData;\n}","map":{"version":3,"sources":["C:/Users/kkwan_000/Desktop/git/2017110269/minsung/node_modules/rc-tree/es/utils/treeUtil.js"],"names":["_toConsumableArray","_objectSpread","_objectWithoutProperties","toArray","warning","getPosition","isTreeNode","getKey","key","pos","undefined","warningWithoutKey","treeData","arguments","length","keys","Map","dig","list","path","forEach","treeNode","children","concat","recordKey","String","has","set","convertTreeToData","rootNodes","node","treeNodes","map","_treeNode$props","props","rest","dataNode","parsedChildren","filter","flattenTreeData","treeNodeList","expandedKeys","expandedKeySet","Set","flattenList","parent","index","mergedKey","flattenNode","data","isStart","isEnd","push","traverseDataNodes","dataNodes","callback","externalGetKey","syntheticGetKey","processNode","parentPos","level","subNode","subIndex","convertDataToEntities","_ref","initWrapper","processEntity","onProcessFinished","posEntities","keyEntities","wrapper","item","entity","getTreeNodeProps","_ref2","selectedKeys","loadedKeys","loadingKeys","checkedKeys","halfCheckedKeys","dragOverNodeKey","dropPosition","treeNodeProps","eventKey","expanded","indexOf","selected","loaded","loading","checked","halfChecked","dragOver","dragOverGapTop","dragOverGapBottom","convertNodePropsToEventData","active","eventData","Object","defineProperty","get"],"mappings":"AAAA,OAAOA,kBAAP,MAA+B,8CAA/B;AACA,OAAOC,aAAP,MAA0B,0CAA1B;AACA,OAAOC,wBAAP,MAAqC,oDAArC;AACA,OAAOC,OAAP,MAAoB,6BAApB;AACA,OAAOC,OAAP,MAAoB,oBAApB;AACA,SAASC,WAAT,EAAsBC,UAAtB,QAAwC,SAAxC;AACA,OAAO,SAASC,MAAT,CAAgBC,GAAhB,EAAqBC,GAArB,EAA0B;AAC/B,MAAID,GAAG,KAAK,IAAR,IAAgBA,GAAG,KAAKE,SAA5B,EAAuC;AACrC,WAAOF,GAAP;AACD;;AAED,SAAOC,GAAP;AACD;AACD;AACA;AACA;;AAEA,OAAO,SAASE,iBAAT,GAA6B;AAClC,MAAIC,QAAQ,GAAGC,SAAS,CAACC,MAAV,GAAmB,CAAnB,IAAwBD,SAAS,CAAC,CAAD,CAAT,KAAiBH,SAAzC,GAAqDG,SAAS,CAAC,CAAD,CAA9D,GAAoE,EAAnF;AACA,MAAIE,IAAI,GAAG,IAAIC,GAAJ,EAAX;;AAEA,WAASC,GAAT,CAAaC,IAAb,EAAmB;AACjB,QAAIC,IAAI,GAAGN,SAAS,CAACC,MAAV,GAAmB,CAAnB,IAAwBD,SAAS,CAAC,CAAD,CAAT,KAAiBH,SAAzC,GAAqDG,SAAS,CAAC,CAAD,CAA9D,GAAoE,EAA/E;AACA,KAACK,IAAI,IAAI,EAAT,EAAaE,OAAb,CAAqB,UAAUC,QAAV,EAAoB;AACvC,UAAIb,GAAG,GAAGa,QAAQ,CAACb,GAAnB;AAAA,UACIc,QAAQ,GAAGD,QAAQ,CAACC,QADxB;AAEAlB,MAAAA,OAAO,CAACI,GAAG,KAAK,IAAR,IAAgBA,GAAG,KAAKE,SAAzB,EAAoC,uCAAuCa,MAAvC,CAA8CJ,IAA9C,EAAoDI,MAApD,CAA2Df,GAA3D,EAAgE,GAAhE,CAApC,CAAP;AACA,UAAIgB,SAAS,GAAGC,MAAM,CAACjB,GAAD,CAAtB;AACAJ,MAAAA,OAAO,CAAC,CAACW,IAAI,CAACW,GAAL,CAASF,SAAT,CAAD,IAAwBhB,GAAG,KAAK,IAAhC,IAAwCA,GAAG,KAAKE,SAAjD,EAA4D,iCAAiCa,MAAjC,CAAwCC,SAAxC,CAA5D,CAAP;AACAT,MAAAA,IAAI,CAACY,GAAL,CAASH,SAAT,EAAoB,IAApB;AACAP,MAAAA,GAAG,CAACK,QAAD,EAAW,GAAGC,MAAH,CAAUJ,IAAV,EAAgBI,MAAhB,CAAuBC,SAAvB,EAAkC,KAAlC,CAAX,CAAH;AACD,KARD;AASD;;AAEDP,EAAAA,GAAG,CAACL,QAAD,CAAH;AACD;AACD;AACA;AACA;;AAEA,OAAO,SAASgB,iBAAT,CAA2BC,SAA3B,EAAsC;AAC3C,WAASZ,GAAT,CAAaa,IAAb,EAAmB;AACjB,QAAIC,SAAS,GAAG5B,OAAO,CAAC2B,IAAD,CAAvB;AACA,WAAOC,SAAS,CAACC,GAAV,CAAc,UAAUX,QAAV,EAAoB;AACvC;AACA,UAAI,CAACf,UAAU,CAACe,QAAD,CAAf,EAA2B;AACzBjB,QAAAA,OAAO,CAAC,CAACiB,QAAF,EAAY,qDAAZ,CAAP;AACA,eAAO,IAAP;AACD;;AAED,UAAIb,GAAG,GAAGa,QAAQ,CAACb,GAAnB;;AAEA,UAAIyB,eAAe,GAAGZ,QAAQ,CAACa,KAA/B;AAAA,UACIZ,QAAQ,GAAGW,eAAe,CAACX,QAD/B;AAAA,UAEIa,IAAI,GAAGjC,wBAAwB,CAAC+B,eAAD,EAAkB,CAAC,UAAD,CAAlB,CAFnC;;AAIA,UAAIG,QAAQ,GAAGnC,aAAa,CAAC;AAC3BO,QAAAA,GAAG,EAAEA;AADsB,OAAD,EAEzB2B,IAFyB,CAA5B;;AAIA,UAAIE,cAAc,GAAGpB,GAAG,CAACK,QAAD,CAAxB;;AAEA,UAAIe,cAAc,CAACvB,MAAnB,EAA2B;AACzBsB,QAAAA,QAAQ,CAACd,QAAT,GAAoBe,cAApB;AACD;;AAED,aAAOD,QAAP;AACD,KAxBM,EAwBJE,MAxBI,CAwBG,UAAUF,QAAV,EAAoB;AAC5B,aAAOA,QAAP;AACD,KA1BM,CAAP;AA2BD;;AAED,SAAOnB,GAAG,CAACY,SAAD,CAAV;AACD;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,SAASU,eAAT,GAA2B;AAChC,MAAIC,YAAY,GAAG3B,SAAS,CAACC,MAAV,GAAmB,CAAnB,IAAwBD,SAAS,CAAC,CAAD,CAAT,KAAiBH,SAAzC,GAAqDG,SAAS,CAAC,CAAD,CAA9D,GAAoE,EAAvF;AACA,MAAI4B,YAAY,GAAG5B,SAAS,CAACC,MAAV,GAAmB,CAAnB,IAAwBD,SAAS,CAAC,CAAD,CAAT,KAAiBH,SAAzC,GAAqDG,SAAS,CAAC,CAAD,CAA9D,GAAoE,EAAvF;AACA,MAAI6B,cAAc,GAAG,IAAIC,GAAJ,CAAQF,YAAY,KAAK,IAAjB,GAAwB,EAAxB,GAA6BA,YAArC,CAArB;AACA,MAAIG,WAAW,GAAG,EAAlB;;AAEA,WAAS3B,GAAT,CAAaC,IAAb,EAAmB;AACjB,QAAI2B,MAAM,GAAGhC,SAAS,CAACC,MAAV,GAAmB,CAAnB,IAAwBD,SAAS,CAAC,CAAD,CAAT,KAAiBH,SAAzC,GAAqDG,SAAS,CAAC,CAAD,CAA9D,GAAoE,IAAjF;AACA,WAAOK,IAAI,CAACc,GAAL,CAAS,UAAUX,QAAV,EAAoByB,KAApB,EAA2B;AACzC,UAAIrC,GAAG,GAAGJ,WAAW,CAACwC,MAAM,GAAGA,MAAM,CAACpC,GAAV,GAAgB,GAAvB,EAA4BqC,KAA5B,CAArB;AACA,UAAIC,SAAS,GAAGxC,MAAM,CAACc,QAAQ,CAACb,GAAV,EAAeC,GAAf,CAAtB,CAFyC,CAEE;;AAE3C,UAAIuC,WAAW,GAAG/C,aAAa,CAACA,aAAa,CAAC,EAAD,EAAKoB,QAAL,CAAd,EAA8B,EAA9B,EAAkC;AAC/DwB,QAAAA,MAAM,EAAEA,MADuD;AAE/DpC,QAAAA,GAAG,EAAEA,GAF0D;AAG/Da,QAAAA,QAAQ,EAAE,IAHqD;AAI/D2B,QAAAA,IAAI,EAAE5B,QAJyD;AAK/D6B,QAAAA,OAAO,EAAE,GAAG3B,MAAH,CAAUvB,kBAAkB,CAAC6C,MAAM,GAAGA,MAAM,CAACK,OAAV,GAAoB,EAA3B,CAA5B,EAA4D,CAACJ,KAAK,KAAK,CAAX,CAA5D,CALsD;AAM/DK,QAAAA,KAAK,EAAE,GAAG5B,MAAH,CAAUvB,kBAAkB,CAAC6C,MAAM,GAAGA,MAAM,CAACM,KAAV,GAAkB,EAAzB,CAA5B,EAA0D,CAACL,KAAK,KAAK5B,IAAI,CAACJ,MAAL,GAAc,CAAzB,CAA1D;AANwD,OAAlC,CAA/B;;AASA8B,MAAAA,WAAW,CAACQ,IAAZ,CAAiBJ,WAAjB,EAbyC,CAaV;;AAE/B,UAAIP,YAAY,KAAK,IAAjB,IAAyBC,cAAc,CAAChB,GAAf,CAAmBqB,SAAnB,CAA7B,EAA4D;AAC1DC,QAAAA,WAAW,CAAC1B,QAAZ,GAAuBL,GAAG,CAACI,QAAQ,CAACC,QAAT,IAAqB,EAAtB,EAA0B0B,WAA1B,CAA1B;AACD,OAFD,MAEO;AACLA,QAAAA,WAAW,CAAC1B,QAAZ,GAAuB,EAAvB;AACD;;AAED,aAAO0B,WAAP;AACD,KAtBM,CAAP;AAuBD;;AAED/B,EAAAA,GAAG,CAACuB,YAAD,CAAH;AACA,SAAOI,WAAP;AACD;AACD;AACA;AACA;AACA;;AAEA,OAAO,SAASS,iBAAT,CAA2BC,SAA3B,EAAsCC,QAAtC,EAAgDC,cAAhD,EAAgE;AACrE,MAAIC,eAAJ;;AAEA,MAAID,cAAJ,EAAoB;AAClB,QAAI,OAAOA,cAAP,KAA0B,QAA9B,EAAwC;AACtCC,MAAAA,eAAe,GAAG,SAASA,eAAT,CAAyB3B,IAAzB,EAA+B;AAC/C,eAAOA,IAAI,CAAC0B,cAAD,CAAX;AACD,OAFD;AAGD,KAJD,MAIO,IAAI,OAAOA,cAAP,KAA0B,UAA9B,EAA0C;AAC/CC,MAAAA,eAAe,GAAG,SAASA,eAAT,CAAyB3B,IAAzB,EAA+B;AAC/C,eAAO0B,cAAc,CAAC1B,IAAD,CAArB;AACD,OAFD;AAGD;AACF,GAVD,MAUO;AACL2B,IAAAA,eAAe,GAAG,SAASA,eAAT,CAAyB3B,IAAzB,EAA+BrB,GAA/B,EAAoC;AACpD,aAAOF,MAAM,CAACuB,IAAI,CAACtB,GAAN,EAAWC,GAAX,CAAb;AACD,KAFD;AAGD;;AAED,WAASiD,WAAT,CAAqB5B,IAArB,EAA2BgB,KAA3B,EAAkCD,MAAlC,EAA0C;AACxC,QAAIvB,QAAQ,GAAGQ,IAAI,GAAGA,IAAI,CAACR,QAAR,GAAmBgC,SAAtC;AACA,QAAI7C,GAAG,GAAGqB,IAAI,GAAGzB,WAAW,CAACwC,MAAM,CAACpC,GAAR,EAAaqC,KAAb,CAAd,GAAoC,GAAlD,CAFwC,CAEe;;AAEvD,QAAIhB,IAAJ,EAAU;AACR,UAAItB,GAAG,GAAGiD,eAAe,CAAC3B,IAAD,EAAOrB,GAAP,CAAzB;AACA,UAAIwC,IAAI,GAAG;AACTnB,QAAAA,IAAI,EAAEA,IADG;AAETgB,QAAAA,KAAK,EAAEA,KAFE;AAGTrC,QAAAA,GAAG,EAAEA,GAHI;AAITD,QAAAA,GAAG,EAAEA,GAJI;AAKTmD,QAAAA,SAAS,EAAEd,MAAM,CAACf,IAAP,GAAce,MAAM,CAACpC,GAArB,GAA2B,IAL7B;AAMTmD,QAAAA,KAAK,EAAEf,MAAM,CAACe,KAAP,GAAe;AANb,OAAX;AAQAL,MAAAA,QAAQ,CAACN,IAAD,CAAR;AACD,KAfuC,CAetC;;;AAGF,QAAI3B,QAAJ,EAAc;AACZA,MAAAA,QAAQ,CAACF,OAAT,CAAiB,UAAUyC,OAAV,EAAmBC,QAAnB,EAA6B;AAC5CJ,QAAAA,WAAW,CAACG,OAAD,EAAUC,QAAV,EAAoB;AAC7BhC,UAAAA,IAAI,EAAEA,IADuB;AAE7BrB,UAAAA,GAAG,EAAEA,GAFwB;AAG7BmD,UAAAA,KAAK,EAAEf,MAAM,GAAGA,MAAM,CAACe,KAAP,GAAe,CAAlB,GAAsB,CAAC;AAHP,SAApB,CAAX;AAKD,OAND;AAOD;AACF;;AAEDF,EAAAA,WAAW,CAAC,IAAD,CAAX;AACD;AACD;AACA;AACA;;AAEA,OAAO,SAASK,qBAAT,CAA+BT,SAA/B,EAA0C;AAC/C,MAAIU,IAAI,GAAGnD,SAAS,CAACC,MAAV,GAAmB,CAAnB,IAAwBD,SAAS,CAAC,CAAD,CAAT,KAAiBH,SAAzC,GAAqDG,SAAS,CAAC,CAAD,CAA9D,GAAoE,EAA/E;AAAA,MACIoD,WAAW,GAAGD,IAAI,CAACC,WADvB;AAAA,MAEIC,aAAa,GAAGF,IAAI,CAACE,aAFzB;AAAA,MAGIC,iBAAiB,GAAGH,IAAI,CAACG,iBAH7B;;AAKA,MAAIX,cAAc,GAAG3C,SAAS,CAACC,MAAV,GAAmB,CAAnB,GAAuBD,SAAS,CAAC,CAAD,CAAhC,GAAsCH,SAA3D;AACA,MAAI0D,WAAW,GAAG,EAAlB;AACA,MAAIC,WAAW,GAAG,EAAlB;AACA,MAAIC,OAAO,GAAG;AACZF,IAAAA,WAAW,EAAEA,WADD;AAEZC,IAAAA,WAAW,EAAEA;AAFD,GAAd;;AAKA,MAAIJ,WAAJ,EAAiB;AACfK,IAAAA,OAAO,GAAGL,WAAW,CAACK,OAAD,CAAX,IAAwBA,OAAlC;AACD;;AAEDjB,EAAAA,iBAAiB,CAACC,SAAD,EAAY,UAAUiB,IAAV,EAAgB;AAC3C,QAAIzC,IAAI,GAAGyC,IAAI,CAACzC,IAAhB;AAAA,QACIgB,KAAK,GAAGyB,IAAI,CAACzB,KADjB;AAAA,QAEIrC,GAAG,GAAG8D,IAAI,CAAC9D,GAFf;AAAA,QAGID,GAAG,GAAG+D,IAAI,CAAC/D,GAHf;AAAA,QAIImD,SAAS,GAAGY,IAAI,CAACZ,SAJrB;AAAA,QAKIC,KAAK,GAAGW,IAAI,CAACX,KALjB;AAMA,QAAIY,MAAM,GAAG;AACX1C,MAAAA,IAAI,EAAEA,IADK;AAEXgB,MAAAA,KAAK,EAAEA,KAFI;AAGXtC,MAAAA,GAAG,EAAEA,GAHM;AAIXC,MAAAA,GAAG,EAAEA,GAJM;AAKXmD,MAAAA,KAAK,EAAEA;AALI,KAAb;AAOA,QAAIb,SAAS,GAAGxC,MAAM,CAACC,GAAD,EAAMC,GAAN,CAAtB;AACA2D,IAAAA,WAAW,CAAC3D,GAAD,CAAX,GAAmB+D,MAAnB;AACAH,IAAAA,WAAW,CAACtB,SAAD,CAAX,GAAyByB,MAAzB,CAhB2C,CAgBV;;AAEjCA,IAAAA,MAAM,CAAC3B,MAAP,GAAgBuB,WAAW,CAACT,SAAD,CAA3B;;AAEA,QAAIa,MAAM,CAAC3B,MAAX,EAAmB;AACjB2B,MAAAA,MAAM,CAAC3B,MAAP,CAAcvB,QAAd,GAAyBkD,MAAM,CAAC3B,MAAP,CAAcvB,QAAd,IAA0B,EAAnD;AACAkD,MAAAA,MAAM,CAAC3B,MAAP,CAAcvB,QAAd,CAAuB8B,IAAvB,CAA4BoB,MAA5B;AACD;;AAED,QAAIN,aAAJ,EAAmB;AACjBA,MAAAA,aAAa,CAACM,MAAD,EAASF,OAAT,CAAb;AACD;AACF,GA5BgB,EA4Bdd,cA5Bc,CAAjB;;AA8BA,MAAIW,iBAAJ,EAAuB;AACrBA,IAAAA,iBAAiB,CAACG,OAAD,CAAjB;AACD;;AAED,SAAOA,OAAP;AACD;AACD;AACA;AACA;;AAEA,OAAO,SAASG,gBAAT,CAA0BjE,GAA1B,EAA+BkE,KAA/B,EAAsC;AAC3C,MAAIjC,YAAY,GAAGiC,KAAK,CAACjC,YAAzB;AAAA,MACIkC,YAAY,GAAGD,KAAK,CAACC,YADzB;AAAA,MAEIC,UAAU,GAAGF,KAAK,CAACE,UAFvB;AAAA,MAGIC,WAAW,GAAGH,KAAK,CAACG,WAHxB;AAAA,MAIIC,WAAW,GAAGJ,KAAK,CAACI,WAJxB;AAAA,MAKIC,eAAe,GAAGL,KAAK,CAACK,eAL5B;AAAA,MAMIC,eAAe,GAAGN,KAAK,CAACM,eAN5B;AAAA,MAOIC,YAAY,GAAGP,KAAK,CAACO,YAPzB;AAAA,MAQIZ,WAAW,GAAGK,KAAK,CAACL,WARxB;AASA,MAAIG,MAAM,GAAGH,WAAW,CAAC7D,GAAD,CAAxB;AACA,MAAI0E,aAAa,GAAG;AAClBC,IAAAA,QAAQ,EAAE3E,GADQ;AAElB4E,IAAAA,QAAQ,EAAE3C,YAAY,CAAC4C,OAAb,CAAqB7E,GAArB,MAA8B,CAAC,CAFvB;AAGlB8E,IAAAA,QAAQ,EAAEX,YAAY,CAACU,OAAb,CAAqB7E,GAArB,MAA8B,CAAC,CAHvB;AAIlB+E,IAAAA,MAAM,EAAEX,UAAU,CAACS,OAAX,CAAmB7E,GAAnB,MAA4B,CAAC,CAJnB;AAKlBgF,IAAAA,OAAO,EAAEX,WAAW,CAACQ,OAAZ,CAAoB7E,GAApB,MAA6B,CAAC,CALrB;AAMlBiF,IAAAA,OAAO,EAAEX,WAAW,CAACO,OAAZ,CAAoB7E,GAApB,MAA6B,CAAC,CANrB;AAOlBkF,IAAAA,WAAW,EAAEX,eAAe,CAACM,OAAhB,CAAwB7E,GAAxB,MAAiC,CAAC,CAP7B;AAQlBC,IAAAA,GAAG,EAAEgB,MAAM,CAAC+C,MAAM,GAAGA,MAAM,CAAC/D,GAAV,GAAgB,EAAvB,CARO;AASlB;AACA;AACA;AACAkF,IAAAA,QAAQ,EAAEX,eAAe,KAAKxE,GAApB,IAA2ByE,YAAY,KAAK,CAZpC;AAalBW,IAAAA,cAAc,EAAEZ,eAAe,KAAKxE,GAApB,IAA2ByE,YAAY,KAAK,CAAC,CAb3C;AAclBY,IAAAA,iBAAiB,EAAEb,eAAe,KAAKxE,GAApB,IAA2ByE,YAAY,KAAK;AAd7C,GAApB;AAgBA,SAAOC,aAAP;AACD;AACD,OAAO,SAASY,2BAAT,CAAqC5D,KAArC,EAA4C;AACjD,MAAIe,IAAI,GAAGf,KAAK,CAACe,IAAjB;AAAA,MACImC,QAAQ,GAAGlD,KAAK,CAACkD,QADrB;AAAA,MAEIE,QAAQ,GAAGpD,KAAK,CAACoD,QAFrB;AAAA,MAGIG,OAAO,GAAGvD,KAAK,CAACuD,OAHpB;AAAA,MAIIF,MAAM,GAAGrD,KAAK,CAACqD,MAJnB;AAAA,MAKIC,OAAO,GAAGtD,KAAK,CAACsD,OALpB;AAAA,MAMIE,WAAW,GAAGxD,KAAK,CAACwD,WANxB;AAAA,MAOIC,QAAQ,GAAGzD,KAAK,CAACyD,QAPrB;AAAA,MAQIC,cAAc,GAAG1D,KAAK,CAAC0D,cAR3B;AAAA,MASIC,iBAAiB,GAAG3D,KAAK,CAAC2D,iBAT9B;AAAA,MAUIpF,GAAG,GAAGyB,KAAK,CAACzB,GAVhB;AAAA,MAWIsF,MAAM,GAAG7D,KAAK,CAAC6D,MAXnB;;AAaA,MAAIC,SAAS,GAAG/F,aAAa,CAACA,aAAa,CAAC,EAAD,EAAKgD,IAAL,CAAd,EAA0B,EAA1B,EAA8B;AACzDmC,IAAAA,QAAQ,EAAEA,QAD+C;AAEzDE,IAAAA,QAAQ,EAAEA,QAF+C;AAGzDG,IAAAA,OAAO,EAAEA,OAHgD;AAIzDF,IAAAA,MAAM,EAAEA,MAJiD;AAKzDC,IAAAA,OAAO,EAAEA,OALgD;AAMzDE,IAAAA,WAAW,EAAEA,WAN4C;AAOzDC,IAAAA,QAAQ,EAAEA,QAP+C;AAQzDC,IAAAA,cAAc,EAAEA,cARyC;AASzDC,IAAAA,iBAAiB,EAAEA,iBATsC;AAUzDpF,IAAAA,GAAG,EAAEA,GAVoD;AAWzDsF,IAAAA,MAAM,EAAEA;AAXiD,GAA9B,CAA7B;;AAcA,MAAI,EAAE,WAAWC,SAAb,CAAJ,EAA6B;AAC3BC,IAAAA,MAAM,CAACC,cAAP,CAAsBF,SAAtB,EAAiC,OAAjC,EAA0C;AACxCG,MAAAA,GAAG,EAAE,SAASA,GAAT,GAAe;AAClB/F,QAAAA,OAAO,CAAC,KAAD,EAAQ,uIAAR,CAAP;AACA,eAAO8B,KAAP;AACD;AAJuC,KAA1C;AAMD;;AAED,SAAO8D,SAAP;AACD","sourcesContent":["import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport toArray from \"rc-util/es/Children/toArray\";\nimport warning from \"rc-util/es/warning\";\nimport { getPosition, isTreeNode } from '../util';\nexport function getKey(key, pos) {\n  if (key !== null && key !== undefined) {\n    return key;\n  }\n\n  return pos;\n}\n/**\n * Warning if TreeNode do not provides key\n */\n\nexport function warningWithoutKey() {\n  var treeData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n  var keys = new Map();\n\n  function dig(list) {\n    var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n    (list || []).forEach(function (treeNode) {\n      var key = treeNode.key,\n          children = treeNode.children;\n      warning(key !== null && key !== undefined, \"Tree node must have a certain key: [\".concat(path).concat(key, \"]\"));\n      var recordKey = String(key);\n      warning(!keys.has(recordKey) || key === null || key === undefined, \"Same 'key' exist in the Tree: \".concat(recordKey));\n      keys.set(recordKey, true);\n      dig(children, \"\".concat(path).concat(recordKey, \" > \"));\n    });\n  }\n\n  dig(treeData);\n}\n/**\n * Convert `children` of Tree into `treeData` structure.\n */\n\nexport function convertTreeToData(rootNodes) {\n  function dig(node) {\n    var treeNodes = toArray(node);\n    return treeNodes.map(function (treeNode) {\n      // Filter invalidate node\n      if (!isTreeNode(treeNode)) {\n        warning(!treeNode, 'Tree/TreeNode can only accept TreeNode as children.');\n        return null;\n      }\n\n      var key = treeNode.key;\n\n      var _treeNode$props = treeNode.props,\n          children = _treeNode$props.children,\n          rest = _objectWithoutProperties(_treeNode$props, [\"children\"]);\n\n      var dataNode = _objectSpread({\n        key: key\n      }, rest);\n\n      var parsedChildren = dig(children);\n\n      if (parsedChildren.length) {\n        dataNode.children = parsedChildren;\n      }\n\n      return dataNode;\n    }).filter(function (dataNode) {\n      return dataNode;\n    });\n  }\n\n  return dig(rootNodes);\n}\n/**\n * Flat nest tree data into flatten list. This is used for virtual list render.\n * @param treeNodeList Origin data node list\n * @param expandedKeys\n * need expanded keys, provides `true` means all expanded (used in `rc-tree-select`).\n */\n\nexport function flattenTreeData() {\n  var treeNodeList = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n  var expandedKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n  var expandedKeySet = new Set(expandedKeys === true ? [] : expandedKeys);\n  var flattenList = [];\n\n  function dig(list) {\n    var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n    return list.map(function (treeNode, index) {\n      var pos = getPosition(parent ? parent.pos : '0', index);\n      var mergedKey = getKey(treeNode.key, pos); // Add FlattenDataNode into list\n\n      var flattenNode = _objectSpread(_objectSpread({}, treeNode), {}, {\n        parent: parent,\n        pos: pos,\n        children: null,\n        data: treeNode,\n        isStart: [].concat(_toConsumableArray(parent ? parent.isStart : []), [index === 0]),\n        isEnd: [].concat(_toConsumableArray(parent ? parent.isEnd : []), [index === list.length - 1])\n      });\n\n      flattenList.push(flattenNode); // Loop treeNode children\n\n      if (expandedKeys === true || expandedKeySet.has(mergedKey)) {\n        flattenNode.children = dig(treeNode.children || [], flattenNode);\n      } else {\n        flattenNode.children = [];\n      }\n\n      return flattenNode;\n    });\n  }\n\n  dig(treeNodeList);\n  return flattenList;\n}\n/**\n * Traverse all the data by `treeData`.\n * Please not use it out of the `rc-tree` since we may refactor this code.\n */\n\nexport function traverseDataNodes(dataNodes, callback, externalGetKey) {\n  var syntheticGetKey;\n\n  if (externalGetKey) {\n    if (typeof externalGetKey === 'string') {\n      syntheticGetKey = function syntheticGetKey(node) {\n        return node[externalGetKey];\n      };\n    } else if (typeof externalGetKey === 'function') {\n      syntheticGetKey = function syntheticGetKey(node) {\n        return externalGetKey(node);\n      };\n    }\n  } else {\n    syntheticGetKey = function syntheticGetKey(node, pos) {\n      return getKey(node.key, pos);\n    };\n  }\n\n  function processNode(node, index, parent) {\n    var children = node ? node.children : dataNodes;\n    var pos = node ? getPosition(parent.pos, index) : '0'; // Process node if is not root\n\n    if (node) {\n      var key = syntheticGetKey(node, pos);\n      var data = {\n        node: node,\n        index: index,\n        pos: pos,\n        key: key,\n        parentPos: parent.node ? parent.pos : null,\n        level: parent.level + 1\n      };\n      callback(data);\n    } // Process children node\n\n\n    if (children) {\n      children.forEach(function (subNode, subIndex) {\n        processNode(subNode, subIndex, {\n          node: node,\n          pos: pos,\n          level: parent ? parent.level + 1 : -1\n        });\n      });\n    }\n  }\n\n  processNode(null);\n}\n/**\n * Convert `treeData` into entity records.\n */\n\nexport function convertDataToEntities(dataNodes) {\n  var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n      initWrapper = _ref.initWrapper,\n      processEntity = _ref.processEntity,\n      onProcessFinished = _ref.onProcessFinished;\n\n  var externalGetKey = arguments.length > 2 ? arguments[2] : undefined;\n  var posEntities = {};\n  var keyEntities = {};\n  var wrapper = {\n    posEntities: posEntities,\n    keyEntities: keyEntities\n  };\n\n  if (initWrapper) {\n    wrapper = initWrapper(wrapper) || wrapper;\n  }\n\n  traverseDataNodes(dataNodes, function (item) {\n    var node = item.node,\n        index = item.index,\n        pos = item.pos,\n        key = item.key,\n        parentPos = item.parentPos,\n        level = item.level;\n    var entity = {\n      node: node,\n      index: index,\n      key: key,\n      pos: pos,\n      level: level\n    };\n    var mergedKey = getKey(key, pos);\n    posEntities[pos] = entity;\n    keyEntities[mergedKey] = entity; // Fill children\n\n    entity.parent = posEntities[parentPos];\n\n    if (entity.parent) {\n      entity.parent.children = entity.parent.children || [];\n      entity.parent.children.push(entity);\n    }\n\n    if (processEntity) {\n      processEntity(entity, wrapper);\n    }\n  }, externalGetKey);\n\n  if (onProcessFinished) {\n    onProcessFinished(wrapper);\n  }\n\n  return wrapper;\n}\n/**\n * Get TreeNode props with Tree props.\n */\n\nexport function getTreeNodeProps(key, _ref2) {\n  var expandedKeys = _ref2.expandedKeys,\n      selectedKeys = _ref2.selectedKeys,\n      loadedKeys = _ref2.loadedKeys,\n      loadingKeys = _ref2.loadingKeys,\n      checkedKeys = _ref2.checkedKeys,\n      halfCheckedKeys = _ref2.halfCheckedKeys,\n      dragOverNodeKey = _ref2.dragOverNodeKey,\n      dropPosition = _ref2.dropPosition,\n      keyEntities = _ref2.keyEntities;\n  var entity = keyEntities[key];\n  var treeNodeProps = {\n    eventKey: key,\n    expanded: expandedKeys.indexOf(key) !== -1,\n    selected: selectedKeys.indexOf(key) !== -1,\n    loaded: loadedKeys.indexOf(key) !== -1,\n    loading: loadingKeys.indexOf(key) !== -1,\n    checked: checkedKeys.indexOf(key) !== -1,\n    halfChecked: halfCheckedKeys.indexOf(key) !== -1,\n    pos: String(entity ? entity.pos : ''),\n    // [Legacy] Drag props\n    // Since the interaction of drag is changed, the semantic of the props are\n    // not accuracy, I think it should be finally removed\n    dragOver: dragOverNodeKey === key && dropPosition === 0,\n    dragOverGapTop: dragOverNodeKey === key && dropPosition === -1,\n    dragOverGapBottom: dragOverNodeKey === key && dropPosition === 1\n  };\n  return treeNodeProps;\n}\nexport function convertNodePropsToEventData(props) {\n  var data = props.data,\n      expanded = props.expanded,\n      selected = props.selected,\n      checked = props.checked,\n      loaded = props.loaded,\n      loading = props.loading,\n      halfChecked = props.halfChecked,\n      dragOver = props.dragOver,\n      dragOverGapTop = props.dragOverGapTop,\n      dragOverGapBottom = props.dragOverGapBottom,\n      pos = props.pos,\n      active = props.active;\n\n  var eventData = _objectSpread(_objectSpread({}, data), {}, {\n    expanded: expanded,\n    selected: selected,\n    checked: checked,\n    loaded: loaded,\n    loading: loading,\n    halfChecked: halfChecked,\n    dragOver: dragOver,\n    dragOverGapTop: dragOverGapTop,\n    dragOverGapBottom: dragOverGapBottom,\n    pos: pos,\n    active: active\n  });\n\n  if (!('props' in eventData)) {\n    Object.defineProperty(eventData, 'props', {\n      get: function get() {\n        warning(false, 'Second param return from event is node data instead of TreeNode instance. Please read value directly instead of reading from `props`.');\n        return props;\n      }\n    });\n  }\n\n  return eventData;\n}"]},"metadata":{},"sourceType":"module"}