"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.findRulesToCheck = exports.findShowAttributeURIs = void 0;
var ramda_1 = require("ramda");
var findShowAttributeURIs = function (changedAttributes, parsedRules) {
    return (0, ramda_1.pipe)((0, ramda_1.reduce)(function (changedShowAttributeURIs, _a) {
        var controlAttributes = _a.controlAttributes, showAttributeURIs = _a.showAttributeURIs;
        var hasChangedControlAttributes = (controlAttributes === null || controlAttributes === void 0 ? void 0 : controlAttributes.length) &&
            controlAttributes.some(function (controlAttribute) { return changedAttributes.includes(controlAttribute); });
        return hasChangedControlAttributes
            ? changedShowAttributeURIs.concat(showAttributeURIs)
            : changedShowAttributeURIs;
    }, []), ramda_1.flatten, ramda_1.uniq)(parsedRules);
};
exports.findShowAttributeURIs = findShowAttributeURIs;
var findRulesToCheck = function (showAttributeURIs, parsedRules) {
    return parsedRules.filter(function (_a) {
        var ruleShowAttributeURIs = _a.showAttributeURIs;
        return ruleShowAttributeURIs.some(function (showAttributeUri) { return showAttributeURIs.includes(showAttributeUri); });
    });
};
exports.findRulesToCheck = findRulesToCheck;
