575e3f7ff20ca33320ec4a722b42c7d0.json 27.5 KB
{"ast":null,"code":"import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\n/* eslint-disable no-lonely-if */\n\n/**\n * Legacy code. Should avoid to use if you are new to import these code.\n */\n\nimport React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport TreeNode from './TreeNode';\nexport function arrDel(list, value) {\n  var clone = list.slice();\n  var index = clone.indexOf(value);\n\n  if (index >= 0) {\n    clone.splice(index, 1);\n  }\n\n  return clone;\n}\nexport function arrAdd(list, value) {\n  var clone = list.slice();\n\n  if (clone.indexOf(value) === -1) {\n    clone.push(value);\n  }\n\n  return clone;\n}\nexport function posToArr(pos) {\n  return pos.split('-');\n}\nexport function getPosition(level, index) {\n  return \"\".concat(level, \"-\").concat(index);\n}\nexport function isTreeNode(node) {\n  return node && node.type && node.type.isTreeNode;\n}\nexport function getDragChildrenKeys(dragNodeKey, keyEntities) {\n  // not contains self\n  // self for left or right drag\n  var dragChildrenKeys = [];\n  var entity = keyEntities[dragNodeKey];\n\n  function dig() {\n    var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n    list.forEach(function (_ref) {\n      var key = _ref.key,\n          children = _ref.children;\n      dragChildrenKeys.push(key);\n      dig(children);\n    });\n  }\n\n  dig(entity.children);\n  return dragChildrenKeys;\n}\nexport function isLastChild(treeNodeEntity) {\n  if (treeNodeEntity.parent) {\n    var posArr = posToArr(treeNodeEntity.pos);\n    return Number(posArr[posArr.length - 1]) === treeNodeEntity.parent.children.length - 1;\n  }\n\n  return false;\n}\nexport function isFirstChild(treeNodeEntity) {\n  var posArr = posToArr(treeNodeEntity.pos);\n  return Number(posArr[posArr.length - 1]) === 0;\n} // Only used when drag, not affect SSR.\n\nexport function calcDropPosition(event, targetNode, indent, startMousePosition, allowDrop, flattenedNodes, keyEntities, expandKeys, direction) {\n  var _abstractDropNodeEnti;\n\n  var clientX = event.clientX,\n      clientY = event.clientY;\n\n  var _event$target$getBoun = event.target.getBoundingClientRect(),\n      top = _event$target$getBoun.top,\n      height = _event$target$getBoun.height; // optional chain for testing\n\n\n  var horizontalMouseOffset = (direction === 'rtl' ? -1 : 1) * (((startMousePosition === null || startMousePosition === void 0 ? void 0 : startMousePosition.x) || 0) - clientX);\n  var rawDropLevelOffset = (horizontalMouseOffset - 12) / indent; // find abstract drop node by horizontal offset\n\n  var abstractDropNodeEntity = keyEntities[targetNode.props.eventKey];\n\n  if (clientY < top + height / 2) {\n    // first half, set abstract drop node to previous node\n    var nodeIndex = flattenedNodes.findIndex(function (flattenedNode) {\n      return flattenedNode.data.key === abstractDropNodeEntity.key;\n    });\n    var prevNodeIndex = nodeIndex <= 0 ? 0 : nodeIndex - 1;\n    var prevNodeKey = flattenedNodes[prevNodeIndex].data.key;\n    abstractDropNodeEntity = keyEntities[prevNodeKey];\n  }\n\n  var abstractDragOverEntity = abstractDropNodeEntity;\n  var dragOverNodeKey = abstractDropNodeEntity.key;\n  var dropPosition = 0;\n  var dropLevelOffset = 0;\n\n  for (var i = 0; i < rawDropLevelOffset; i += 1) {\n    if (isLastChild(abstractDropNodeEntity)) {\n      abstractDropNodeEntity = abstractDropNodeEntity.parent;\n      dropLevelOffset += 1;\n    } else {\n      break;\n    }\n  }\n\n  var abstractDropDataNode = abstractDropNodeEntity.node;\n  var dropAllowed = true;\n\n  if (isFirstChild(abstractDropNodeEntity) && abstractDropNodeEntity.level === 0 && clientY < top + height / 2 && allowDrop({\n    dropNode: abstractDropDataNode,\n    dropPosition: -1\n  }) && abstractDropNodeEntity.key === targetNode.props.eventKey) {\n    // first half of first node in first level\n    dropPosition = -1;\n  } else if ((abstractDragOverEntity.children || []).length && expandKeys.includes(dragOverNodeKey)) {\n    // drop on expanded node\n    // only allow drop inside\n    if (allowDrop({\n      dropNode: abstractDropDataNode,\n      dropPosition: 0\n    })) {\n      dropPosition = 0;\n    } else {\n      dropAllowed = false;\n    }\n  } else if (dropLevelOffset === 0) {\n    if (rawDropLevelOffset > -1.5) {\n      // | Node     | <- abstractDropNode\n      // | -^-===== | <- mousePosition\n      // 1. try drop after\n      // 2. do not allow drop\n      if (allowDrop({\n        dropNode: abstractDropDataNode,\n        dropPosition: 1\n      })) {\n        dropPosition = 1;\n      } else {\n        dropAllowed = false;\n      }\n    } else {\n      // | Node     | <- abstractDropNode\n      // | ---==^== | <- mousePosition\n      // whether it has children or doesn't has children\n      // always\n      // 1. try drop inside\n      // 2. try drop after\n      // 3. do not allow drop\n      if (allowDrop({\n        dropNode: abstractDropDataNode,\n        dropPosition: 0\n      })) {\n        dropPosition = 0;\n      } else if (allowDrop({\n        dropNode: abstractDropDataNode,\n        dropPosition: 1\n      })) {\n        dropPosition = 1;\n      } else {\n        dropAllowed = false;\n      }\n    }\n  } else {\n    // | Node1 | <- abstractDropNode\n    //      |  Node2  |\n    // --^--|----=====| <- mousePosition\n    // 1. try insert after Node1\n    // 2. do not allow drop\n    if (allowDrop({\n      dropNode: abstractDropDataNode,\n      dropPosition: 1\n    })) {\n      dropPosition = 1;\n    } else {\n      dropAllowed = false;\n    }\n  }\n\n  return {\n    dropPosition: dropPosition,\n    dropLevelOffset: dropLevelOffset,\n    dropTargetKey: abstractDropNodeEntity.key,\n    dropTargetPos: abstractDropNodeEntity.pos,\n    dragOverNodeKey: dragOverNodeKey,\n    dropContainerKey: dropPosition === 0 ? null : ((_abstractDropNodeEnti = abstractDropNodeEntity.parent) === null || _abstractDropNodeEnti === void 0 ? void 0 : _abstractDropNodeEnti.key) || null,\n    dropAllowed: dropAllowed\n  };\n}\n/**\n * Return selectedKeys according with multiple prop\n * @param selectedKeys\n * @param props\n * @returns [string]\n */\n\nexport function calcSelectedKeys(selectedKeys, props) {\n  if (!selectedKeys) return undefined;\n  var multiple = props.multiple;\n\n  if (multiple) {\n    return selectedKeys.slice();\n  }\n\n  if (selectedKeys.length) {\n    return [selectedKeys[0]];\n  }\n\n  return selectedKeys;\n}\n\nvar internalProcessProps = function internalProcessProps(props) {\n  return props;\n};\n\nexport function convertDataToTree(treeData, processor) {\n  if (!treeData) return [];\n\n  var _ref2 = processor || {},\n      _ref2$processProps = _ref2.processProps,\n      processProps = _ref2$processProps === void 0 ? internalProcessProps : _ref2$processProps;\n\n  var list = Array.isArray(treeData) ? treeData : [treeData];\n  return list.map(function (_ref3) {\n    var children = _ref3.children,\n        props = _objectWithoutProperties(_ref3, [\"children\"]);\n\n    var childrenNodes = convertDataToTree(children, processor);\n    return /*#__PURE__*/React.createElement(TreeNode, Object.assign({}, processProps(props)), childrenNodes);\n  });\n}\n/**\n * Parse `checkedKeys` to { checkedKeys, halfCheckedKeys } style\n */\n\nexport function parseCheckedKeys(keys) {\n  if (!keys) {\n    return null;\n  } // Convert keys to object format\n\n\n  var keyProps;\n\n  if (Array.isArray(keys)) {\n    // [Legacy] Follow the api doc\n    keyProps = {\n      checkedKeys: keys,\n      halfCheckedKeys: undefined\n    };\n  } else if (_typeof(keys) === 'object') {\n    keyProps = {\n      checkedKeys: keys.checked || undefined,\n      halfCheckedKeys: keys.halfChecked || undefined\n    };\n  } else {\n    warning(false, '`checkedKeys` is not an array or an object');\n    return null;\n  }\n\n  return keyProps;\n}\n/**\n * If user use `autoExpandParent` we should get the list of parent node\n * @param keyList\n * @param keyEntities\n */\n\nexport function conductExpandParent(keyList, keyEntities) {\n  var expandedKeys = new Set();\n\n  function conductUp(key) {\n    if (expandedKeys.has(key)) return;\n    var entity = keyEntities[key];\n    if (!entity) return;\n    expandedKeys.add(key);\n    var parent = entity.parent,\n        node = entity.node;\n    if (node.disabled) return;\n\n    if (parent) {\n      conductUp(parent.key);\n    }\n  }\n\n  (keyList || []).forEach(function (key) {\n    conductUp(key);\n  });\n  return _toConsumableArray(expandedKeys);\n}\n/**\n * Returns only the data- and aria- key/value pairs\n */\n\nexport function getDataAndAria(props) {\n  var omitProps = {};\n  Object.keys(props).forEach(function (key) {\n    if (key.startsWith('data-') || key.startsWith('aria-')) {\n      omitProps[key] = props[key];\n    }\n  });\n  return omitProps;\n}","map":{"version":3,"sources":["C:/Users/kkwan_000/Desktop/git/2017110269/minsung/node_modules/rc-tree/es/util.js"],"names":["_toConsumableArray","_typeof","_objectWithoutProperties","React","warning","TreeNode","arrDel","list","value","clone","slice","index","indexOf","splice","arrAdd","push","posToArr","pos","split","getPosition","level","concat","isTreeNode","node","type","getDragChildrenKeys","dragNodeKey","keyEntities","dragChildrenKeys","entity","dig","arguments","length","undefined","forEach","_ref","key","children","isLastChild","treeNodeEntity","parent","posArr","Number","isFirstChild","calcDropPosition","event","targetNode","indent","startMousePosition","allowDrop","flattenedNodes","expandKeys","direction","_abstractDropNodeEnti","clientX","clientY","_event$target$getBoun","target","getBoundingClientRect","top","height","horizontalMouseOffset","x","rawDropLevelOffset","abstractDropNodeEntity","props","eventKey","nodeIndex","findIndex","flattenedNode","data","prevNodeIndex","prevNodeKey","abstractDragOverEntity","dragOverNodeKey","dropPosition","dropLevelOffset","i","abstractDropDataNode","dropAllowed","dropNode","includes","dropTargetKey","dropTargetPos","dropContainerKey","calcSelectedKeys","selectedKeys","multiple","internalProcessProps","convertDataToTree","treeData","processor","_ref2","_ref2$processProps","processProps","Array","isArray","map","_ref3","childrenNodes","createElement","Object","assign","parseCheckedKeys","keys","keyProps","checkedKeys","halfCheckedKeys","checked","halfChecked","conductExpandParent","keyList","expandedKeys","Set","conductUp","has","add","disabled","getDataAndAria","omitProps","startsWith"],"mappings":"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","sourcesContent":["import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\n\n/* eslint-disable no-lonely-if */\n\n/**\n * Legacy code. Should avoid to use if you are new to import these code.\n */\nimport React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport TreeNode from './TreeNode';\nexport function arrDel(list, value) {\n  var clone = list.slice();\n  var index = clone.indexOf(value);\n\n  if (index >= 0) {\n    clone.splice(index, 1);\n  }\n\n  return clone;\n}\nexport function arrAdd(list, value) {\n  var clone = list.slice();\n\n  if (clone.indexOf(value) === -1) {\n    clone.push(value);\n  }\n\n  return clone;\n}\nexport function posToArr(pos) {\n  return pos.split('-');\n}\nexport function getPosition(level, index) {\n  return \"\".concat(level, \"-\").concat(index);\n}\nexport function isTreeNode(node) {\n  return node && node.type && node.type.isTreeNode;\n}\nexport function getDragChildrenKeys(dragNodeKey, keyEntities) {\n  // not contains self\n  // self for left or right drag\n  var dragChildrenKeys = [];\n  var entity = keyEntities[dragNodeKey];\n\n  function dig() {\n    var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n    list.forEach(function (_ref) {\n      var key = _ref.key,\n          children = _ref.children;\n      dragChildrenKeys.push(key);\n      dig(children);\n    });\n  }\n\n  dig(entity.children);\n  return dragChildrenKeys;\n}\nexport function isLastChild(treeNodeEntity) {\n  if (treeNodeEntity.parent) {\n    var posArr = posToArr(treeNodeEntity.pos);\n    return Number(posArr[posArr.length - 1]) === treeNodeEntity.parent.children.length - 1;\n  }\n\n  return false;\n}\nexport function isFirstChild(treeNodeEntity) {\n  var posArr = posToArr(treeNodeEntity.pos);\n  return Number(posArr[posArr.length - 1]) === 0;\n} // Only used when drag, not affect SSR.\n\nexport function calcDropPosition(event, targetNode, indent, startMousePosition, allowDrop, flattenedNodes, keyEntities, expandKeys, direction) {\n  var _abstractDropNodeEnti;\n\n  var clientX = event.clientX,\n      clientY = event.clientY;\n\n  var _event$target$getBoun = event.target.getBoundingClientRect(),\n      top = _event$target$getBoun.top,\n      height = _event$target$getBoun.height; // optional chain for testing\n\n\n  var horizontalMouseOffset = (direction === 'rtl' ? -1 : 1) * (((startMousePosition === null || startMousePosition === void 0 ? void 0 : startMousePosition.x) || 0) - clientX);\n  var rawDropLevelOffset = (horizontalMouseOffset - 12) / indent; // find abstract drop node by horizontal offset\n\n  var abstractDropNodeEntity = keyEntities[targetNode.props.eventKey];\n\n  if (clientY < top + height / 2) {\n    // first half, set abstract drop node to previous node\n    var nodeIndex = flattenedNodes.findIndex(function (flattenedNode) {\n      return flattenedNode.data.key === abstractDropNodeEntity.key;\n    });\n    var prevNodeIndex = nodeIndex <= 0 ? 0 : nodeIndex - 1;\n    var prevNodeKey = flattenedNodes[prevNodeIndex].data.key;\n    abstractDropNodeEntity = keyEntities[prevNodeKey];\n  }\n\n  var abstractDragOverEntity = abstractDropNodeEntity;\n  var dragOverNodeKey = abstractDropNodeEntity.key;\n  var dropPosition = 0;\n  var dropLevelOffset = 0;\n\n  for (var i = 0; i < rawDropLevelOffset; i += 1) {\n    if (isLastChild(abstractDropNodeEntity)) {\n      abstractDropNodeEntity = abstractDropNodeEntity.parent;\n      dropLevelOffset += 1;\n    } else {\n      break;\n    }\n  }\n\n  var abstractDropDataNode = abstractDropNodeEntity.node;\n  var dropAllowed = true;\n\n  if (isFirstChild(abstractDropNodeEntity) && abstractDropNodeEntity.level === 0 && clientY < top + height / 2 && allowDrop({\n    dropNode: abstractDropDataNode,\n    dropPosition: -1\n  }) && abstractDropNodeEntity.key === targetNode.props.eventKey) {\n    // first half of first node in first level\n    dropPosition = -1;\n  } else if ((abstractDragOverEntity.children || []).length && expandKeys.includes(dragOverNodeKey)) {\n    // drop on expanded node\n    // only allow drop inside\n    if (allowDrop({\n      dropNode: abstractDropDataNode,\n      dropPosition: 0\n    })) {\n      dropPosition = 0;\n    } else {\n      dropAllowed = false;\n    }\n  } else if (dropLevelOffset === 0) {\n    if (rawDropLevelOffset > -1.5) {\n      // | Node     | <- abstractDropNode\n      // | -^-===== | <- mousePosition\n      // 1. try drop after\n      // 2. do not allow drop\n      if (allowDrop({\n        dropNode: abstractDropDataNode,\n        dropPosition: 1\n      })) {\n        dropPosition = 1;\n      } else {\n        dropAllowed = false;\n      }\n    } else {\n      // | Node     | <- abstractDropNode\n      // | ---==^== | <- mousePosition\n      // whether it has children or doesn't has children\n      // always\n      // 1. try drop inside\n      // 2. try drop after\n      // 3. do not allow drop\n      if (allowDrop({\n        dropNode: abstractDropDataNode,\n        dropPosition: 0\n      })) {\n        dropPosition = 0;\n      } else if (allowDrop({\n        dropNode: abstractDropDataNode,\n        dropPosition: 1\n      })) {\n        dropPosition = 1;\n      } else {\n        dropAllowed = false;\n      }\n    }\n  } else {\n    // | Node1 | <- abstractDropNode\n    //      |  Node2  |\n    // --^--|----=====| <- mousePosition\n    // 1. try insert after Node1\n    // 2. do not allow drop\n    if (allowDrop({\n      dropNode: abstractDropDataNode,\n      dropPosition: 1\n    })) {\n      dropPosition = 1;\n    } else {\n      dropAllowed = false;\n    }\n  }\n\n  return {\n    dropPosition: dropPosition,\n    dropLevelOffset: dropLevelOffset,\n    dropTargetKey: abstractDropNodeEntity.key,\n    dropTargetPos: abstractDropNodeEntity.pos,\n    dragOverNodeKey: dragOverNodeKey,\n    dropContainerKey: dropPosition === 0 ? null : ((_abstractDropNodeEnti = abstractDropNodeEntity.parent) === null || _abstractDropNodeEnti === void 0 ? void 0 : _abstractDropNodeEnti.key) || null,\n    dropAllowed: dropAllowed\n  };\n}\n/**\n * Return selectedKeys according with multiple prop\n * @param selectedKeys\n * @param props\n * @returns [string]\n */\n\nexport function calcSelectedKeys(selectedKeys, props) {\n  if (!selectedKeys) return undefined;\n  var multiple = props.multiple;\n\n  if (multiple) {\n    return selectedKeys.slice();\n  }\n\n  if (selectedKeys.length) {\n    return [selectedKeys[0]];\n  }\n\n  return selectedKeys;\n}\n\nvar internalProcessProps = function internalProcessProps(props) {\n  return props;\n};\n\nexport function convertDataToTree(treeData, processor) {\n  if (!treeData) return [];\n\n  var _ref2 = processor || {},\n      _ref2$processProps = _ref2.processProps,\n      processProps = _ref2$processProps === void 0 ? internalProcessProps : _ref2$processProps;\n\n  var list = Array.isArray(treeData) ? treeData : [treeData];\n  return list.map(function (_ref3) {\n    var children = _ref3.children,\n        props = _objectWithoutProperties(_ref3, [\"children\"]);\n\n    var childrenNodes = convertDataToTree(children, processor);\n    return /*#__PURE__*/React.createElement(TreeNode, Object.assign({}, processProps(props)), childrenNodes);\n  });\n}\n/**\n * Parse `checkedKeys` to { checkedKeys, halfCheckedKeys } style\n */\n\nexport function parseCheckedKeys(keys) {\n  if (!keys) {\n    return null;\n  } // Convert keys to object format\n\n\n  var keyProps;\n\n  if (Array.isArray(keys)) {\n    // [Legacy] Follow the api doc\n    keyProps = {\n      checkedKeys: keys,\n      halfCheckedKeys: undefined\n    };\n  } else if (_typeof(keys) === 'object') {\n    keyProps = {\n      checkedKeys: keys.checked || undefined,\n      halfCheckedKeys: keys.halfChecked || undefined\n    };\n  } else {\n    warning(false, '`checkedKeys` is not an array or an object');\n    return null;\n  }\n\n  return keyProps;\n}\n/**\n * If user use `autoExpandParent` we should get the list of parent node\n * @param keyList\n * @param keyEntities\n */\n\nexport function conductExpandParent(keyList, keyEntities) {\n  var expandedKeys = new Set();\n\n  function conductUp(key) {\n    if (expandedKeys.has(key)) return;\n    var entity = keyEntities[key];\n    if (!entity) return;\n    expandedKeys.add(key);\n    var parent = entity.parent,\n        node = entity.node;\n    if (node.disabled) return;\n\n    if (parent) {\n      conductUp(parent.key);\n    }\n  }\n\n  (keyList || []).forEach(function (key) {\n    conductUp(key);\n  });\n  return _toConsumableArray(expandedKeys);\n}\n/**\n * Returns only the data- and aria- key/value pairs\n */\n\nexport function getDataAndAria(props) {\n  var omitProps = {};\n  Object.keys(props).forEach(function (key) {\n    if (key.startsWith('data-') || key.startsWith('aria-')) {\n      omitProps[key] = props[key];\n    }\n  });\n  return omitProps;\n}"]},"metadata":{},"sourceType":"module"}