try {
	let e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
	n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "bb0b4db1-0d11-44fd-aa89-f91c697e8ace", e._sentryDebugIdIdentifier = "sentry-dbid-bb0b4db1-0d11-44fd-aa89-f91c697e8ace");
} catch (e) {}
var MAX_LENGTH = 30;
var getMaxLengthByFieldAndCountry = (formattingRules, field, country, ignoreIfFormatterExists) => {
	if (!country) return void 0;
	if (ignoreIfFormatterExists && formattingRules[country]?.[field]?.formatter) return;
	return formattingRules[country]?.[field]?.maxlength || MAX_LENGTH;
};
var isUndefinedOrNull = (input) => input === void 0 || input === null;
var isEmpty = (input) => isUndefinedOrNull(input) || typeof input === "object" && Object.keys(input).length === 0 || typeof input === "string" && /^\s*$/.test(input);
var hasEmptyFields = (input) => input !== void 0 && (Object.keys(input).length === 0 || Object.values(input).some((value) => value === void 0 || value === null || value === ""));
var isAccountIdentifierObscured = (payload) => {
	const accountIdentifier = payload?.type === "iban" ? payload.iban : payload?.accountNumber;
	return Boolean(accountIdentifier) && accountIdentifier.includes("*");
};
var extractFieldName = (inputString) => {
	const fieldNames = inputString?.split(".");
	return fieldNames?.length > 0 ? fieldNames[fieldNames.length - 1] : "";
};
var concatenateFieldNames = (fieldNames) => fieldNames?.join(", ");
var isString = (input) => typeof input === "string" || input instanceof String;
var hasText = (input) => isString(input) && !isEmpty(input);
var SPECIAL_CHARS = "?\\-\\+_=!@#$%^&*(){}~<>\\[\\]\\/\\\\";
var getFormattingRegEx = (specChars, flags = "g") => new RegExp(`[${specChars}]`, flags);
var trimValWithOneSpace = (val) => val.trimStart().replace(/\s+/g, " ");
var EMOJI_REGEX = /(\p{Emoji}\uFE0F|\p{Emoji_Presentation}|\p{Extended_Pictographic})/gu;
var NO_ALPHABET_REGEX = /^[^a-zA-Z]*$/;
var NO_ALPHABET_UNICODE_REGEX = /^[^\p{L}]*$/u;
var INDIVIDUAL_VALID_CHAR_REGEX = /^[\p{L}\p{M}\d\s\-—./']*$/u;
var ADDRESS_VALID_CHAR_REGEX = /^[\p{L}\p{M}\d\s\-—.,/']*$/u;
var OTHER_ENTITIES_VALID_CHAR_REGEX = /^[\w\s,.;:\-—&!?@()"'/\\+\p{L}\p{M}]+$/u;
var LATIN_SPACE_MARK_PUNCTUATION_NUMBERS_REGEX = /^[\p{sc=Latin}\p{Zs}\p{M}\p{Punctuation}\p{N}]+$/u;
var matchesRegex = (regex, input) => isString(input) && regex.test(input ?? "");
var hasRepeatedCharacters = (input) => !isEmpty(input) && input.length > 1 && new Set(input.toLowerCase()).size === 1;
var hasMaximumTwoRepeatedCharacters = (input) => !isEmpty(input) && input.length > 2 && new Set(input.toLowerCase()).size === 1;
var isValidMinLength = (input, minLength = 1) => !isEmpty(input) && input.length >= minLength;
var isInvalidName = (input) => {
	return new Set([
		"John Doe",
		"Jane Doe",
		"ABCD",
		"ABCDE",
		"ABCDEF",
		"ABCDEFG",
		"My Customer",
		"An other",
		"n/a",
		"not applicable",
		"n/A",
		"N/A",
		"N/a",
		"N\\ /A",
		"not app",
		"null"
	]).has(input || "");
};
var standardKanjiValidator = (input) => {
	const regex = /* @__PURE__ */ new RegExp("^[一-鿿㐀-䶿豈-﫿ぁ-ゖァ-ヺー-ヿ０-９Ａ-Ｚａ-ｚ・ー‐－−’，．＆　Ⅰ-Ⅺ･-ﾟA-Za-z0-9,.& ]+$");
	return !isEmpty(input) && regex.test(input);
};
var standardKatakanaValidator = (input) => {
	const regex = /* @__PURE__ */ new RegExp("^[ァ-ヶㇰ-ㇿＡ-Ｚａ-ｚ０-９・ー‐－−’，．＆　Ⅰ-Ⅺ･-ﾟA-Za-z0-9 ,.& へべぺ]+$");
	return !isEmpty(input) && regex.test(input);
};
var chomeAndBanchiValidator = (input) => {
	const regex = /* @__PURE__ */ new RegExp("^([0-9]{1,4}-[0-9]{1,4}|[0-9]{1,4}-[0-9]{1,4}-[0-9]{1,4}|[0-9]{1,4}-[0-9]{1,4}-[0-9]{1,4}-[0-9]{1,4})$");
	return !isEmpty(input) && regex.test(input);
};
function assertString(input) {
	if (input === void 0 || input === null) throw new TypeError(`Expected a string but received a ${input}`);
	if (input.constructor.name !== "String") throw new TypeError(`Expected a string but received a ${input.constructor.name}`);
}
var isin = /^[A-Z]{2}[0-9A-Z]{9}[0-9]$/;
function isISIN(str) {
	assertString(str);
	if (!isin.test(str)) return false;
	let double = true;
	let sum = 0;
	for (let i = str.length - 2; i >= 0; i--) {
		const char = str[i];
		if (char >= "A" && char <= "Z") {
			const value = char.charCodeAt(0) - 55;
			const lo = value % 10;
			const hi = Math.trunc(value / 10);
			for (const digit of [lo, hi]) {
				if (double) if (digit >= 5) sum += 1 + (digit - 5) * 2;
				else sum += digit * 2;
				else sum += digit;
				double = !double;
			}
		} else {
			const digit = parseInt(char, 10);
			if (double) if (digit >= 5) sum += 1 + (digit - 5) * 2;
			else sum += digit * 2;
			else sum += digit;
			double = !double;
		}
	}
	const check = Math.trunc((sum + 9) / 10) * 10 - sum;
	const lastChar = str[str.length - 1];
	if (lastChar === void 0 || isNaN(parseInt(lastChar, 10))) return false;
	return parseInt(lastChar, 10) === check;
}
//#endregion
export { isValidMinLength as C, trimValWithOneSpace as D, standardKatakanaValidator as E, isUndefinedOrNull as S, standardKanjiValidator as T, hasText as _, NO_ALPHABET_REGEX as a, isISIN as b, SPECIAL_CHARS as c, extractFieldName as d, getFormattingRegEx as f, hasRepeatedCharacters as g, hasMaximumTwoRepeatedCharacters as h, LATIN_SPACE_MARK_PUNCTUATION_NUMBERS_REGEX as i, chomeAndBanchiValidator as l, hasEmptyFields as m, EMOJI_REGEX as n, NO_ALPHABET_UNICODE_REGEX as o, getMaxLengthByFieldAndCountry as p, INDIVIDUAL_VALID_CHAR_REGEX as r, OTHER_ENTITIES_VALID_CHAR_REGEX as s, ADDRESS_VALID_CHAR_REGEX as t, concatenateFieldNames as u, isAccountIdentifierObscured as v, matchesRegex as w, isInvalidName as x, isEmpty as y };
