"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.resolveByKey = resolveByKey;
exports.resolveModalWindowConfig = resolveModalWindowConfig;
exports.resolveInlineFormConfig = resolveInlineFormConfig;
const EMPTY_CONFIGS_ERROR = 'Не найдено ни одной конфигурации модального окна!';
const KEY_NOT_FOUND_ERROR = 'Указанная конфигурация модального окна не найдена! Проверьте корректно ли заполнено ее наименование в вызове.';
/**
 * Ищет элемент конфигурации по строковому ключу.
 */
function resolveByKey(items, keyField, keyValue, options) {
    const emptyMessage = options?.emptyMessage ?? EMPTY_CONFIGS_ERROR;
    const notFoundMessage = options?.notFoundMessage ?? KEY_NOT_FOUND_ERROR;
    if (!items || items.length === 0) {
        throw new Error(emptyMessage);
    }
    const found = items.find(item => item[keyField] === keyValue);
    if (found) {
        return found;
    }
    throw new Error(notFoundMessage);
}
/**
 * Поиск конфигурации модального окна по `modalWindowKey`.
 */
function resolveModalWindowConfig(configs, modalWindowKey) {
    return resolveByKey(configs, 'modalWindowKey', modalWindowKey);
}
/**
 * Поиск конфигурации инлайн-формы блока по `inlineFormKey`.
 */
function resolveInlineFormConfig(configs, inlineFormKey) {
    return resolveByKey(configs, 'inlineFormKey', inlineFormKey, {
        emptyMessage: 'Не найдено ни одной конфигурации инлайн-формы блока!',
        notFoundMessage: 'Указанная конфигурация инлайн-формы блока не найдена! Проверьте корректно ли заполнено ее наименование в вызове.',
    });
}
