"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getLinkedEntity = void 0;
var mdm_sdk_1 = require("@reltio/mdm-sdk");
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 ? (0, mdm_sdk_1.getEntityUriFromAttributeUri)(attributeUri) : null;
    if (entityOrRelationUri && (0, mdm_sdk_1.isEntityUri)(entityOrRelationUri)) {
        var entityType = (0, mdm_sdk_1.getEntityUriFromAttributeUri)(attributeType.uri);
        if (!entity || entity.type === entityType) {
            return {
                uri: entityOrRelationUri,
                type: entityType
            };
        }
        var parentAttributeUri = (0, mdm_sdk_1.getParentUri)(attributeUri);
        var parentAttribute = (0, mdm_sdk_1.findAttributeValueByUri)(entity, parentAttributeUri);
        return {
            uri: (0, mdm_sdk_1.getReferencedEntityUriFromAttrValue)(parentAttribute),
            type: entityType
        };
    }
    else {
        return entity
            ? {
                uri: entity.uri,
                type: entity.type
            }
            : null;
    }
};
exports.getLinkedEntity = getLinkedEntity;
