{"version":3,"sources":["jsdelivr-header.js","/npm/@alfalab/utils@1.18.1/dist/index.js"],"names":[],"mappings":"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","file":"/npm/@alfalab/utils@1.18.1/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@alfalab/utils@1.18.1/dist/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar data = require('@alfalab/data');\nvar isPlainObject = require('lodash/isPlainObject');\nvar transform = require('lodash/transform');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar isPlainObject__default = /*#__PURE__*/_interopDefaultLegacy(isPlainObject);\nvar transform__default = /*#__PURE__*/_interopDefaultLegacy(transform);\n\n/**\n * Возвращает последние цифры номера счёта в формате `··XXXX`\n * @param accountNumber - Номер счёта.\n * @param additionalParams - Дополнительные параметры.\n * @param additionalParams.countOfResultDigits - Количество оставшихся цифр. По умолчанию 4.\n */\nfunction cropAccountNumber(accountNumber, _a) {\n    var _b = _a === void 0 ? {} : _a, _c = _b.countOfResultDigits, countOfResultDigits = _c === void 0 ? 4 : _c;\n    if (!accountNumber) {\n        return accountNumber;\n    }\n    return \"\\u00B7\\u00B7\" + accountNumber.slice(-countOfResultDigits);\n}\n\nvar ACCOUNT_SPLIT_REGEX = /^(\\d{5})(\\d{3})(\\d)(\\d{4})(\\d{7})$/;\nvar ACCOUNT_FORMAT = '$1 $2 $3 $4 $5';\n/**\n * Возвращает отформатированное значение счёта.\n * Разделяет пробелами число на группы.\n * XXXXX XXX X XXXX XXXXXXX\n *\n * @param value Номер счёта.\n */\nfunction formatAccount(value) {\n    if (!value) {\n        return '';\n    }\n    return value.replace(ACCOUNT_SPLIT_REGEX, ACCOUNT_FORMAT);\n}\n\n/**\n * Возвращает знак валюты по ISO коду.\n *\n * @param currencyCode Код валюты.\n */\nvar getCurrencySymbol = function (currencyCode) {\n    return data.currency.CURRENCY_SYMBOLS[currencyCode];\n};\n\n/**\n * Дробит мажорную часть суммы на части по указанному символу.\n *\n * @param amount Сумма для разбивки на части\n * @param partSize Размер частей суммы\n * @param splitter Символ, разбивающий части суммы\n * @param splitFrom Длина суммы, начиная с которой необходимо осуществлять разбивку. По-умолчанию длина\n * равняется пяти по требованию гайдлайнов: https://design.alfabank.ru/patterns/amount. Пример: 2900 - не разбивается,\n * 29 000 - разбивается.\n */\nvar splitAmount = function (amount, partSize, splitter, splitFrom) {\n    if (partSize === void 0) { partSize = 3; }\n    if (splitFrom === void 0) { splitFrom = 5; }\n    var splittingRegExp = \"\\\\B(?=(\\\\d{\" + partSize + \"})+(?!\\\\d))\";\n    // Если длина суммы меньше требуемой, не форматируем сумму\n    if (amount.length < splitFrom) {\n        return amount;\n    }\n    return amount.replace(new RegExp(splittingRegExp, 'g'), splitter);\n};\n\nvar AMOUNT_MAJOR_PART_SIZE = 3;\nvar AMOUNT_SPLIT_CODE_FROM = 4;\n// Reference: https://jkorpela.fi/dashes.html\nvar NEGATIVE_SYMBOLS = {\n    /** Unicode: U+2212. An arithmetic operator */\n    'minus-sign': '−',\n    /** Unicode: U+002D. The Ascii hyphen. Used in inputs */\n    'hyphen-minus': '-',\n};\nvar THINSP = String.fromCharCode(8201); // &thinsp;\nvar MMSP = String.fromCharCode(8287); // средний математический пробел\nvar AMOUNT_MAJOR_MINOR_PARTS_SEPARATOR = ',';\n/**\n * Возвращает код для валюты взависимости от формата\n */\nvar getCurrencyCodeWithFormat = function (currency, codeFormat) {\n    if (!currency) {\n        return '';\n    }\n    return codeFormat === 'symbolic'\n        ? getCurrencySymbol(currency)\n        : currency;\n};\n/**\n * Возвращает разделитель для кода валюты взависимости от формата\n */\nvar getCurrencySeparator = function (codeFormat) { return (codeFormat === 'symbolic' ? THINSP : MMSP); };\n/**\n * Форматирует значение вместе с кодом валюты\n */\nvar formatWithCurrency = function (value, currencyCode, separator) { return [value, currencyCode].filter(Boolean).join(separator); };\n/**\n * Форматирует значение суммы\n * согласно гайдлайну https://design.alfabank.ru/patterns/amount\n */\nvar formatAmount = function (_a) {\n    var value = _a.value, currency = _a.currency, minority = _a.minority, view = _a.view, _b = _a.negativeSymbol, negativeSymbol = _b === void 0 ? 'minus-sign' : _b, _c = _a.codeFormat, codeFormat = _c === void 0 ? 'symbolic' : _c;\n    var currencySymbol = getCurrencyCodeWithFormat(currency, codeFormat);\n    var currencySeparator = getCurrencySeparator(codeFormat);\n    if (value === null) {\n        return {\n            majorPart: '',\n            minorPart: '',\n            formatted: '',\n            currencySymbol: currencySymbol,\n            currencySeparator: currencySeparator,\n            formattedWithCurrency: formatWithCurrency(value, currencySymbol, currencySeparator),\n        };\n    }\n    // eslint-disable-next-line no-param-reassign\n    minority = minority === 0 ? 1 : minority; // because Math.log(0) => -Infinity\n    var fractionDigits = Math.log(minority) * Math.LOG10E;\n    var valueAbsStr = (Math.abs(value) / minority).toFixed(fractionDigits);\n    var _d = valueAbsStr.split('.'), majorPart = _d[0], _e = _d[1], minorPartParsed = _e === void 0 ? '' : _e;\n    var minorPart = minorPartParsed;\n    if (view === 'default' && value % minority === 0) {\n        minorPart = '';\n    }\n    var majorPartSplitted = splitAmount(majorPart, AMOUNT_MAJOR_PART_SIZE, MMSP, AMOUNT_SPLIT_CODE_FROM);\n    var majorPartFormatted = value < 0 ? NEGATIVE_SYMBOLS[negativeSymbol] + majorPartSplitted : majorPartSplitted;\n    var formattedValueStr = minorPart\n        ? majorPartFormatted + AMOUNT_MAJOR_MINOR_PARTS_SEPARATOR + minorPart\n        : majorPartFormatted;\n    return {\n        majorPart: majorPartFormatted,\n        minorPart: minorPart,\n        currencySymbol: currencySymbol,\n        formatted: formattedValueStr,\n        currencySeparator: currencySeparator,\n        formattedWithCurrency: formatWithCurrency(formattedValueStr, currencySymbol, currencySeparator),\n    };\n};\n\nexports.Locale = void 0;\n(function (Locale) {\n    Locale[\"RU\"] = \"ru\";\n    Locale[\"EN\"] = \"en\";\n})(exports.Locale || (exports.Locale = {}));\n\nvar _a;\nvar UNITS_COUNT = 4;\nvar SIZE_UNITS = (_a = {},\n    _a[exports.Locale.RU] = ['Б', 'КБ', 'МБ', 'ГБ'],\n    _a[exports.Locale.EN] = ['B', 'KB', 'MB', 'GB'],\n    _a);\n\nvar humanizeNumberPartOfFileSize = function (value, factor) {\n    var maxFactor = UNITS_COUNT - 1;\n    if (value > 99 && factor === maxFactor)\n        return '99+';\n    return \"\" + Number(value.toFixed(2));\n};\nvar parseFileSize = function (fileSize) {\n    var parsedFileSize = Number(fileSize);\n    if (Number.isNaN(parsedFileSize))\n        return 0;\n    return parsedFileSize;\n};\n/**\n * Возвращает отформатированное значение размера файла.\n * Разделяет пробелом число и единицу измерения.\n *\n * Примеры:\n * 976.56 KB,\n * 1000 B,\n * 93.13 GB,\n * 99+ GB - Если файл превышает 99 GB,\n * 0 B - Если приходит строка, которую невозможно привести к числу\n */\nvar formatFileSize = function (fileSize, locale) {\n    if (locale === void 0) { locale = exports.Locale.EN; }\n    var maxFactor = UNITS_COUNT - 1;\n    var humanSize = parseFileSize(fileSize);\n    var factor = 0;\n    while (humanSize >= 1024 && factor < maxFactor) {\n        humanSize /= 1024;\n        factor += 1;\n    }\n    return humanizeNumberPartOfFileSize(humanSize, factor) + \" \" + SIZE_UNITS[locale][factor];\n};\n\n/**\n * Удаляет форматирование номера телефона\n * @param phone Отформатированный номер телефона с кодом страны\n * @returns Номер телефона в формате 71112223344/88002223344\n */\nvar getRawPhoneNumber = function (phone) { return phone.replace(/\\D+/g, ''); };\n\n/**\n * Форматирует номер телефона\n * @param phone Номер телефона в любом формате с кодом страны\n * @returns Номер телефона в формате +7 111 222-33-44/8 800 222-33-44\n */\nvar formatPhoneNumber = function (phone) {\n    var rawPhone = getRawPhoneNumber(phone);\n    var formattedPhone = rawPhone.replace(/(\\d)(\\d{3})(\\d{3})(\\d{2})(\\d{2})/, \"$1 $2 $3-$4-$5\");\n    return formattedPhone[0] === '7' ? '+'.concat(formattedPhone) : formattedPhone;\n};\n\n/**\n * Маскирует номер телефона.\n * Номер должен быть уже отформатирован.\n * TODO: сделать, чтобы number можно было принимать любой (отформатированный/неотформатированный)\n *\n * @param {String} number Отформатированный номер телефона\n * @returns {String}\n */\nfunction maskPhoneNumber(number) {\n    var first = number.substr(0, 2);\n    var last = number.substr(number.length - 5, number.length);\n    return first + \" \\u00B7\\u00B7\\u00B7 \\u00B7\\u00B7\\u00B7 \" + last;\n}\n\nvar phoneNumber = {\n    format: formatPhoneNumber,\n    getRaw: getRawPhoneNumber,\n    mask: maskPhoneNumber,\n};\n\nfunction getAllCurrencyCodes() {\n    return Object.keys(data.currency.CURRENCY_SYMBOLS);\n}\n\nvar formatCountry = function (_a) {\n    _a[0]; var name = _a[1], iso2 = _a[2], dialCode = _a[3], priority = _a[4], areaCodes = _a[5];\n    return ({\n        name: name,\n        iso2: iso2,\n        dialCode: dialCode,\n        priority: priority,\n        areaCodes: areaCodes !== null && areaCodes !== void 0 ? areaCodes : null,\n    });\n};\nvar getCountries = function () {\n    return data.countries.map(formatCountry).sort(function (a, b) { return a.name.localeCompare(b.name); });\n};\nvar getCountriesHash = function () {\n    return data.countries.reduce(function (acc, country) {\n        var iso2 = country[2];\n        acc[iso2] = formatCountry(country);\n        return acc;\n    }, {});\n};\n\n/**\n * Возвращает `true`, если элемент переполнен\n * @param element HTML-элемент\n */\nfunction isOverflown(element) {\n    return element.scrollHeight > element.clientHeight || element.scrollWidth > element.clientWidth;\n}\n\n/**\n * Возвращает слово в необходимой форме, зависимой от значения `count`.\n *\n * @example\n * pluralize(1, 'день', 'дня', 'дней'); // день\n * pluralize(2, 'день', 'дня', 'дней'); // дня\n * pluralize(5, 'день', 'дня', 'дней'); // дней\n *\n * @param {number} count - Число.\n * @param {string} nominative - Слово в именительном падеже единственного числа\n * @param {string} genitive - Слово в родительном падеже единственного числа\n * @param {string} plural - Слово во множественном числе\n *\n * @returns {string}\n */\nvar pluralize = function (count, nominative, genitive, plural) {\n    var normalizedNumber = count % 100;\n    if (normalizedNumber >= 11 && normalizedNumber <= 19) {\n        return plural;\n    }\n    var remainder = normalizedNumber % 10;\n    switch (remainder) {\n        case 1:\n            return nominative;\n        case 2:\n        case 3:\n        case 4:\n            return genitive;\n        default:\n            return plural;\n    }\n};\n\n/**\n * Приводит секунды к формату `hh:mm:ss` и возвращает объект с ними.\n */\nfunction secondsToTime(seconds) {\n    var h = Math.floor(seconds / 60 / 60);\n    var m = Math.floor(seconds / 60) % 60;\n    var s = seconds - h * 3600 - m * 60;\n    return {\n        hours: \"\" + numPad('00', h),\n        minutes: \"\" + numPad('00', m),\n        seconds: \"\" + numPad('00', s),\n    };\n}\nfunction numPad(pad, num) {\n    return typeof num === 'undefined' ? pad : (pad + num).slice(-pad.length);\n}\n\n/**\n * Возвращает true/false при проверке номера валидности карты по алгоритму Луна\n */\nvar isValidCardNumber = function (setValue) {\n    var ch = 0;\n    var num = setValue.replace(/\\D/g, '');\n    if (num === '')\n        return false;\n    for (var i = 0; i < num.length; i++) {\n        var n = parseInt(num[i], 10);\n        ch += 0 === i % 2 && (n *= 2) > 9 ? n - 9 : n;\n    }\n    return ch % 10 === 0;\n};\n\nvar EMAIL_PARTS_SEPARATOR = '@';\nvar DOMAIN_PARTS_SEPARATOR = '.';\nvar MAX_ACCOUNT_LENGTH = 64;\nvar MAX_ADDRES_LENGTH = 255;\nvar MAX_DOMAIN_LENGTH = 63;\nvar EMAIL_REGEX = /^[-!#$%&'*+\\/0-9=?A-Z^_a-z`{|}~](\\.?[-!#$%&'*+\\/0-9=?A-Z^_a-z`{|}~])*@[a-zA-Z0-9](-*\\.?[a-zA-Z0-9])*\\.[a-zA-Z](-?[a-zA-Z0-9])+$/;\n/**\n *  Возвращает true для валидного email, иначе false\n *\n * @param email Строка содержащая email\n */\nfunction isValidEmail(email) {\n    if (!email)\n        return false;\n    var emailParts = email.split(EMAIL_PARTS_SEPARATOR);\n    if (emailParts.length !== 2)\n        return false;\n    var account = emailParts[0], address = emailParts[1];\n    var accountTooLong = account.length > MAX_ACCOUNT_LENGTH;\n    var addressTooLong = address.length > MAX_ADDRES_LENGTH;\n    if (accountTooLong || addressTooLong)\n        return false;\n    var domainParts = address.split(DOMAIN_PARTS_SEPARATOR);\n    var domainTooLong = domainParts.some(function (part) { return part.length > MAX_DOMAIN_LENGTH; });\n    if (domainTooLong)\n        return false;\n    return EMAIL_REGEX.test(email);\n}\n\n// prettier-ignore\nvar keyboardsLayouts = {\n    en: [\n        // нижний регистр\n        /* mac */ '§', /* win */ '`',\n        'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', '[', ']',\n        'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', ';', '\\'', '\\\\',\n        'z', 'x', 'c', 'v', 'b', 'n', 'm', ',', '.', '/',\n        // нижний регистр через shift\n        /* mac */ '±', /* win */ '~',\n        'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', '{', '}',\n        'A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', ':', '\"', '|',\n        'Z', 'X', 'C', 'V', 'B', 'N', 'M', '<', '>', '?',\n        '@',\n    ],\n    ru: [\n        // нижний регистр\n        'ё', 'ё',\n        'й', 'ц', 'у', 'к', 'е', 'н', 'г', 'ш', 'щ', 'з', 'х', 'ъ',\n        'ф', 'ы', 'в', 'а', 'п', 'р', 'о', 'л', 'д', 'ж', 'э', 'ё',\n        'я', 'ч', 'с', 'м', 'и', 'т', 'ь', 'б', 'ю', '/',\n        // нижний регистр через shift\n        'Ё', 'Ё',\n        'Й', 'Ц', 'У', 'К', 'Е', 'Н', 'Г', 'Ш', 'Щ', 'З', 'Х', 'Ъ',\n        'Ф', 'Ы', 'В', 'А', 'П', 'Р', 'О', 'Л', 'Д', 'Ж', 'Э', 'Ё',\n        'Я', 'Ч', 'С', 'М', 'И', 'Т', 'Ь', 'Б', 'Ю', '?',\n        '\"',\n    ],\n};\n/** regex для раскладок клавиатуры */\nvar keyboardLanguages = {\n    en: /[a-z[\\]{};:'\"\\\\|,.<>?§±`~]/i,\n    ru: /[а-яё\"/?]/i,\n};\n/**\n * Проверяет строку на совпадение с раскладкой клавиатуры.\n */\nfunction isKeyboardLayout(string, keyboardAlias) {\n    if (!string.length)\n        return false;\n    // your keyboard\n    var keyboardLanguage = keyboardLanguages[keyboardAlias];\n    // недопустимая раскладка клавиатуры\n    if (!keyboardLanguage)\n        return false;\n    var index = 0;\n    var isValid = false;\n    while (index < string.length) {\n        var letter = string[index];\n        if (keyboardLanguage.test(letter)) {\n            isValid = true;\n            return true;\n        }\n        index += 1;\n    }\n    return isValid;\n}\n/**\n * Конвертирует символы из одной раскладки в другую.\n */\nfunction keyboardSwitcher(characters, from, to) {\n    if (characters === void 0) { characters = ''; }\n    if (from === void 0) { from = 'en'; }\n    if (to === void 0) { to = 'ru'; }\n    // incoming text string\n    var textToConvert = characters;\n    // if characters is empty stop working\n    if (!textToConvert || !textToConvert.length)\n        return '';\n    // if incoming text and current keyboard not equal\n    if (!isKeyboardLayout(textToConvert, from)) {\n        return characters;\n    }\n    // current keyboard layout\n    var locale = keyboardsLayouts[from];\n    // convert characters to this keyboard layout\n    var localeOn = keyboardsLayouts[to];\n    var convertedText = '';\n    var index = 0;\n    while (index < textToConvert.length) {\n        var letter = textToConvert[index];\n        var letterIndex = locale.indexOf(letter);\n        convertedText += localeOn[letterIndex];\n        index += 1;\n    }\n    return convertedText;\n}\nfunction switchToKeyboard(characters, keyboardAlias) {\n    var textToConvert = characters;\n    if (!textToConvert.length)\n        return '';\n    var keyboards = Object.keys(keyboardLanguages);\n    var index = 0;\n    var convertedText = '';\n    var _loop_1 = function () {\n        var letter = textToConvert[index];\n        var locale = '';\n        keyboards.map(function (keyboardKey) {\n            var isKeyboardIncludesLetter = isKeyboardLayout(letter, keyboardKey);\n            if (isKeyboardIncludesLetter && keyboardKey !== keyboardAlias) {\n                locale = keyboardKey;\n                return '';\n            }\n            return '';\n        });\n        var returnedLetter = locale === keyboardAlias ? letter : keyboardSwitcher(letter, locale, keyboardAlias);\n        convertedText += returnedLetter;\n        index += 1;\n    };\n    while (index < textToConvert.length) {\n        _loop_1();\n    }\n    return convertedText;\n}\n/**\n * Автоматически переводит английскую раскладку на русскую при вводе пользователем.\n */\nvar formatToRussian = function (value, isCapitalize) {\n    if (value === void 0) { value = ''; }\n    if (isCapitalize === void 0) { isCapitalize = false; }\n    if (!value)\n        return '';\n    // check user keyboard and if it need convert to russian\n    var enteredValue = switchToKeyboard(value, 'ru');\n    return (isCapitalize ? enteredValue[0].toUpperCase() + enteredValue.substr(1) : enteredValue)\n        .replace(/[^\\sа-яё-]/gi, '')\n        .replace(/\\s{2,}/g, ' ');\n};\n\n/**\n * Возвращает TRUE, если проскролено до низа страницы\n */\nfunction hasScrolledToBottomOfPage() {\n    var documentElement = document.documentElement;\n    var offset = documentElement.scrollTop + window.innerHeight;\n    var height = documentElement.offsetHeight;\n    return offset >= height;\n}\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    };\r\n    return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __spreadArray(to, from) {\r\n    for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n        to[j] = from[i];\r\n    return to;\r\n}\n\n/* eslint-disable no-param-reassign */\nvar NUMBER_REGEX = /^\\d+$/;\nvar SKIP_NODE_NAMES = ['', null, undefined];\nvar nodeNamesToPath = function (nodeNames) {\n    return nodeNames.reduce(function (pathAcc, nodeName) {\n        if (!SKIP_NODE_NAMES.includes(nodeName)) {\n            if (nodeName === '*' || NUMBER_REGEX.test(\"\" + nodeName)) {\n                pathAcc += '[*]';\n            }\n            else {\n                if (pathAcc) {\n                    pathAcc += '.';\n                }\n                pathAcc += nodeName;\n            }\n        }\n        return pathAcc;\n    }, '');\n};\nvar INVALID_FILTER_CONFIG_VALUES = ['', null, undefined, true, false];\nvar VALID_REPLACE_CONFIG_TYPES = ['string', 'number', 'boolean', 'function'];\nvar isReplacer = function (replacer) {\n    return replacer === null || VALID_REPLACE_CONFIG_TYPES.includes(typeof replacer);\n};\nvar prepareConfig = function (_a) {\n    var _b = _a.replace, replaceConfig = _b === void 0 ? {} : _b, _c = _a.filter, filterConfig = _c === void 0 ? [] : _c;\n    var filteredReplaceConfig = Object.keys(replaceConfig).reduce(function (res, replaceConfigKey) {\n        var replacer = replaceConfig[replaceConfigKey];\n        if (isReplacer(replacer)) {\n            res[replaceConfigKey] = replacer;\n        }\n        return res;\n    }, {});\n    var filteredFilterConfigObject = filterConfig.reduce(function (res, path) {\n        var _a;\n        if (INVALID_FILTER_CONFIG_VALUES.includes(path)) {\n            return res;\n        }\n        return __assign(__assign({}, res), (_a = {}, _a[path] = true, _a));\n    }, {});\n    var paths = __spreadArray(__spreadArray([], Object.keys(filteredFilterConfigObject)), Object.keys(filteredReplaceConfig));\n    if (paths.length) {\n        return {\n            replaceConfig: filteredReplaceConfig,\n            filterConfig: filteredFilterConfigObject,\n        };\n    }\n    throw new TypeError('required replace or filter in transformConfig');\n};\nvar getReplaceValue = function (value, replacer) {\n    if (isReplacer(replacer)) {\n        return typeof replacer === 'function' ? replacer(value) : replacer;\n    }\n    return value;\n};\n\n/* eslint-disable no-param-reassign */\n// eslint-disable-next-line @typescript-eslint/naming-convention, no-underscore-dangle\nvar _transformData = function (data, _a, parentPath) {\n    var filterConfig = _a.filterConfig, replaceConfig = _a.replaceConfig;\n    if (parentPath === void 0) { parentPath = ''; }\n    return transform__default[\"default\"](data, function (result, value, key) {\n        var currentPath = nodeNamesToPath([parentPath, key]);\n        // Recurse into arrays and objects.\n        if (Array.isArray(value) || isPlainObject__default[\"default\"](value)) {\n            value = _transformData(value, {\n                filterConfig: filterConfig,\n                replaceConfig: replaceConfig,\n            }, currentPath);\n        }\n        if (filterConfig[currentPath]) {\n            return;\n        }\n        var newValue = getReplaceValue(value, replaceConfig[currentPath]);\n        if (Array.isArray(result)) {\n            result.push(newValue);\n            return;\n        }\n        result[key] = newValue;\n    });\n};\n/**\n *  Преобразование полей объекта на основе конфига\n *\n * @param data {Object|Array} данные для преобразования\n * @param config {TransformConfig} конфиг с функциями преобразования и путей для фильтра\n */\nvar transformData = function (data, config) {\n    return _transformData(data, prepareConfig(config));\n};\n\nvar transformDataUtils = {\n    getReplaceValue: getReplaceValue,\n    isReplacer: isReplacer,\n    nodeNamesToPath: nodeNamesToPath,\n    prepareConfig: prepareConfig,\n};\n\nexports.AMOUNT_MAJOR_MINOR_PARTS_SEPARATOR = AMOUNT_MAJOR_MINOR_PARTS_SEPARATOR;\nexports.MMSP = MMSP;\nexports.NEGATIVE_SYMBOLS = NEGATIVE_SYMBOLS;\nexports.THINSP = THINSP;\nexports.cropAccountNumber = cropAccountNumber;\nexports.formatAccount = formatAccount;\nexports.formatAmount = formatAmount;\nexports.formatFileSize = formatFileSize;\nexports.formatToRussian = formatToRussian;\nexports.getAllCurrencyCodes = getAllCurrencyCodes;\nexports.getCountries = getCountries;\nexports.getCountriesHash = getCountriesHash;\nexports.getCurrencySymbol = getCurrencySymbol;\nexports.hasScrolledToBottomOfPage = hasScrolledToBottomOfPage;\nexports.isKeyboardLayout = isKeyboardLayout;\nexports.isOverflown = isOverflown;\nexports.isValidCardNumber = isValidCardNumber;\nexports.isValidEmail = isValidEmail;\nexports.keyboardLanguages = keyboardLanguages;\nexports.keyboardSwitcher = keyboardSwitcher;\nexports.keyboardsLayouts = keyboardsLayouts;\nexports.phoneNumber = phoneNumber;\nexports.pluralize = pluralize;\nexports.secondsToTime = secondsToTime;\nexports.splitAmount = splitAmount;\nexports.switchToKeyboard = switchToKeyboard;\nexports.transformData = transformData;\nexports.transformDataUtils = transformDataUtils;\n"]}