import { getEntityUriFromAttributeUri, isEntityUri, getParentUri, findAttributeValueByUri, getReferencedEntityUriFromAttrValue } from '@reltio/mdm-sdk';
export var getLinkedEntity = function (entity, nonOvValues, attributeType) {
    var _a;
    var attributeUri = (_a = nonOvValues === null || nonOvValues === void 0 ? void 0 : nonOvValues[0]) === null || _a === void 0 ? void 0 : _a.uri;
    var entityOrRelationUri = attributeUri ? getEntityUriFromAttributeUri(attributeUri) : null;
    if (entityOrRelationUri && isEntityUri(entityOrRelationUri)) {
        var entityType = getEntityUriFromAttributeUri(attributeType.uri);
        if (!entity || entity.type === entityType) {
            return {
                uri: entityOrRelationUri,
                type: entityType
            };
        }
        var parentAttributeUri = getParentUri(attributeUri);
        var parentAttribute = findAttributeValueByUri(entity, parentAttributeUri);
        return {
            uri: getReferencedEntityUriFromAttrValue(parentAttribute),
            type: entityType
        };
    }
    else {
        return entity
            ? {
                uri: entity.uri,
                type: entity.type
            }
            : null;
    }
};
