c1f1ed8ebeaf6fc32c29c770703ef18b.json 21.9 KB
{"ast":null,"code":"import warning from \"rc-util/es/warning\";\n\nfunction removeFromCheckedKeys(halfCheckedKeys, checkedKeys) {\n  var filteredKeys = new Set();\n  halfCheckedKeys.forEach(function (key) {\n    if (!checkedKeys.has(key)) {\n      filteredKeys.add(key);\n    }\n  });\n  return filteredKeys;\n}\n\nexport function isCheckDisabled(node) {\n  var _ref = node || {},\n      disabled = _ref.disabled,\n      disableCheckbox = _ref.disableCheckbox,\n      checkable = _ref.checkable;\n\n  return !!(disabled || disableCheckbox) || checkable === false;\n} // Fill miss keys\n\nfunction fillConductCheck(keys, levelEntities, maxLevel, syntheticGetCheckDisabled) {\n  var checkedKeys = new Set(keys);\n  var halfCheckedKeys = new Set(); // Add checked keys top to bottom\n\n  for (var level = 0; level <= maxLevel; level += 1) {\n    var entities = levelEntities.get(level) || new Set();\n    entities.forEach(function (entity) {\n      var key = entity.key,\n          node = entity.node,\n          _entity$children = entity.children,\n          children = _entity$children === void 0 ? [] : _entity$children;\n\n      if (checkedKeys.has(key) && !syntheticGetCheckDisabled(node)) {\n        children.filter(function (childEntity) {\n          return !syntheticGetCheckDisabled(childEntity.node);\n        }).forEach(function (childEntity) {\n          checkedKeys.add(childEntity.key);\n        });\n      }\n    });\n  } // Add checked keys from bottom to top\n\n\n  var visitedKeys = new Set();\n\n  for (var _level = maxLevel; _level >= 0; _level -= 1) {\n    var _entities = levelEntities.get(_level) || new Set();\n\n    _entities.forEach(function (entity) {\n      var parent = entity.parent,\n          node = entity.node; // Skip if no need to check\n\n      if (syntheticGetCheckDisabled(node) || !entity.parent || visitedKeys.has(entity.parent.key)) {\n        return;\n      } // Skip if parent is disabled\n\n\n      if (syntheticGetCheckDisabled(entity.parent.node)) {\n        visitedKeys.add(parent.key);\n        return;\n      }\n\n      var allChecked = true;\n      var partialChecked = false;\n      (parent.children || []).filter(function (childEntity) {\n        return !syntheticGetCheckDisabled(childEntity.node);\n      }).forEach(function (_ref2) {\n        var key = _ref2.key;\n        var checked = checkedKeys.has(key);\n\n        if (allChecked && !checked) {\n          allChecked = false;\n        }\n\n        if (!partialChecked && (checked || halfCheckedKeys.has(key))) {\n          partialChecked = true;\n        }\n      });\n\n      if (allChecked) {\n        checkedKeys.add(parent.key);\n      }\n\n      if (partialChecked) {\n        halfCheckedKeys.add(parent.key);\n      }\n\n      visitedKeys.add(parent.key);\n    });\n  }\n\n  return {\n    checkedKeys: Array.from(checkedKeys),\n    halfCheckedKeys: Array.from(removeFromCheckedKeys(halfCheckedKeys, checkedKeys))\n  };\n} // Remove useless key\n\n\nfunction cleanConductCheck(keys, halfKeys, levelEntities, maxLevel, syntheticGetCheckDisabled) {\n  var checkedKeys = new Set(keys);\n  var halfCheckedKeys = new Set(halfKeys); // Remove checked keys from top to bottom\n\n  for (var level = 0; level <= maxLevel; level += 1) {\n    var entities = levelEntities.get(level) || new Set();\n    entities.forEach(function (entity) {\n      var key = entity.key,\n          node = entity.node,\n          _entity$children2 = entity.children,\n          children = _entity$children2 === void 0 ? [] : _entity$children2;\n\n      if (!checkedKeys.has(key) && !halfCheckedKeys.has(key) && !syntheticGetCheckDisabled(node)) {\n        children.filter(function (childEntity) {\n          return !syntheticGetCheckDisabled(childEntity.node);\n        }).forEach(function (childEntity) {\n          checkedKeys.delete(childEntity.key);\n        });\n      }\n    });\n  } // Remove checked keys form bottom to top\n\n\n  halfCheckedKeys = new Set();\n  var visitedKeys = new Set();\n\n  for (var _level2 = maxLevel; _level2 >= 0; _level2 -= 1) {\n    var _entities2 = levelEntities.get(_level2) || new Set();\n\n    _entities2.forEach(function (entity) {\n      var parent = entity.parent,\n          node = entity.node; // Skip if no need to check\n\n      if (syntheticGetCheckDisabled(node) || !entity.parent || visitedKeys.has(entity.parent.key)) {\n        return;\n      } // Skip if parent is disabled\n\n\n      if (syntheticGetCheckDisabled(entity.parent.node)) {\n        visitedKeys.add(parent.key);\n        return;\n      }\n\n      var allChecked = true;\n      var partialChecked = false;\n      (parent.children || []).filter(function (childEntity) {\n        return !syntheticGetCheckDisabled(childEntity.node);\n      }).forEach(function (_ref3) {\n        var key = _ref3.key;\n        var checked = checkedKeys.has(key);\n\n        if (allChecked && !checked) {\n          allChecked = false;\n        }\n\n        if (!partialChecked && (checked || halfCheckedKeys.has(key))) {\n          partialChecked = true;\n        }\n      });\n\n      if (!allChecked) {\n        checkedKeys.delete(parent.key);\n      }\n\n      if (partialChecked) {\n        halfCheckedKeys.add(parent.key);\n      }\n\n      visitedKeys.add(parent.key);\n    });\n  }\n\n  return {\n    checkedKeys: Array.from(checkedKeys),\n    halfCheckedKeys: Array.from(removeFromCheckedKeys(halfCheckedKeys, checkedKeys))\n  };\n}\n/**\n * Conduct with keys.\n * @param keyList current key list\n * @param keyEntities key - dataEntity map\n * @param mode `fill` to fill missing key, `clean` to remove useless key\n */\n\n\nexport function conductCheck(keyList, checked, keyEntities, getCheckDisabled) {\n  var warningMissKeys = [];\n  var syntheticGetCheckDisabled;\n\n  if (getCheckDisabled) {\n    syntheticGetCheckDisabled = getCheckDisabled;\n  } else {\n    syntheticGetCheckDisabled = isCheckDisabled;\n  } // We only handle exist keys\n\n\n  var keys = new Set(keyList.filter(function (key) {\n    var hasEntity = !!keyEntities[key];\n\n    if (!hasEntity) {\n      warningMissKeys.push(key);\n    }\n\n    return hasEntity;\n  }));\n  var levelEntities = new Map();\n  var maxLevel = 0; // Convert entities by level for calculation\n\n  Object.keys(keyEntities).forEach(function (key) {\n    var entity = keyEntities[key];\n    var level = entity.level;\n    var levelSet = levelEntities.get(level);\n\n    if (!levelSet) {\n      levelSet = new Set();\n      levelEntities.set(level, levelSet);\n    }\n\n    levelSet.add(entity);\n    maxLevel = Math.max(maxLevel, level);\n  });\n  warning(!warningMissKeys.length, \"Tree missing follow keys: \".concat(warningMissKeys.slice(0, 100).map(function (key) {\n    return \"'\".concat(key, \"'\");\n  }).join(', ')));\n  var result;\n\n  if (checked === true) {\n    result = fillConductCheck(keys, levelEntities, maxLevel, syntheticGetCheckDisabled);\n  } else {\n    result = cleanConductCheck(keys, checked.halfCheckedKeys, levelEntities, maxLevel, syntheticGetCheckDisabled);\n  }\n\n  return result;\n}","map":{"version":3,"sources":["C:/Users/kkwan_000/Desktop/git/2017110269/minsung/node_modules/rc-tree/es/utils/conductUtil.js"],"names":["warning","removeFromCheckedKeys","halfCheckedKeys","checkedKeys","filteredKeys","Set","forEach","key","has","add","isCheckDisabled","node","_ref","disabled","disableCheckbox","checkable","fillConductCheck","keys","levelEntities","maxLevel","syntheticGetCheckDisabled","level","entities","get","entity","_entity$children","children","filter","childEntity","visitedKeys","_level","_entities","parent","allChecked","partialChecked","_ref2","checked","Array","from","cleanConductCheck","halfKeys","_entity$children2","delete","_level2","_entities2","_ref3","conductCheck","keyList","keyEntities","getCheckDisabled","warningMissKeys","hasEntity","push","Map","Object","levelSet","set","Math","max","length","concat","slice","map","join","result"],"mappings":"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","sourcesContent":["import warning from \"rc-util/es/warning\";\n\nfunction removeFromCheckedKeys(halfCheckedKeys, checkedKeys) {\n  var filteredKeys = new Set();\n  halfCheckedKeys.forEach(function (key) {\n    if (!checkedKeys.has(key)) {\n      filteredKeys.add(key);\n    }\n  });\n  return filteredKeys;\n}\n\nexport function isCheckDisabled(node) {\n  var _ref = node || {},\n      disabled = _ref.disabled,\n      disableCheckbox = _ref.disableCheckbox,\n      checkable = _ref.checkable;\n\n  return !!(disabled || disableCheckbox) || checkable === false;\n} // Fill miss keys\n\nfunction fillConductCheck(keys, levelEntities, maxLevel, syntheticGetCheckDisabled) {\n  var checkedKeys = new Set(keys);\n  var halfCheckedKeys = new Set(); // Add checked keys top to bottom\n\n  for (var level = 0; level <= maxLevel; level += 1) {\n    var entities = levelEntities.get(level) || new Set();\n    entities.forEach(function (entity) {\n      var key = entity.key,\n          node = entity.node,\n          _entity$children = entity.children,\n          children = _entity$children === void 0 ? [] : _entity$children;\n\n      if (checkedKeys.has(key) && !syntheticGetCheckDisabled(node)) {\n        children.filter(function (childEntity) {\n          return !syntheticGetCheckDisabled(childEntity.node);\n        }).forEach(function (childEntity) {\n          checkedKeys.add(childEntity.key);\n        });\n      }\n    });\n  } // Add checked keys from bottom to top\n\n\n  var visitedKeys = new Set();\n\n  for (var _level = maxLevel; _level >= 0; _level -= 1) {\n    var _entities = levelEntities.get(_level) || new Set();\n\n    _entities.forEach(function (entity) {\n      var parent = entity.parent,\n          node = entity.node; // Skip if no need to check\n\n      if (syntheticGetCheckDisabled(node) || !entity.parent || visitedKeys.has(entity.parent.key)) {\n        return;\n      } // Skip if parent is disabled\n\n\n      if (syntheticGetCheckDisabled(entity.parent.node)) {\n        visitedKeys.add(parent.key);\n        return;\n      }\n\n      var allChecked = true;\n      var partialChecked = false;\n      (parent.children || []).filter(function (childEntity) {\n        return !syntheticGetCheckDisabled(childEntity.node);\n      }).forEach(function (_ref2) {\n        var key = _ref2.key;\n        var checked = checkedKeys.has(key);\n\n        if (allChecked && !checked) {\n          allChecked = false;\n        }\n\n        if (!partialChecked && (checked || halfCheckedKeys.has(key))) {\n          partialChecked = true;\n        }\n      });\n\n      if (allChecked) {\n        checkedKeys.add(parent.key);\n      }\n\n      if (partialChecked) {\n        halfCheckedKeys.add(parent.key);\n      }\n\n      visitedKeys.add(parent.key);\n    });\n  }\n\n  return {\n    checkedKeys: Array.from(checkedKeys),\n    halfCheckedKeys: Array.from(removeFromCheckedKeys(halfCheckedKeys, checkedKeys))\n  };\n} // Remove useless key\n\n\nfunction cleanConductCheck(keys, halfKeys, levelEntities, maxLevel, syntheticGetCheckDisabled) {\n  var checkedKeys = new Set(keys);\n  var halfCheckedKeys = new Set(halfKeys); // Remove checked keys from top to bottom\n\n  for (var level = 0; level <= maxLevel; level += 1) {\n    var entities = levelEntities.get(level) || new Set();\n    entities.forEach(function (entity) {\n      var key = entity.key,\n          node = entity.node,\n          _entity$children2 = entity.children,\n          children = _entity$children2 === void 0 ? [] : _entity$children2;\n\n      if (!checkedKeys.has(key) && !halfCheckedKeys.has(key) && !syntheticGetCheckDisabled(node)) {\n        children.filter(function (childEntity) {\n          return !syntheticGetCheckDisabled(childEntity.node);\n        }).forEach(function (childEntity) {\n          checkedKeys.delete(childEntity.key);\n        });\n      }\n    });\n  } // Remove checked keys form bottom to top\n\n\n  halfCheckedKeys = new Set();\n  var visitedKeys = new Set();\n\n  for (var _level2 = maxLevel; _level2 >= 0; _level2 -= 1) {\n    var _entities2 = levelEntities.get(_level2) || new Set();\n\n    _entities2.forEach(function (entity) {\n      var parent = entity.parent,\n          node = entity.node; // Skip if no need to check\n\n      if (syntheticGetCheckDisabled(node) || !entity.parent || visitedKeys.has(entity.parent.key)) {\n        return;\n      } // Skip if parent is disabled\n\n\n      if (syntheticGetCheckDisabled(entity.parent.node)) {\n        visitedKeys.add(parent.key);\n        return;\n      }\n\n      var allChecked = true;\n      var partialChecked = false;\n      (parent.children || []).filter(function (childEntity) {\n        return !syntheticGetCheckDisabled(childEntity.node);\n      }).forEach(function (_ref3) {\n        var key = _ref3.key;\n        var checked = checkedKeys.has(key);\n\n        if (allChecked && !checked) {\n          allChecked = false;\n        }\n\n        if (!partialChecked && (checked || halfCheckedKeys.has(key))) {\n          partialChecked = true;\n        }\n      });\n\n      if (!allChecked) {\n        checkedKeys.delete(parent.key);\n      }\n\n      if (partialChecked) {\n        halfCheckedKeys.add(parent.key);\n      }\n\n      visitedKeys.add(parent.key);\n    });\n  }\n\n  return {\n    checkedKeys: Array.from(checkedKeys),\n    halfCheckedKeys: Array.from(removeFromCheckedKeys(halfCheckedKeys, checkedKeys))\n  };\n}\n/**\n * Conduct with keys.\n * @param keyList current key list\n * @param keyEntities key - dataEntity map\n * @param mode `fill` to fill missing key, `clean` to remove useless key\n */\n\n\nexport function conductCheck(keyList, checked, keyEntities, getCheckDisabled) {\n  var warningMissKeys = [];\n  var syntheticGetCheckDisabled;\n\n  if (getCheckDisabled) {\n    syntheticGetCheckDisabled = getCheckDisabled;\n  } else {\n    syntheticGetCheckDisabled = isCheckDisabled;\n  } // We only handle exist keys\n\n\n  var keys = new Set(keyList.filter(function (key) {\n    var hasEntity = !!keyEntities[key];\n\n    if (!hasEntity) {\n      warningMissKeys.push(key);\n    }\n\n    return hasEntity;\n  }));\n  var levelEntities = new Map();\n  var maxLevel = 0; // Convert entities by level for calculation\n\n  Object.keys(keyEntities).forEach(function (key) {\n    var entity = keyEntities[key];\n    var level = entity.level;\n    var levelSet = levelEntities.get(level);\n\n    if (!levelSet) {\n      levelSet = new Set();\n      levelEntities.set(level, levelSet);\n    }\n\n    levelSet.add(entity);\n    maxLevel = Math.max(maxLevel, level);\n  });\n  warning(!warningMissKeys.length, \"Tree missing follow keys: \".concat(warningMissKeys.slice(0, 100).map(function (key) {\n    return \"'\".concat(key, \"'\");\n  }).join(', ')));\n  var result;\n\n  if (checked === true) {\n    result = fillConductCheck(keys, levelEntities, maxLevel, syntheticGetCheckDisabled);\n  } else {\n    result = cleanConductCheck(keys, checked.halfCheckedKeys, levelEntities, maxLevel, syntheticGetCheckDisabled);\n  }\n\n  return result;\n}"]},"metadata":{},"sourceType":"module"}