import { DataSourceType, getLoopDataRelationList } from "../../_utils/formKeyType";

/**
 * 判断当前节点是否被循环嵌套
 */
export function isEmbeddedLoopBox(node) {
  var result = false;

  // 上来排除自己，直接校验自己的父节点
  if (node && node.parent) {
    result = handleParentNode(node.parent);
  }
  return result;
}

/**
 *  循环槽位的数据源，一旦被循环嵌套，则数据类型不能再选择接口
 * @param node 
 * @returns 
 */
export function getLoopRelationList(node) {
  var result = getLoopDataRelationList();
  var isEmbeddedLoop = isEmbeddedLoopBox(node);
  if (isEmbeddedLoop) {
    result = result.filter(function (item) {
      return item.value !== DataSourceType.dataSourceType;
    });
  }
  return result;
}
function handleParentNode(node) {
  var result = false;
  if (node.componentName === "LoopBox") {
    return true;
  }
  if (node.parent) {
    result = handleParentNode(node.parent);
  }
  return result;
}