import { blockHasChildrenProp } from "./blocksBridge.js";
import { getProjection } from "./common.js";
function parentRowSupportsChildren(flat, parentId) {
    if (parentId === null) {
        return true;
    }
    const row = flat.find((x) => String(x.id) === String(parentId));
    return Boolean(row && blockHasChildrenProp(row.block));
}
// Не даём сделать элемент дочерним у блока без пропа `children`
// рекурсивно уменьшаем глубину, пока не найдём допустимого родителя.
export function sanitizeProjectionForChildrenCapability(flat, targetId, projectedDepth) {
    const { depth, parentId } = getProjection(flat, targetId, projectedDepth);
    if (parentRowSupportsChildren(flat, parentId)) {
        return { depth, parentId };
    }
    if (projectedDepth <= 0) {
        return getProjection(flat, targetId, 0);
    }
    return sanitizeProjectionForChildrenCapability(flat, targetId, projectedDepth - 1);
}
//# sourceMappingURL=treeDragGuards.js.map
