@scbt-ecom/ui 0.79.2 → 0.80.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -304,7 +304,7 @@ const Vt = (e) => {
304
304
  message: (n == null ? void 0 : n.min) || l.PHONE_NON_EMPTY()
305
305
  });
306
306
  });
307
- return t && (r = r.transform((u) => u.replace(o, ""))), r.transform((u) => u || void 0);
307
+ return t && (r = r.transform((u) => u.replace(o, ""))), r.optional().transform((u) => u || void 0);
308
308
  };
309
309
  function Ut(e) {
310
310
  const { required: t = !0 } = e || {};
@@ -553,4 +553,4 @@ export {
553
553
  l as b,
554
554
  an as z
555
555
  };
556
- //# sourceMappingURL=index-Dm9oKv1l.js.map
556
+ //# sourceMappingURL=index-DQTqhWTt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-DQTqhWTt.js","sources":["../lib/shared/validation/base/boolean.validators.ts","../lib/shared/validation/base/base.constants.ts","../lib/shared/validation/base/date.validators.ts","../lib/shared/validation/base/email.validators.ts","../lib/shared/validation/base/number.validators.ts","../lib/shared/validation/base/phone.validators.ts","../lib/shared/validation/base/regex.validators.ts","../lib/shared/validation/base/select.validators.ts","../lib/shared/validation/base/string.validators.ts","../lib/shared/validation/base/union.validators.ts","../lib/shared/validation/base/url.validators.ts","../lib/shared/validation/base/base.validators.ts","../lib/shared/validation/utils/zodUtils.ts","../lib/shared/validation/dadata/dadata.constants.ts","../lib/shared/validation/dadata/fio.validators.ts","../lib/shared/validation/dadata/index.ts","../lib/shared/validation/index.ts"],"sourcesContent":["import z from 'zod'\n\nexport type BooleanValidationOptions<Required extends boolean> = {\n /**\n * указывает что поле обязательное\n */\n required?: Required\n /**\n * значение по умолчанию\n * @default undefined\n */\n defaultValue?: boolean\n message?: Partial<Record<keyof Omit<BooleanValidationOptions<Required>, 'message'>, string>>\n}\n\nconst getBooleanRequired = (props?: Omit<BooleanValidationOptions<true>, 'required'>) => {\n const { defaultValue } = props || {}\n\n const schema = z.boolean()\n\n return schema.default(defaultValue ?? false)\n}\n\ntype BooleanRequiredSchema = ReturnType<typeof getBooleanRequired>\n\nconst getBooleanOptional = (props?: Omit<BooleanValidationOptions<false>, 'required'>) => {\n return getBooleanRequired(props).optional()\n}\n\ntype BooleanOptionalSchema = ReturnType<typeof getBooleanOptional>\n\nexport function getBooleanSchema(props?: BooleanValidationOptions<true>): BooleanRequiredSchema\nexport function getBooleanSchema(props?: BooleanValidationOptions<false>): BooleanOptionalSchema\nexport function getBooleanSchema<Required extends boolean>(\n props?: BooleanValidationOptions<Required>\n): BooleanRequiredSchema | BooleanOptionalSchema {\n const { required = true, ...rest } = props || {}\n\n return required ? getBooleanRequired(rest) : getBooleanOptional(rest)\n}\n","import { type Primitive } from 'zod'\nimport { formatDateToLocaleString } from '$/shared/ui'\nimport { TypeGuards } from '$/shared/utils'\n\nexport const baseDefaultMessages = {\n NON_EMPTY: () => 'Поле не может быть пустым',\n MIN_LENGTH: (min: number) => `Поле должно содержать минимум символов: ${min}`,\n MAX_LENGTH: (max: number) => `Поле должно содержать максимум символов: ${max}`,\n FIX_LENGTH: (length: number) => `Поле должно быть фиксированной длины символов: ${length}`,\n MIN_VALUE: (min: number) => `Значение не может быть меньше чем ${min}`,\n MAX_VALUE: (max: number) => `Значение не может быть больше чем ${max}`,\n PHONE_NON_EMPTY: () => 'Номер телефона должен состоять из 11 цифр',\n PHONE_INVALID_OPERATOR: () => 'Код города/оператора должен начинаться с цифры 3, 4, 5, 6 или 9',\n EMAIL_INVALID: () => 'Email введен некорректно. Пример: example@domain.ru',\n EMAIL_NON_EMPTY: () => 'Введите адрес электронной почты',\n SELECT_NON_EMPTY: () => 'Выберите один из вариантов',\n SELECT_MULTIPLE_MIN_LENGTH: (length: number) => `Выберите не менее ${length} вариантов`,\n SELECT_MULTIPLE_MAX_LENGTH: (length: number) => `Выберите не более ${length} вариантов`,\n SELECT_FIX_LENGTH: (length: number) => `Поле должно быть фиксированного количества вариантов: ${length}`,\n DATE_INVALID_FORMAT: () => 'Дата указана некорректно',\n DATE_NON_EMPTY: () => 'Укажите дату',\n VALUE_OUT_OF_RANGE: <T extends Primitive>(range: T[]) => `Выберите один из вариантов ${range.join(', ')}`,\n DATE_MIN: (min: Date | string) => {\n const date = TypeGuards.isString(min) ? new Date(min) : min\n\n return `Выбранная дата должна быть не раньше ${formatDateToLocaleString(date)}`\n },\n DATE_MAX: (max: Date | string) => {\n const date = TypeGuards.isString(max) ? new Date(max) : max\n\n return `Выбранная дата должна быть не позже ${formatDateToLocaleString(date)}`\n },\n INVALID_REGEX_STRING: () => 'Поле не соответствует требованиям',\n INVALID_URL: () => 'Ссылка введена некорректно. Пример: https://example.com, example.com'\n}\n","import { isValid, parse } from 'date-fns'\nimport z from 'zod'\nimport { baseDefaultMessages } from './base.constants'\nimport { DATE_VISIBLE_PATTERN } from '$/shared/ui'\nimport { TypeGuards } from '$/shared/utils'\n\nexport type DateValidationOptions<Required extends boolean> = {\n /**\n * валидация строки с учетом ISO формата\n * @default true\n */\n iso?: boolean\n /**\n * шаблон для валидации строки (будет проигнорирован, если `iso = true`)\n * @default 'dd.MM.yyyy'\n */\n pattern?: string\n /**\n * минимальная дата\n * `Date | ISO string`\n */\n min?: Date | string\n /**\n * максимальная дата\n * `Date | ISO string`\n */\n max?: Date | string\n /**\n * указывает что поле обязательное\n */\n required?: Required\n /**\n * значение по умолчанию\n * @default undefined\n */\n defaultValue?: string\n message?: {\n min?: string\n max?: string\n invalidDate?: string\n }\n}\n\n/**\n * Схема валидации обязательного поля даты\n */\nconst getDateRequired = (props?: Omit<DateValidationOptions<boolean>, 'required'>) => {\n const { iso = true, pattern = DATE_VISIBLE_PATTERN, min, max, defaultValue, message } = props || {}\n\n return z\n .string()\n .min(8, message?.min || baseDefaultMessages.DATE_NON_EMPTY())\n .superRefine((value, context) => {\n const validSymbolsLength = pattern.replace(/\\W/g, '').length\n const cleanedValue = value.replace(/[._-]/g, '')\n\n if (cleanedValue.length < validSymbolsLength) {\n context.addIssue({\n code: z.ZodIssueCode.too_small,\n minimum: validSymbolsLength,\n type: 'date',\n inclusive: true,\n message: message?.min || baseDefaultMessages.DATE_NON_EMPTY()\n })\n }\n\n if (iso) {\n let date: Date | null = null\n\n try {\n date = new Date(value)\n } catch {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.invalidDate || baseDefaultMessages.DATE_INVALID_FORMAT()\n })\n }\n\n if (min) {\n if (date!.getTime() < (TypeGuards.isString(min) ? new Date(min).getTime() : min.getTime())) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.min || baseDefaultMessages.DATE_MIN(min)\n })\n }\n }\n\n if (max) {\n if (date!.getTime() > (TypeGuards.isString(max) ? new Date(max).getTime() : max.getTime())) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.max || baseDefaultMessages.DATE_MAX(max)\n })\n }\n }\n } else {\n const date = parse(value, pattern, new Date())\n\n if (!isValid(date)) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.invalidDate || baseDefaultMessages.DATE_INVALID_FORMAT()\n })\n }\n\n if (min) {\n if (date.getTime() < (TypeGuards.isString(min) ? new Date(min).getTime() : min.getTime())) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.min || baseDefaultMessages.DATE_MIN(min)\n })\n }\n }\n\n if (max) {\n if (date.getTime() > (TypeGuards.isString(max) ? new Date(max).getTime() : max.getTime())) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.max || baseDefaultMessages.DATE_MAX(max)\n })\n }\n }\n }\n })\n .default(defaultValue ?? '')\n}\ntype DateRequiredSchema = ReturnType<typeof getDateRequired>\n\n/**\n * Схема валидации опционального поля даты\n */\nconst getDateOptional = (props?: Omit<DateValidationOptions<boolean>, 'required'>) => {\n const { iso = true, pattern = DATE_VISIBLE_PATTERN, min, max, message } = props || {}\n\n return z\n .string()\n .transform((value) => (!value ? undefined : value))\n .superRefine((value, context) => {\n if (TypeGuards.isString(value) && Boolean(value.length)) {\n const validSymbolsLength = pattern.replace(/\\W/g, '').length\n const cleanedValue = value.replace(/[._-]/g, '')\n\n if (cleanedValue.length < validSymbolsLength) {\n context.addIssue({\n code: z.ZodIssueCode.too_small,\n minimum: validSymbolsLength,\n type: 'date',\n inclusive: true,\n message: message?.min || baseDefaultMessages.DATE_NON_EMPTY()\n })\n }\n\n if (iso) {\n let date: Date | null = null\n\n try {\n date = new Date(value)\n } catch {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.invalidDate || baseDefaultMessages.DATE_INVALID_FORMAT()\n })\n }\n\n if (min) {\n if (date!.getTime() < (TypeGuards.isString(min) ? new Date(min).getTime() : min.getTime())) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.min || baseDefaultMessages.DATE_MIN(min)\n })\n }\n }\n\n if (max) {\n if (date!.getTime() > (TypeGuards.isString(max) ? new Date(max).getTime() : max.getTime())) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.max || baseDefaultMessages.DATE_MAX(max)\n })\n }\n }\n } else {\n const date = parse(value, pattern, new Date())\n\n if (!isValid(date)) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.invalidDate || baseDefaultMessages.DATE_INVALID_FORMAT()\n })\n }\n\n if (min) {\n if (date.getTime() < (TypeGuards.isString(min) ? new Date(min).getTime() : min.getTime())) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.min || baseDefaultMessages.DATE_MIN(min)\n })\n }\n }\n\n if (max) {\n if (date.getTime() > (TypeGuards.isString(max) ? new Date(max).getTime() : max.getTime())) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.max || baseDefaultMessages.DATE_MAX(max)\n })\n }\n }\n }\n }\n })\n .optional()\n}\ntype DateOptionalSchema = ReturnType<typeof getDateOptional>\n\n/**\n * Схема валидации поля даты\n * @param {DateValidationOptions} props настройки схемы\n * @typeParam `required` - `boolean`\n * @typeParam `iso` - `boolean | undefined`\n * @typeParam `pattern` - `string | undefined`\n * @typeParam `message` - `{ [min | invalidOperator]: string }`\n * @returns схема валидации поля в соответствии с настройками\n *\n * @example with required value\n * z.object({\n * field: zodValidators.base.getDateSchema()\n * })\n * // will returns z.string()\n *\n * @example with required value\n * z.object({\n * field: zodValidators.base.getDateSchema({ required: false })\n * })\n * // will returns z.string().optional()\n */\nexport function getDateSchema(props?: DateValidationOptions<true>): DateRequiredSchema\nexport function getDateSchema(props?: DateValidationOptions<false>): DateOptionalSchema\nexport function getDateSchema<Required extends boolean>(\n props?: DateValidationOptions<Required>\n): DateRequiredSchema | DateOptionalSchema {\n const { required = true } = props || {}\n\n return required ? getDateRequired(props) : getDateOptional(props)\n}\n","import z from 'zod'\nimport { baseDefaultMessages } from './base.constants'\nimport { TypeGuards } from '$/shared/utils'\n\nexport type EmailValidationOptions<Required extends boolean> = {\n /**\n * указывает что поле обязательное\n * @default true\n */\n required?: Required\n /**\n * Регулярное выражение для проверки email на валидность\n */\n regexp?: RegExp | string\n /**\n * значение по умолчанию\n * @default undefined\n */\n defaultValue?: string\n message?: {\n min?: string\n invalid?: string\n }\n}\n\nconst EMAIL_REGEX = /^[\\w-.]+@([\\w-]+\\.)+[\\w-]{2,4}$/g\n\n/**\n * Схема валидации обязательного поля типа email\n */\nconst getEmailRequired = (props?: Omit<EmailValidationOptions<true>, 'required'>) => {\n const { message, defaultValue, regexp = EMAIL_REGEX } = props || {}\n\n const regex = TypeGuards.isString(regexp) ? new RegExp(regexp) : regexp\n\n return z\n .string()\n .min(1, message?.min || baseDefaultMessages.EMAIL_NON_EMPTY())\n .regex(regex, message?.invalid || baseDefaultMessages.EMAIL_INVALID())\n .default(defaultValue ?? '')\n}\ntype EmailRequiredSchema = ReturnType<typeof getEmailRequired>\n\n/**\n * Схема валидации опционального поля типа email\n */\nconst getEmailOptional = (props?: Omit<EmailValidationOptions<false>, 'required'>) => {\n const { message, regexp = EMAIL_REGEX } = props || {}\n\n const regex = TypeGuards.isString(regexp) ? new RegExp(regexp) : regexp\n\n return z\n .string()\n .refine(\n (value) => {\n if (TypeGuards.isStringEmpty(value)) return true\n return regex.test(value)\n },\n {\n message: message?.invalid || baseDefaultMessages.EMAIL_INVALID()\n }\n )\n .optional()\n .transform((value) => (value?.length === 0 ? undefined : value))\n}\ntype EmailOptionalSchema = ReturnType<typeof getEmailOptional>\n\n/**\n * Схема валидации поля типа email\n * @param {EmailValidationOptions} props настройки схемы\n * @typeParam `required` - `boolean`\n * @typeParam `regexp` - `RegExp`\n * @typeParam `message` - `{ [min | invalid]: string }`\n * @returns схема валидации поля в соответствии с настройками\n *\n * @example with required value\n * z.object({\n * field: zodValidators.base.getEmailSchema()\n * })\n * // will returns z.string().min(1).email()\n *\n * @example with optional value\n * z.object({\n * field: zodValidators.base.getEmailSchema({ required: false })\n * })\n * // will returns z.string().min(1).email().optional()\n */\nexport function getEmailSchema(props?: EmailValidationOptions<true>): EmailRequiredSchema\nexport function getEmailSchema(props?: EmailValidationOptions<false>): EmailOptionalSchema\nexport function getEmailSchema<Required extends boolean>(\n props?: EmailValidationOptions<Required>\n): EmailRequiredSchema | EmailOptionalSchema {\n const { required = true } = props || {}\n\n return required ? getEmailRequired(props) : getEmailOptional(props)\n}\n","import z from 'zod'\nimport { baseDefaultMessages } from './base.constants'\n\nexport type NumberValidationOptions<Required extends boolean> = {\n /**\n * минимальное значение\n * @default 0\n */\n min?: number\n /**\n * максимальное значение\n * @default undefined\n */\n max?: number\n /**\n * указывает что поле обязательное\n * @default true\n */\n required?: Required\n /**\n * значение по умолчанию\n * @default undefined\n */\n defaultValue?: number\n message?: Partial<Record<keyof Omit<NumberValidationOptions<Required>, 'message'>, string>>\n}\n\n/**\n * Схема валидации обязательного поля числового типа\n */\nconst getNumberRequired = (props?: Omit<NumberValidationOptions<true>, 'required'>) => {\n const { min, max, message, defaultValue } = props || {}\n\n let schema = z.coerce.number()\n\n if (min) {\n schema = schema.min(min, message?.min || baseDefaultMessages.MIN_VALUE(min))\n }\n\n if (max) {\n schema = schema.max(max, message?.min || baseDefaultMessages.MAX_VALUE(max))\n }\n\n return schema.default(defaultValue ?? 0)\n}\ntype NumberRequiredSchema = ReturnType<typeof getNumberRequired>\n\n/**\n * Схема валидации опционального поля числового типа\n */\nconst getNumberOptional = (props?: Omit<NumberValidationOptions<false>, 'required'>) => {\n return getNumberRequired(props)\n .optional()\n .transform((value) => (!value ? undefined : value))\n}\ntype NumberOptionalSchema = ReturnType<typeof getNumberOptional>\n\n/**\n * Схема валидации опционального поля числового типа\n * @param {NumberValidationOptions} props настройки схемы\n @typeParam `required` - `boolean`\n * @typeParam `min` - `number | undefined` `default: 1`\n * @typeParam `max` - `number | undefined` `default: undefined`\n * @typeParam `message` - `{ [min | max]: string }`\n * @returns схема валидации поля в соответствии с настройками\n *\n * @example with required min, max value\n * z.object({\n * field: zodValidators.base.getNumberSchema({ min: 10, max: 20 })\n * })\n * // will returns z.coerce.number().min(10).max(20)\n *\n * @example with optional min, max value\n * z.object({\n * field: zodValidators.base.getNumberSchema({ min: 10, max: 20, required: false })\n * })\n * // will returns z.coerce.number().min(10).max(20).optional()\n */\nexport function getNumberSchema(props?: NumberValidationOptions<true>): NumberRequiredSchema\nexport function getNumberSchema(props?: NumberValidationOptions<false>): NumberOptionalSchema\nexport function getNumberSchema<Required extends boolean>(\n props?: NumberValidationOptions<Required>\n): NumberRequiredSchema | NumberOptionalSchema {\n const { required = true } = props || {}\n\n return required ? getNumberRequired(props) : getNumberOptional(props)\n}\n","import z from 'zod'\nimport { baseDefaultMessages } from './base.constants'\nimport { TypeGuards } from '$/shared/utils'\n\nexport type PhoneValidationOptions<Required extends boolean> = {\n /**\n * исключает маску в возвращаемом значении\n * @default true\n */\n ignoreMask?: boolean\n /**\n * игнорирует символы для проверки поля исключая данные символы\n * @default /[()+_ -]/g\n */\n maskSymbols?: RegExp | string\n /**\n * указывает что поле обязательное\n */\n required?: Required\n /**\n * значение по умолчанию\n * @default undefined\n */\n defaultValue?: string\n message?: {\n min?: string\n invalidOperator?: string\n }\n /**\n * указываем валидные коды оператор\n * @default ['3', '4', '5', '6', '9']\n * @param string[]\n */\n validOperatorCodes?: string[]\n}\n\n/**\n * Схема валидации обязательного поля номера телефона\n */\nconst getPhoneRequired = (props?: Omit<PhoneValidationOptions<true>, 'required'>) => {\n const {\n ignoreMask = true,\n maskSymbols = /[()+_ -]/g,\n message,\n defaultValue,\n validOperatorCodes = ['3', '4', '5', '6', '9']\n } = props || {}\n\n const mask = TypeGuards.isString(maskSymbols) ? new RegExp(maskSymbols) : maskSymbols\n\n let schema = z.string().superRefine((value, context) => {\n const cleanValue = value.replace(mask, '')\n\n const operatorCode = cleanValue.charAt(1)\n\n if (!validOperatorCodes.includes(operatorCode)) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_string,\n validation: 'regex',\n message: message?.invalidOperator || baseDefaultMessages.PHONE_INVALID_OPERATOR()\n })\n }\n\n if (cleanValue.length < 11) {\n context.addIssue({\n code: z.ZodIssueCode.too_small,\n minimum: 11,\n inclusive: true,\n type: 'string',\n message: message?.min || baseDefaultMessages.PHONE_NON_EMPTY()\n })\n }\n })\n\n if (ignoreMask) {\n schema = schema.transform((value) => value.replace(mask, '')) as unknown as typeof schema\n }\n\n return schema.default(defaultValue ?? '')\n}\ntype PhoneRequiredSchema = ReturnType<typeof getPhoneRequired>\n\n/**\n * Схема валидации опционального поля номера телефона\n */\nconst getPhoneOptional = (props?: Omit<PhoneValidationOptions<false>, 'required'>) => {\n const { ignoreMask = true, maskSymbols = /[()+_ -]/g, message, validOperatorCodes = ['3', '4', '5', '6', '9'] } = props || {}\n\n const mask = TypeGuards.isString(maskSymbols) ? new RegExp(maskSymbols) : maskSymbols\n\n let schema = z.string().superRefine((value, context) => {\n const cleanValue = value.replace(mask, '')\n\n const operatorCode = cleanValue.charAt(1)\n\n if (!validOperatorCodes.includes(operatorCode)) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_string,\n validation: 'regex',\n message: message?.invalidOperator || baseDefaultMessages.PHONE_INVALID_OPERATOR()\n })\n }\n\n if (cleanValue.length < 11) {\n context.addIssue({\n code: z.ZodIssueCode.too_small,\n minimum: 11,\n inclusive: true,\n type: 'string',\n message: message?.min || baseDefaultMessages.PHONE_NON_EMPTY()\n })\n }\n })\n\n if (ignoreMask) {\n schema = schema.transform((value) => value.replace(mask, '')) as unknown as typeof schema\n }\n\n return schema.optional().transform((value) => (!value ? undefined : value))\n}\ntype PhoneOptionalSchema = ReturnType<typeof getPhoneOptional>\n\n/**\n * Схема валидации опционального поля номера телефона\n * @param {PhoneValidationOptions} props настройки схемы\n @typeParam `required` - `boolean`\n * @typeParam `ignoreSeparators` - `boolean | undefined` `default: false`\n * @typeParam `maskSymbols` - `RegExp | undefined` `default: /[()+_ -]/g`\n * @typeParam `message` - `{ [min | invalidOperator]: string }`\n * @returns схема валидации поля в соответствии с настройками\n *\n * @example with required value\n * z.object({\n * field: zodValidators.base.getPhoneSchema()\n * })\n * // will returns z.string()\n *\n * @example with optional value\n * z.object({\n * field: zodValidators.base.getPhoneSchema({ required: false })\n * })\n * // will returns z.string().optional()\n */\nexport function getPhoneSchema(props?: PhoneValidationOptions<true>): PhoneRequiredSchema\nexport function getPhoneSchema(props?: PhoneValidationOptions<false>): PhoneOptionalSchema\nexport function getPhoneSchema<Required extends boolean>(\n props?: PhoneValidationOptions<Required>\n): PhoneRequiredSchema | PhoneOptionalSchema {\n const { required = true } = props || {}\n\n return required ? getPhoneRequired(props) : getPhoneOptional(props)\n}\n","import z from 'zod'\nimport { baseDefaultMessages } from '$/shared/validation'\n\nexport type RegexValidatorsOptions<Required extends boolean> = {\n /**\n * указывает что поле обязательное\n * @default true\n */\n required?: Required\n /**\n * значение по умолчанию\n * @default undefined\n */\n defaultValue?: string\n message?: string\n}\n\nconst getRegexRequired = (regex: RegExp, props?: Omit<RegexValidatorsOptions<true>, 'required'>) => {\n const { message, defaultValue = '' } = props || {}\n\n return z\n .string()\n .nonempty(baseDefaultMessages.NON_EMPTY())\n .regex(regex, message || baseDefaultMessages.INVALID_REGEX_STRING())\n .default(defaultValue)\n}\ntype RegexRequiredSchema = ReturnType<typeof getRegexRequired>\n\nconst getRegexOptional = (regex: RegExp, props?: Omit<RegexValidatorsOptions<false>, 'required'>) => {\n return getRegexRequired(regex, props)\n .optional()\n .transform((value) => (!value?.length ? undefined : value))\n}\ntype RegexOptionalSchema = ReturnType<typeof getRegexOptional>\n\nexport function getRegexSchema(regex: RegExp, props?: RegexValidatorsOptions<true>): RegexRequiredSchema\nexport function getRegexSchema(regex: RegExp, props?: RegexValidatorsOptions<false>): RegexOptionalSchema\nexport function getRegexSchema<Required extends boolean>(\n regex: RegExp,\n props?: RegexValidatorsOptions<Required>\n): RegexRequiredSchema | RegexOptionalSchema {\n const { required = true, ...restProps } = props || {}\n\n return required ? getRegexRequired(regex, restProps) : getRegexOptional(regex, restProps)\n}\n","import z from 'zod'\nimport { baseDefaultMessages } from './base.constants'\n\nexport type SelectSingleValidationOptions<Required extends boolean, Multi extends boolean = false> = {\n /**\n * включает валидацию мульти селекта\n * @default false\n */\n multiple?: Multi\n /**\n * указывает что поле обязательное\n * @default true\n */\n required?: Required\n /**\n * значение по умолчанию\n * @default undefined\n */\n defaultValue?: string\n message?: {\n single?: string\n multiple?: string\n }\n}\n\ntype SelectMultipleValidationOptions<Required extends boolean, Multi extends boolean = true> = SelectSingleValidationOptions<\n Required,\n Multi\n> & {\n /**\n * минимальное количество элементов\n * @default 0\n */\n minLength?: number\n /**\n * максимальное количество элементов\n * @default undefined\n */\n maxLength?: number\n /**\n * фиксированное количество элементов\n * @default undefined\n */\n length?: number\n message?: SelectSingleValidationOptions<Required, Multi> & {\n minLength?: string\n maxLength?: string\n length?: string\n }\n}\n\ntype SelectValidationOptions<Required extends boolean, Multi extends boolean> = Multi extends true\n ? SelectMultipleValidationOptions<Required, Multi>\n : SelectSingleValidationOptions<Required, Multi>\n\n/**\n * Схема валидации обязательного поля типа select\n */\nconst getSelectRequired = <Required extends boolean, Multi extends boolean>(props?: SelectValidationOptions<Required, Multi>) => {\n const { message, defaultValue } = props || {}\n\n const selectSchema = z\n .string()\n .min(1, message?.single || baseDefaultMessages.SELECT_NON_EMPTY())\n .nullable()\n .refine((value) => Boolean(value), message?.single || baseDefaultMessages.SELECT_NON_EMPTY())\n .default(defaultValue ?? null)\n\n if (props?.multiple) {\n let arraySchema = z\n .array(selectSchema)\n .min(props?.minLength || 0, message?.multiple || baseDefaultMessages.SELECT_MULTIPLE_MIN_LENGTH(props?.minLength || 0))\n\n if (props?.length) {\n return arraySchema\n .length(props.length, props.message?.length || baseDefaultMessages.SELECT_FIX_LENGTH(props.length))\n .default([])\n } else if (props?.maxLength) {\n arraySchema = arraySchema.max(\n props.maxLength,\n props.message?.maxLength || baseDefaultMessages.SELECT_MULTIPLE_MAX_LENGTH(props.maxLength)\n )\n }\n\n return arraySchema.default([])\n }\n\n return selectSchema\n}\ntype SelectRequiredSchema = ReturnType<typeof getSelectRequired>\n\n/**\n * Схема валидации опционального поля типа select\n */\nfunction getSelectOptional<Required extends boolean, Multi extends boolean>(\n props?: Omit<SelectValidationOptions<Required, Multi>, 'message'>\n) {\n const selectSchema = z.string().nullable().optional()\n\n if (props?.multiple) {\n return z.array(selectSchema).optional()\n }\n\n return selectSchema\n}\ntype SelectOptionalSchema = ReturnType<typeof getSelectOptional>\n\n/**\n * Схема валидации опционального поля типа select\n * @param {SelectValidationOptions} props настройки схемы\n @typeParam `required` - `boolean`\n * @typeParam `multiple` - `boolean`\n * @typeParam `minLength` - `number | undefined`\n * @returns схема валидации поля в соответствии с настройками\n *\n * @example with required single value\n * z.object({\n * field: zodValidators.base.getSelectSchema({ multiple: false })\n * })\n * // will returns z.string().nullable()\n *\n * @example with required multiple value\n * z.object({\n * field: zodValidators.base.getSelectSchema({ multiple: true })\n * })\n * // will returns z.array(z.string().nullable())\n *\n * @example with optional single value\n * z.object({\n * field: zodValidators.base.getSelectSchema({ required: false, multiple: false })\n * })\n * // will returns z.string().nullable().optional()\n *\n * @example with optional multiple value\n * z.object({\n * field: zodValidators.base.getSelectSchema({ required: false, multiple: true })\n * })\n * // will returns z.array(z.string().nullable().optional()).optional()\n */\nexport function getSelectSchema<Multi extends boolean>(props?: SelectValidationOptions<true, Multi>): SelectRequiredSchema\nexport function getSelectSchema<Multi extends boolean>(props?: SelectValidationOptions<false, Multi>): SelectOptionalSchema\nexport function getSelectSchema<Multi extends boolean, Required extends boolean>(\n props?: SelectValidationOptions<Required, Multi>\n): SelectRequiredSchema | SelectOptionalSchema {\n const { required = true } = props || {}\n\n return required ? getSelectRequired(props) : getSelectOptional(props)\n}\n","import z from 'zod'\nimport { baseDefaultMessages } from './base.constants'\n\nexport type StringValidationOptions<Required extends boolean> = {\n /**\n * минимальное количество символов\n * @default 1\n */\n min?: number\n /**\n * максимальное количество символов\n * @default undefined\n */\n max?: number\n /**\n * фиксированная длина символов\n */\n length?: number\n /**\n * указывает что поле обязательное\n * @default true\n */\n required?: Required\n /**\n * значение по умолчанию\n * @default undefined\n */\n defaultValue?: string\n message?: Partial<Record<keyof Omit<StringValidationOptions<Required>, 'message'> | 'root', string>>\n}\n\n/**\n * Схема валидации обязательного поля строкового типа\n */\nconst getStringRequired = (props?: Omit<StringValidationOptions<true>, 'required'>) => {\n const { min, max, length, defaultValue, message } = props || {}\n\n let schema = z.string({ message: message?.root })\n\n if (min) {\n schema = schema.min(min, { message: message?.min || baseDefaultMessages.MIN_LENGTH(min) })\n }\n\n if (max) {\n schema = schema.max(max, { message: message?.max || baseDefaultMessages.MAX_LENGTH(max) })\n }\n\n if (length) {\n schema = schema.length(length, { message: message?.length || baseDefaultMessages.FIX_LENGTH(length) })\n }\n\n return schema\n .refine((value) => Boolean(value.length), { message: message?.min || baseDefaultMessages.NON_EMPTY() })\n .default(defaultValue ?? '')\n}\ntype StringRequiredSchema = ReturnType<typeof getStringRequired>\n\n/**\n * Схема валидации обязательного поля строкового типа\n */\nconst getStringOptional = (props?: Omit<StringValidationOptions<false>, 'required'>) => {\n const { min, max, length, message } = props || {}\n\n let schema = z.string({ message: message?.root })\n\n if (min) {\n schema = schema.min(min, { message: message?.min || baseDefaultMessages.MIN_LENGTH(min) })\n }\n\n if (max) {\n schema = schema.max(max, { message: message?.max || baseDefaultMessages.MAX_LENGTH(max) })\n }\n\n if (length) {\n schema = schema.length(length, { message: message?.length || baseDefaultMessages.FIX_LENGTH(length) })\n }\n\n return schema.optional().transform((value) => (!value?.length ? undefined : value))\n}\ntype StringOptionalSchema = ReturnType<typeof getStringOptional>\n\n/**\n * Схема валидации обязательного поля строкового типа\n * @param {StringValidationOptions} props настройки схемы\n * @typeParam `min` - `number | undefined` `default: 1`\n * @typeParam `max` - `number | undefined` `default: undefined`\n * @typeParam `message` - `{ [min | max]: string }`\n * @returns схема валидации поля в соответствии с настройками\n *\n * @example with required min value\n * z.object({\n * field: zodValidators.base.getStringSchema({ min: 10 })\n * })\n * // will returns z.string().min(10)\n *\n * @example with required min, max value\n * z.object({\n * field: zodValidators.base.getStringSchema({ min: 10, max: 20 })\n * })\n * // will returns z.string().min(10).max(20)\n *\n * @example with optional min value\n * z.object({\n * field: zodValidators.base.getStringSchema({ required: false, min: 10 })\n * })\n * // will returns z.string().min(10).optional()\n *\n * @example with optional min, max value\n * z.object({\n * field: zodValidators.base.getStringSchema({ required: false, min: 10, max: 20 })\n * })\n * // will returns z.string().min(10).max(20).optional()\n */\nexport function getStringSchema(props?: StringValidationOptions<true>): StringRequiredSchema\nexport function getStringSchema(props?: StringValidationOptions<false>): StringOptionalSchema\nexport function getStringSchema<Required extends boolean>(\n props?: StringValidationOptions<Required>\n): StringRequiredSchema | StringOptionalSchema {\n const { required = true, ...restProps } = props || {}\n\n return required ? getStringRequired(restProps) : getStringOptional(restProps)\n}\n","import z from 'zod'\nimport { baseDefaultMessages } from './base.constants'\n\nexport type UnionValidationOptions<Required extends boolean, T extends z.Primitive> = {\n /**\n * сообщение об ошибке\n */\n message?: ((values: readonly T[]) => string) | string\n errorMap?: z.ZodErrorMap\n /**\n * сообщение об ошибке при не правильном типе значение\n */\n invalid_type_error?: string\n /**\n * сообщение об ошибке при отсутствии значения\n */\n required_error?: string\n /**\n * описание схемы\n */\n description?: string\n /**\n * указывает что поле обязательное\n * @default true\n */\n required?: Required\n}\n\n/**\n * Схема валидации обязательного поля из выборки\n */\nconst getUnionRequired = <T extends z.Primitive>(\n values: [T, T, ...T[]],\n props?: Omit<UnionValidationOptions<true, T>, 'required'>\n) => {\n const { message, ...restProps } = props || {}\n\n const [first, second, ...other] = values.map((value) => z.literal(value))\n\n const errorMessage = (() => {\n if (message) {\n return typeof message === 'function' ? message(values) : message\n }\n\n return baseDefaultMessages.VALUE_OUT_OF_RANGE(values)\n })()\n\n return z\n .union([first, second, ...other], {\n message: errorMessage,\n ...restProps\n })\n .nullable()\n .refine(Boolean, baseDefaultMessages.NON_EMPTY())\n .default(null)\n}\ntype UnionRequiredSchema<T extends z.Primitive> = ReturnType<typeof getUnionRequired<T>>\n\n/**\n * Схема валидации обязательного поля из выборки\n */\nconst getUnionOptional = <T extends z.Primitive>(values: [T, T, ...T[]], props?: UnionValidationOptions<false, T>) => {\n return getUnionRequired(values, props).optional()\n}\ntype UnionOptionalSchema<T extends z.Primitive> = ReturnType<typeof getUnionOptional<T>>\n\n/**\n * Схема валидации обязательного поля из выборки\n * @param {z.Primitive} values литералы\n * @param {z.RawCreateParams & { message: (values: z.Primitive[]) => string }} props настройки схемы\n * @returns схема валидации поля в соответствии с настройками\n *\n * @example with required union value\n * z.object({\n * field: zodValidators.base.getUnionSchema(['A', 'B'] as const)\n * }) ^ it need to infer literal type\n * // will returns z.union([z.literal('A'), z.literal('B')])\n *\n * @example with optional union value\n * z.object({\n * field: zodValidators.base.getUnionSchema(['A', 'B'] as const, { required: false })\n * }) ^ it need to infer literal type\n * // will returns z.union([z.literal('A'), z.literal('B')]).optional()\n */\nexport function getUnionSchema<T extends z.Primitive>(\n values: [T, T, ...T[]],\n props?: UnionValidationOptions<true, T>\n): UnionRequiredSchema<T>\nexport function getUnionSchema<T extends z.Primitive>(\n values: [T, T, ...T[]],\n props?: UnionValidationOptions<false, T>\n): UnionOptionalSchema<T>\nexport function getUnionSchema<T extends z.Primitive, Required extends boolean>(\n values: [T, T, ...T[]],\n props?: UnionValidationOptions<Required, T>\n): UnionRequiredSchema<T> | UnionOptionalSchema<T> {\n const { required, ...restProps } = props || {}\n\n return required ? getUnionRequired(values, restProps) : getUnionOptional(values, restProps)\n}\n","import { string } from 'zod'\nimport { baseDefaultMessages } from './base.constants'\nimport { TypeGuards } from '$/shared/utils'\n\nexport type UrlValidationOptions<Required extends boolean> = {\n /**\n * указывает что поле обязательное\n * @default true\n */\n required?: Required\n /**\n * Регулярное выражение для проверки url на валидность\n */\n regexp?: RegExp | string\n /**\n * значение по умолчанию\n */\n defaultValue?: string\n message?: {\n min?: string\n invalid?: string\n }\n}\n\nconst URL_REGEX =\n /^(http:\\/\\/www\\.|https:\\/\\/www\\.|http:\\/\\/|https:\\/\\/)?[a-z0-9]+([-.]{1}[a-z0-9]+)*\\.[a-z]{2,5}(:[0-9]{1,5})?(\\/.*)?$/\n\n/**\n * Схема валидации обязательного поля ссылки\n */\nconst getUrlRequired = (props?: Omit<UrlValidationOptions<true>, 'required'>) => {\n const { message, defaultValue, regexp = URL_REGEX } = props || {}\n\n const regex = TypeGuards.isString(regexp) ? new RegExp(regexp) : regexp\n\n return string()\n .min(1, message?.min || baseDefaultMessages.NON_EMPTY())\n .regex(regex, message?.invalid || baseDefaultMessages.INVALID_URL())\n .default(defaultValue ?? '')\n}\ntype UrlRequiredSchema = ReturnType<typeof getUrlRequired>\n\n/**\n * Схема валидации опционального поля ссылки\n */\nconst getUrlOptional = (props?: Omit<UrlValidationOptions<false>, 'required'>) => {\n const { message, regexp = URL_REGEX } = props || {}\n\n const regex = TypeGuards.isString(regexp) ? new RegExp(regexp) : regexp\n\n return string()\n .refine((value) => {\n if (TypeGuards.isStringEmpty(value)) return true\n return regex.test(value)\n }, message?.invalid || baseDefaultMessages.INVALID_URL())\n .optional()\n .transform((value) => (!value?.length ? undefined : value))\n}\ntype UrlOptionalSchema = ReturnType<typeof getUrlOptional>\n\nexport function getUrlSchema(props?: UrlValidationOptions<true>): UrlRequiredSchema\nexport function getUrlSchema(props?: UrlValidationOptions<false>): UrlOptionalSchema\n/**\n * Схема валидации поля ссылки\n * @param {UrlValidationOptions} props настройки схемы\n * @typeParam `required` - `boolean`\n * @typeParam `regexp` - `RegExp`\n * @typeParam `message` - `{ [min | invalid]: string }`\n * @returns схема валидации поля в соответствии с настройками\n */\nexport function getUrlSchema<Required extends boolean>(\n props?: UrlValidationOptions<Required>\n): UrlRequiredSchema | UrlOptionalSchema {\n const { required = true } = props || {}\n\n return required ? getUrlRequired(props) : getUrlOptional(props)\n}\n","import { getBooleanSchema } from './boolean.validators'\nimport { getDateSchema } from './date.validators'\nimport { getEmailSchema } from './email.validators'\nimport { getNumberSchema } from './number.validators'\nimport { getPhoneSchema } from './phone.validators'\nimport { getRegexSchema } from './regex.validators'\nimport { getSelectSchema } from './select.validators'\nimport { getStringSchema } from './string.validators'\nimport { getUnionSchema } from './union.validators'\nimport { getUrlSchema } from './url.validators'\n\nexport const baseValidationSchemas = {\n getStringSchema,\n getEmailSchema,\n getSelectSchema,\n getNumberSchema,\n getPhoneSchema,\n getDateSchema,\n getUnionSchema,\n getUrlSchema,\n getRegexSchema,\n getBooleanSchema\n}\n","import z from 'zod'\n\ntype ZodUtilsGetDefaultsOptions = {\n /**\n * Вставить в массив значение, исходя из внутренней схемы z.array\n */\n fillArrayWithValue?: boolean\n}\n\nexport class ZodUtils {\n /**\n * Функция для получения значения по умолчанию исходя из схемы\n * @param zodSchema схема формы\n * @param options настройки генерации значений по умолчанию\n * @returns объект значений по умолчанию\n *\n * @example\n * const schema = z.object({\n * name: zodValidators.base.getStringSchema(),\n * role: zodValidators.base.getUnionSchema(['UNKNOWN', 'ADMIN', 'MODERATOR', 'USER'] as const),\n * info: z.object({\n * address: zodValidators.base.getStringSchema(),\n * phone: zodValidators.base.getPhoneSchema({ ignoreMask: true }),\n * age: zodValidators.base.getNumberSchema()\n * })\n * })\n *\n * const defaultValues = ZodUtils.getZodDefaults(schema)\n *\n * // default values will be inferred from schema\n * // {\n * // name: '',\n * // role: 'UNKNOWN',\n * // info: {\n * // address: '',\n * // phone: '',\n * // age: 0\n * // }\n * // }\n */\n static getZodDefaults<ZodSchema extends z.AnyZodObject, Schema = z.TypeOf<ZodSchema>>(\n zodSchema: ZodSchema | z.ZodEffects<ZodSchema>,\n options?: ZodUtilsGetDefaultsOptions\n ): Schema {\n const { fillArrayWithValue } = options || {}\n\n const processZodEffects = (schema: z.ZodEffects<any>) => {\n const innerType = schema._def.schema\n\n if (innerType instanceof z.ZodEffects || innerType._def.typeName === 'ZodEffects') {\n return processZodEffects(innerType)\n }\n\n if (innerType instanceof z.ZodObject || innerType._def.typeName === 'ZodObject') {\n return this.getZodDefaults(innerType, options)\n }\n\n return getDefaultValue(innerType)\n }\n\n const getDefaultValue = (schema: z.ZodTypeAny): unknown => {\n if (schema instanceof z.ZodEffects || schema._def.typeName === 'ZodEffects') {\n return processZodEffects(schema as z.ZodEffects<ZodSchema>)\n }\n\n switch (true) {\n case schema._def.typeName === 'ZodDefault' || schema instanceof z.ZodDefault:\n return (schema as z.ZodDefault<ZodSchema>)._def.defaultValue()\n case schema._def.typeName === 'ZodOptional' || schema instanceof z.ZodOptional:\n return undefined\n case schema._def.typeName === 'ZodEffects':\n return processZodEffects(schema as z.ZodEffects<ZodSchema>)\n case schema._def.typeName === 'ZodNullable' || schema instanceof z.ZodNullable:\n return null\n case schema._def.typeName === 'ZodArray' || schema instanceof z.ZodArray:\n return fillArrayWithValue ? [getDefaultValue((schema as z.ZodArray<ZodSchema>).element)] : []\n case schema._def.typeName === 'ZodObject' || schema instanceof z.ZodObject:\n return this.getZodDefaults(schema as z.ZodObject<z.ZodRawShape>, options)\n case schema._def.typeName === 'ZodUnion' || schema instanceof z.ZodUnion:\n return getDefaultValue(schema._def.options[0])\n case schema._def.typeName === 'ZodLiteral' || schema instanceof z.ZodLiteral:\n return schema._def.value\n case schema._def.typeName === 'ZodDiscriminatedUnion' || schema instanceof z.ZodDiscriminatedUnion:\n return getDefaultValue(schema._def.options[0])\n case schema._def.typeName === 'ZodEnum' || schema instanceof z.ZodEnum:\n return schema._def.values[0]\n case schema._def.typeName === 'ZodString' || schema instanceof z.ZodString:\n return ''\n case schema._def.typeName === 'ZodNumber' || schema instanceof z.ZodNumber:\n return 0\n case schema._def.typeName === 'ZodBoolean' || schema instanceof z.ZodBoolean:\n return false\n case !('innerType' in schema._def):\n return undefined\n default:\n return getDefaultValue(schema._def.innerType)\n }\n }\n\n // @ts-expect-error asf\n if (zodSchema instanceof z.ZodEffects || zodSchema._def.typeName === 'ZodEffects') {\n return processZodEffects(zodSchema as unknown as z.ZodEffects<any>)\n }\n\n const defaults = {} as Schema\n\n const schemaEntries = Object.entries(zodSchema.shape) as [keyof Schema, z.ZodAny][]\n\n schemaEntries.map(([key, value]) => {\n defaults[key] = getDefaultValue(value) as Schema[keyof Schema]\n })\n\n return defaults\n }\n\n /**\n * Функция для объединения zod схождений\n * @param {ZodIntersection} zodSchema\n * @returns объединенная схема двух схождений\n *\n * @example\n * let schema = z.object({\n * foo: z.string()\n * })\n * // this will return intersection and we need\n * // to merge its left to right schema's\n * .and(\n * z.object({\n * bar: z.string()\n * })\n * )\n *\n * schema = ZodUtils.zodMergeIntersection(schema)\n *\n * // schema will be\n * z.object({\n * foo: z.string(),\n * bar: z.string()\n * })\n */\n static zodMergeIntersection<ZodLeft extends z.ZodTypeAny, ZodRight extends z.ZodTypeAny>(\n zodSchema: z.ZodIntersection<ZodLeft, ZodRight>\n ): z.ZodObject<z.objectUtil.MergeShapes<z.TypeOf<ZodLeft>, z.TypeOf<ZodRight>>> {\n const { left, right } = zodSchema._def\n\n const leftSchema =\n left instanceof z.ZodDiscriminatedUnion || left._def.typeName === 'ZodDiscriminatedUnion' ? left._def.options[0] : left\n const rightSchema =\n right instanceof z.ZodDiscriminatedUnion || right._def.typeName === 'ZodDiscriminatedUnion' ? right._def.options[0] : right\n\n if (\n (leftSchema._def.typeName === 'ZodObject' || leftSchema instanceof z.ZodObject) &&\n (rightSchema._def.typeName === 'ZodObject' || rightSchema instanceof z.ZodObject)\n ) {\n return leftSchema.merge(rightSchema)\n }\n\n throw new Error(`Cannot merge schema type ${rightSchema._def.typeName} to ${leftSchema._def.typeName}`)\n }\n}\n","export const fioDefaultMessages = {\n NON_EMPTY: () => 'Поле обязательно для заполнения',\n VALUE_NO_WHITESPACE: () => 'Укажите фамилию, имя и отчество через пробел',\n ONLY_CYRILLIC: () => 'Данные должны быть написаны кириллицей',\n NAME_OR_SURNAME_NON_EMPTY: () => 'Укажите имя и фамилию',\n INVALID_NAME: () => 'Неверно введено имя',\n INVALID_SURNAME: () => 'Неверно введена фамилия',\n INVALID_PATRONYMIC: () => 'Неверно введено отчество'\n}\n\nexport const fioRegex = {\n ONLY_CYRILLIC: /[\\u0400-\\u04FF\\u00CB\\u00EB -]/g,\n CHECK_HYPHEN: /^(?:[^-]+(?:-[^-]+){0,4}|[^-]+)$/,\n PATRONYMIC: /^[a-zA-Zа-яА-ЯёЁ]+(?:\\s*-\\s*[a-zA-Zа-яА-ЯёЁ]+){0,4}(?:\\s+[a-zA-Zа-яА-ЯёЁ]+(?:\\s*-\\s*[a-zA-Zа-яА-ЯёЁ]+){0,4})?$/i\n}\n","import z from 'zod'\nimport { fioDefaultMessages, fioRegex } from './dadata.constants'\n\nconst getFioParts = (value: string) => {\n const [surname, name, ...patronymicParts] = value.trim().replace(/\\s+/g, ' ').split(' ')\n const patronymic = patronymicParts.join(' ')\n\n return { surname, name, patronymic }\n}\n\nexport type FioValidationOptions<Required extends boolean> = {\n /**\n * указывает что поле обязательное\n * @default true\n */\n required?: Required\n message?: {\n root?: string\n nameOrSurnameEmpty?: string\n invalidName?: string\n invalidSurname?: string\n invalidPatronymic?: string\n }\n}\n\n/**\n * Схема валидации обязательного поля автозаполнения ФИО\n */\nconst getFioRequired = (props?: Omit<FioValidationOptions<true>, 'required'>) => {\n const { message } = props || {}\n\n const { nameOrSurnameEmpty, invalidSurname, invalidPatronymic, invalidName } = message || {}\n\n return z\n .string()\n .superRefine((value, context) => {\n const { name, surname, patronymic } = getFioParts(value)\n\n if (!fioRegex.ONLY_CYRILLIC.test(value)) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_string,\n validation: 'regex',\n message: fioDefaultMessages.ONLY_CYRILLIC()\n })\n }\n\n if (!name || !surname) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_string,\n validation: 'regex',\n message: nameOrSurnameEmpty || fioDefaultMessages.NAME_OR_SURNAME_NON_EMPTY()\n })\n }\n\n if (!fioRegex.CHECK_HYPHEN.test(name)) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_string,\n validation: 'regex',\n message: invalidName || fioDefaultMessages.INVALID_NAME()\n })\n }\n\n if (!fioRegex.CHECK_HYPHEN.test(surname)) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_string,\n validation: 'regex',\n message: invalidSurname || fioDefaultMessages.INVALID_SURNAME()\n })\n }\n\n if (patronymic) {\n if (!fioRegex.PATRONYMIC.test(patronymic)) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_string,\n validation: 'regex',\n message: invalidPatronymic || fioDefaultMessages.INVALID_PATRONYMIC()\n })\n }\n }\n })\n .transform((value) => value.trimEnd())\n .default('')\n}\ntype FioRequiredSchema = ReturnType<typeof getFioRequired>\n\n/**\n * Схема валидации опционального поля автозаполнения ФИО\n */\nconst getFioOptional = (props?: Omit<FioValidationOptions<false>, 'required'>) => {\n return getFioRequired(props)\n .optional()\n .transform((value) => (!value?.length ? undefined : value))\n}\ntype FioOptionalSchema = ReturnType<typeof getFioOptional>\n\n/**\n * Схема валидации поля автозаполнения ФИО\n * @param {DateValidationOptions} props настройки схемы\n * @typeParam `required` - `boolean`\n * @returns схема валидации поля в соответствии с настройками\n *\n * @example with required value\n * z.object({\n * field: zodValidators.base.getFioSchema()\n * })\n * // will returns z.string()\n *\n * @example with required value\n * z.object({\n * field: zodValidators.base.getFioSchema({ required: false })\n * })\n * // will returns z.string().optional()\n */\nexport function getFioSchema(props?: FioValidationOptions<true>): FioRequiredSchema\nexport function getFioSchema(props?: FioValidationOptions<false>): FioOptionalSchema\nexport function getFioSchema<Required extends boolean>(\n props?: FioValidationOptions<Required>\n): FioRequiredSchema | FioOptionalSchema {\n const { required = true, ...restProps } = props || {}\n\n return required ? getFioRequired(restProps) : getFioOptional(restProps)\n}\n","import { getFioSchema } from './fio.validators'\nexport type * from './fio.validators'\nexport { fioDefaultMessages } from './dadata.constants'\n\nexport const dadataValidationSchemas = {\n getFioSchema\n}\n","export * from './regExp'\nexport * from './messages'\nexport * from './zodValidation'\nexport * from './base'\nexport type * from './dadata'\nexport * from './utils'\nimport { baseValidationSchemas } from './base'\nimport { dadataValidationSchemas } from './dadata'\n\nexport const zodValidators = {\n base: baseValidationSchemas,\n dadata: dadataValidationSchemas\n}\n"],"names":["getBooleanRequired","props","defaultValue","z","getBooleanOptional","getBooleanSchema","required","rest","baseDefaultMessages","min","max","length","range","date","TypeGuards","formatDateToLocaleString","getDateRequired","iso","pattern","DATE_VISIBLE_PATTERN","message","value","context","validSymbolsLength","parse","isValid","getDateOptional","getDateSchema","EMAIL_REGEX","getEmailRequired","regexp","regex","getEmailOptional","getEmailSchema","getNumberRequired","schema","getNumberOptional","getNumberSchema","getPhoneRequired","ignoreMask","maskSymbols","validOperatorCodes","mask","cleanValue","operatorCode","getPhoneOptional","getPhoneSchema","getRegexRequired","getRegexOptional","getRegexSchema","restProps","getSelectRequired","selectSchema","arraySchema","_a","_b","getSelectOptional","getSelectSchema","getStringRequired","getStringOptional","getStringSchema","getUnionRequired","values","first","second","other","errorMessage","getUnionOptional","getUnionSchema","URL_REGEX","getUrlRequired","string","getUrlOptional","getUrlSchema","baseValidationSchemas","ZodUtils","zodSchema","options","fillArrayWithValue","processZodEffects","innerType","getDefaultValue","defaults","key","left","right","leftSchema","rightSchema","fioDefaultMessages","fioRegex","getFioParts","surname","name","patronymicParts","patronymic","getFioRequired","nameOrSurnameEmpty","invalidSurname","invalidPatronymic","invalidName","getFioOptional","getFioSchema","dadataValidationSchemas","zodValidators"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from '../next';
@@ -0,0 +1 @@
1
+ export * from './utils';
@@ -0,0 +1,2 @@
1
+ import { AllowedWidgets, WidgetsListDTO } from '../../widgets';
2
+ export declare const hasWidget: (searchableWidget: AllowedWidgets, widgetsList: WidgetsListDTO) => boolean;
@@ -0,0 +1,9 @@
1
+ import { WidgetsListDTO } from '../../widgets';
2
+ /**
3
+ * Скрытие виджетов по query параметрам в URL
4
+ * @extends searchParams наследуется от URLSearchParams, но использует ReadonlyURLSearchParams от next.js !!!
5
+ * @example hidden widgets
6
+ * sovcombank.ru/apply/credit/some-page?hide=calc-form-header
7
+ * @returns WidgetsListDTO если в URL странице передан параметр hide, возвращается новый список исключающий скрытые виджеты, иначе исходный список
8
+ */
9
+ export declare const hideWidgetsWithQueryParams: <Params extends URLSearchParams>(widgetsList: WidgetsListDTO, searchParams: Params) => WidgetsListDTO;
@@ -0,0 +1,4 @@
1
+ export * from './isEmptyWidgetList';
2
+ export * from './hideWidgetsWithQueryParams';
3
+ export * from './orderWidgetWithQueryParams';
4
+ export * from './hasWidget';
@@ -0,0 +1,2 @@
1
+ import { WidgetsListDTO } from '../../widgets';
2
+ export declare const isEmptyWidgetList: (widgetsList: WidgetsListDTO) => boolean;
@@ -0,0 +1,24 @@
1
+ import { WidgetsListDTO } from '../../widgets';
2
+ /**
3
+ * Смена расположения виджетов по query параметрам в URL
4
+ * @extends searchParams наследуется от URLSearchParams, но использует ReadonlyURLSearchParams от next.js !!!
5
+ * @example order widgets
6
+ * sovcombank.ru/apply/credit/some-page?order=calculator-personalForm-header
7
+ *
8
+ * ['header', {}],
9
+ * ['banner', {}],
10
+ * ['calculator', {}],
11
+ * ['personalForm', {}],
12
+ * ['stepper', {}],
13
+ * ---------------------
14
+ * Вернется новый список
15
+ * ---------------------
16
+ * ['calculator', {}],
17
+ * ['personalForm', {}],
18
+ * ['header', {}],
19
+ * ['banner', {}],
20
+ * ['stepper', {}],
21
+ * @returns WidgetsListDTO если в URL странице передан параметр order, возвращается новый список,
22
+ * список выстраивается в приоритете переданных виджетов в query, в конец возвращает остальные виджеты
23
+ */
24
+ export declare const orderWidgetWithQueryParams: <Params extends URLSearchParams>(widgetsList: WidgetsListDTO, searchParams: Params) => WidgetsListDTO;
@@ -38,7 +38,7 @@ type PhoneRequiredSchema = ReturnType<typeof getPhoneRequired>;
38
38
  /**
39
39
  * Схема валидации опционального поля номера телефона
40
40
  */
41
- declare const getPhoneOptional: (props?: Omit<PhoneValidationOptions<false>, "required">) => z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string | undefined, string>;
41
+ declare const getPhoneOptional: (props?: Omit<PhoneValidationOptions<false>, "required">) => z.ZodEffects<z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>, string | undefined, string | undefined>;
42
42
  type PhoneOptionalSchema = ReturnType<typeof getPhoneOptional>;
43
43
  /**
44
44
  * Схема валидации опционального поля номера телефона
package/dist/next.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export * from './lib/exports/next'
2
+ export {}
package/dist/next.js ADDED
@@ -0,0 +1,37 @@
1
+ const c = (r) => !r || r.every(([, e]) => !e), f = (r, e) => {
2
+ if (!r || c(r)) return r;
3
+ let n = [...r];
4
+ const t = e.get("hide");
5
+ if (t) {
6
+ const a = t.split("-");
7
+ n = n.filter((o) => {
8
+ if (!o) return !1;
9
+ const [s] = o;
10
+ return !a.includes(s);
11
+ });
12
+ }
13
+ return n;
14
+ }, u = (r, e) => {
15
+ const n = e.get("order"), t = [];
16
+ if (n) {
17
+ const a = n.split("-");
18
+ for (const s of a) {
19
+ const d = r.find(([i]) => s === i);
20
+ d && t.push(d);
21
+ }
22
+ const o = r.filter(([s]) => !n.includes(s));
23
+ return [...t, ...o];
24
+ } else
25
+ return r;
26
+ }, l = (r, e) => !e || !Array.isArray(e) ? !1 : !!e.find((t) => {
27
+ if (!t || !Array.isArray(t)) return !1;
28
+ const [a, o] = t;
29
+ return a === r && !!o && Object.keys(o).length > 0;
30
+ });
31
+ export {
32
+ l as hasWidget,
33
+ f as hideWidgetsWithQueryParams,
34
+ c as isEmptyWidgetList,
35
+ u as orderWidgetWithQueryParams
36
+ };
37
+ //# sourceMappingURL=next.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"next.js","sources":["../lib/next/utils/isEmptyWidgetList.ts","../lib/next/utils/hideWidgetsWithQueryParams.tsx","../lib/next/utils/orderWidgetWithQueryParams.ts","../lib/next/utils/hasWidget.ts"],"sourcesContent":["import type { WidgetsListDTO } from '../../widgets'\n\nexport const isEmptyWidgetList = (widgetsList: WidgetsListDTO): boolean => {\n return !widgetsList || widgetsList.every(([, props]) => !props)\n}\n","import type { WidgetsListDTO } from '../../widgets'\nimport { isEmptyWidgetList } from './isEmptyWidgetList'\n\n/**\n * Скрытие виджетов по query параметрам в URL\n * @extends searchParams наследуется от URLSearchParams, но использует ReadonlyURLSearchParams от next.js !!!\n * @example hidden widgets\n * sovcombank.ru/apply/credit/some-page?hide=calc-form-header\n * @returns WidgetsListDTO если в URL странице передан параметр hide, возвращается новый список исключающий скрытые виджеты, иначе исходный список\n */\n\nexport const hideWidgetsWithQueryParams = <Params extends URLSearchParams>(widgetsList: WidgetsListDTO, searchParams: Params) => {\n if (!widgetsList || isEmptyWidgetList(widgetsList)) return widgetsList\n\n let formattedWidgetList = [...widgetsList]\n\n const hideParam = searchParams.get('hide')\n if (hideParam) {\n const widgetIdsToHide = hideParam.split('-')\n\n formattedWidgetList = formattedWidgetList.filter((widget) => {\n if (!widget) return false\n const [widgetName] = widget\n return !widgetIdsToHide.includes(widgetName)\n })\n }\n\n return formattedWidgetList\n}\n","import type { WidgetsListDTO } from '../../widgets'\n\n/**\n * Смена расположения виджетов по query параметрам в URL\n * @extends searchParams наследуется от URLSearchParams, но использует ReadonlyURLSearchParams от next.js !!!\n * @example order widgets\n * sovcombank.ru/apply/credit/some-page?order=calculator-personalForm-header\n *\n * ['header', {}],\n * ['banner', {}],\n * ['calculator', {}],\n * ['personalForm', {}],\n * ['stepper', {}],\n * ---------------------\n * Вернется новый список\n * ---------------------\n * ['calculator', {}],\n * ['personalForm', {}],\n * ['header', {}],\n * ['banner', {}],\n * ['stepper', {}],\n * @returns WidgetsListDTO если в URL странице передан параметр order, возвращается новый список,\n * список выстраивается в приоритете переданных виджетов в query, в конец возвращает остальные виджеты\n */\n\nexport const orderWidgetWithQueryParams = <Params extends URLSearchParams>(widgetsList: WidgetsListDTO, searchParams: Params) => {\n const orderedParams = searchParams.get('order')\n const sorted = [] as unknown as WidgetsListDTO\n\n if (orderedParams) {\n const widgetIdsToOrder = orderedParams.split('-')\n\n for (const searchableWidget of widgetIdsToOrder) {\n const orderedWidget = widgetsList.find(([name]) => searchableWidget === name)\n\n if (orderedWidget) {\n sorted.push(orderedWidget)\n }\n }\n\n const withoutSort = widgetsList.filter(([name]) => !orderedParams.includes(name))\n return [...sorted, ...withoutSort]\n } else {\n return widgetsList\n }\n}\n","import type { AllowedWidgets, WidgetsListDTO } from '../../widgets'\n\nexport const hasWidget = (searchableWidget: AllowedWidgets, widgetsList: WidgetsListDTO): boolean => {\n if (!widgetsList || !Array.isArray(widgetsList)) return false\n\n const targetWidget = widgetsList.find((widget) => {\n if (!widget || !Array.isArray(widget)) return false\n const [widgetName, props] = widget\n return widgetName === searchableWidget && Boolean(props) && Object.keys(props).length > 0\n })\n\n return Boolean(targetWidget)\n}\n"],"names":["isEmptyWidgetList","widgetsList","props","hideWidgetsWithQueryParams","searchParams","formattedWidgetList","hideParam","widgetIdsToHide","widget","widgetName","orderWidgetWithQueryParams","orderedParams","sorted","widgetIdsToOrder","searchableWidget","orderedWidget","name","withoutSort","hasWidget"],"mappings":"AAEa,MAAAA,IAAoB,CAACC,MACzB,CAACA,KAAeA,EAAY,MAAM,CAAC,GAAGC,CAAK,MAAM,CAACA,CAAK,GCQnDC,IAA6B,CAAiCF,GAA6BG,MAAyB;AAC/H,MAAI,CAACH,KAAeD,EAAkBC,CAAW,EAAU,QAAAA;AAEvD,MAAAI,IAAsB,CAAC,GAAGJ,CAAW;AAEnC,QAAAK,IAAYF,EAAa,IAAI,MAAM;AACzC,MAAIE,GAAW;AACP,UAAAC,IAAkBD,EAAU,MAAM,GAAG;AAErB,IAAAD,IAAAA,EAAoB,OAAO,CAACG,MAAW;AACvD,UAAA,CAACA,EAAe,QAAA;AACd,YAAA,CAACC,CAAU,IAAID;AACd,aAAA,CAACD,EAAgB,SAASE,CAAU;AAAA,IAAA,CAC5C;AAAA,EAAA;AAGI,SAAAJ;AACT,GCHaK,IAA6B,CAAiCT,GAA6BG,MAAyB;AACzH,QAAAO,IAAgBP,EAAa,IAAI,OAAO,GACxCQ,IAAS,CAAC;AAEhB,MAAID,GAAe;AACX,UAAAE,IAAmBF,EAAc,MAAM,GAAG;AAEhD,eAAWG,KAAoBD,GAAkB;AACzC,YAAAE,IAAgBd,EAAY,KAAK,CAAC,CAACe,CAAI,MAAMF,MAAqBE,CAAI;AAE5E,MAAID,KACFH,EAAO,KAAKG,CAAa;AAAA,IAC3B;AAGI,UAAAE,IAAchB,EAAY,OAAO,CAAC,CAACe,CAAI,MAAM,CAACL,EAAc,SAASK,CAAI,CAAC;AAChF,WAAO,CAAC,GAAGJ,GAAQ,GAAGK,CAAW;AAAA,EAAA;AAE1B,WAAAhB;AAEX,GC3CaiB,IAAY,CAACJ,GAAkCb,MACtD,CAACA,KAAe,CAAC,MAAM,QAAQA,CAAW,IAAU,KAQjD,EANcA,EAAY,KAAK,CAACO,MAAW;AAChD,MAAI,CAACA,KAAU,CAAC,MAAM,QAAQA,CAAM,EAAU,QAAA;AACxC,QAAA,CAACC,GAAYP,CAAK,IAAIM;AACrB,SAAAC,MAAeK,KAAoB,EAAQZ,KAAU,OAAO,KAAKA,CAAK,EAAE,SAAS;AAAA,CACzF;"}
@@ -1,4 +1,4 @@
1
- import { Z as l, b as y, a as F, z as R } from "./index-Dm9oKv1l.js";
1
+ import { Z as l, b as y, a as F, z as R } from "./index-DQTqhWTt.js";
2
2
  import { s as i, Z as a, p as u, i as r, c as I } from "./utils-Bu1Zg675.js";
3
3
  const E = /^[\u0400-\u04FF\u00CB\u00EB -]+$/, m = /^(?:[^-]+(?:-[^-]+){0,4}|[^-]+)$/, _ = /^[a-zA-Zа-яА-ЯёЁ]+(?:\s*-\s*[a-zA-Zа-яА-ЯёЁ]+){0,4}(?:\s+[a-zA-Zа-яА-ЯёЁ]+(?:\s*-\s*[a-zA-Zа-яА-ЯёЁ]+){0,4})?$/i, t = {
4
4
  REQUIRED: "Поле обязательно к заполнению",
package/dist/widget.js CHANGED
@@ -20,7 +20,7 @@ import { lazy as B, useCallback as yt, useState as q, useMemo as se, createEleme
20
20
  import { i as We } from "./isClient-C9aZtt2Q.js";
21
21
  import { s as Jt, c as ke, a as Gt } from "./capitalize-B7CPmCdk.js";
22
22
  import { u as ee, b as Be, a as er, f as we, F as tr } from "./useDebounce-maGDilFr.js";
23
- import { z as st, Z as Pe } from "./index-Dm9oKv1l.js";
23
+ import { z as st, Z as Pe } from "./index-DQTqhWTt.js";
24
24
  import { o as kt } from "./utils-Bu1Zg675.js";
25
25
  import { a as rr, u as nr } from "./useFieldsProgress-egXj013a.js";
26
26
  import { createPortal as wt } from "react-dom";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scbt-ecom/ui",
3
- "version": "0.79.2",
3
+ "version": "0.80.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -36,6 +36,10 @@
36
36
  "./configs": {
37
37
  "import": "./dist/config.js",
38
38
  "require": "./dist/config.js"
39
+ },
40
+ "./next": {
41
+ "import": "./dist/next.js",
42
+ "require": "./dist/next.js"
39
43
  }
40
44
  },
41
45
  "files": [
@@ -77,17 +81,13 @@
77
81
  "esbuild": "0.24.0"
78
82
  },
79
83
  "devDependencies": {
80
- "isomorphic-dompurify": "^2.20.0",
81
- "rc-slider": "^11.1.8",
82
84
  "@chromatic-com/storybook": "^1.6.1",
83
- "uuid": "^11.1.0",
84
85
  "@eslint/compat": "^1.2.1",
85
86
  "@eslint/eslintrc": "^3.1.0",
86
87
  "@eslint/js": "^9.13.0",
87
88
  "@floating-ui/react": "^0.27.4",
88
89
  "@headlessui/react": "^2.1.2",
89
90
  "@hookform/resolvers": "^3.9.0",
90
- "@neodx/svg": "^0.7.1",
91
91
  "@radix-ui/react-checkbox": "^1.1.1",
92
92
  "@radix-ui/react-popover": "^1.1.1",
93
93
  "@radix-ui/react-radio-group": "^1.2.0",
@@ -152,10 +152,12 @@
152
152
  "html-react-parser": "^5.2.2",
153
153
  "husky": "^9.1.4",
154
154
  "input-otp": "^1.4.1",
155
+ "isomorphic-dompurify": "^2.20.0",
155
156
  "jsdom": "^24.1.3",
156
157
  "postcss": "^8.4.40",
157
158
  "prettier": "^3.3.3",
158
159
  "prettier-plugin-tailwindcss": "^0.6.8",
160
+ "rc-slider": "^11.1.8",
159
161
  "react": "^18.3.1",
160
162
  "react-day-picker": "^9.4.1",
161
163
  "react-dom": "^18.3.1",
@@ -172,6 +174,7 @@
172
174
  "typescript": "^5.2.2",
173
175
  "typescript-eslint": "^8.11.0",
174
176
  "use-mask-input": "^3.4.2",
177
+ "uuid": "^11.1.0",
175
178
  "vite": "^5.3.4",
176
179
  "vite-plugin-checker": "^0.7.2",
177
180
  "vite-plugin-dts": "^4.0.2",
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-Dm9oKv1l.js","sources":["../lib/shared/validation/base/boolean.validators.ts","../lib/shared/validation/base/base.constants.ts","../lib/shared/validation/base/date.validators.ts","../lib/shared/validation/base/email.validators.ts","../lib/shared/validation/base/number.validators.ts","../lib/shared/validation/base/phone.validators.ts","../lib/shared/validation/base/regex.validators.ts","../lib/shared/validation/base/select.validators.ts","../lib/shared/validation/base/string.validators.ts","../lib/shared/validation/base/union.validators.ts","../lib/shared/validation/base/url.validators.ts","../lib/shared/validation/base/base.validators.ts","../lib/shared/validation/utils/zodUtils.ts","../lib/shared/validation/dadata/dadata.constants.ts","../lib/shared/validation/dadata/fio.validators.ts","../lib/shared/validation/dadata/index.ts","../lib/shared/validation/index.ts"],"sourcesContent":["import z from 'zod'\n\nexport type BooleanValidationOptions<Required extends boolean> = {\n /**\n * указывает что поле обязательное\n */\n required?: Required\n /**\n * значение по умолчанию\n * @default undefined\n */\n defaultValue?: boolean\n message?: Partial<Record<keyof Omit<BooleanValidationOptions<Required>, 'message'>, string>>\n}\n\nconst getBooleanRequired = (props?: Omit<BooleanValidationOptions<true>, 'required'>) => {\n const { defaultValue } = props || {}\n\n const schema = z.boolean()\n\n return schema.default(defaultValue ?? false)\n}\n\ntype BooleanRequiredSchema = ReturnType<typeof getBooleanRequired>\n\nconst getBooleanOptional = (props?: Omit<BooleanValidationOptions<false>, 'required'>) => {\n return getBooleanRequired(props).optional()\n}\n\ntype BooleanOptionalSchema = ReturnType<typeof getBooleanOptional>\n\nexport function getBooleanSchema(props?: BooleanValidationOptions<true>): BooleanRequiredSchema\nexport function getBooleanSchema(props?: BooleanValidationOptions<false>): BooleanOptionalSchema\nexport function getBooleanSchema<Required extends boolean>(\n props?: BooleanValidationOptions<Required>\n): BooleanRequiredSchema | BooleanOptionalSchema {\n const { required = true, ...rest } = props || {}\n\n return required ? getBooleanRequired(rest) : getBooleanOptional(rest)\n}\n","import { type Primitive } from 'zod'\nimport { formatDateToLocaleString } from '$/shared/ui'\nimport { TypeGuards } from '$/shared/utils'\n\nexport const baseDefaultMessages = {\n NON_EMPTY: () => 'Поле не может быть пустым',\n MIN_LENGTH: (min: number) => `Поле должно содержать минимум символов: ${min}`,\n MAX_LENGTH: (max: number) => `Поле должно содержать максимум символов: ${max}`,\n FIX_LENGTH: (length: number) => `Поле должно быть фиксированной длины символов: ${length}`,\n MIN_VALUE: (min: number) => `Значение не может быть меньше чем ${min}`,\n MAX_VALUE: (max: number) => `Значение не может быть больше чем ${max}`,\n PHONE_NON_EMPTY: () => 'Номер телефона должен состоять из 11 цифр',\n PHONE_INVALID_OPERATOR: () => 'Код города/оператора должен начинаться с цифры 3, 4, 5, 6 или 9',\n EMAIL_INVALID: () => 'Email введен некорректно. Пример: example@domain.ru',\n EMAIL_NON_EMPTY: () => 'Введите адрес электронной почты',\n SELECT_NON_EMPTY: () => 'Выберите один из вариантов',\n SELECT_MULTIPLE_MIN_LENGTH: (length: number) => `Выберите не менее ${length} вариантов`,\n SELECT_MULTIPLE_MAX_LENGTH: (length: number) => `Выберите не более ${length} вариантов`,\n SELECT_FIX_LENGTH: (length: number) => `Поле должно быть фиксированного количества вариантов: ${length}`,\n DATE_INVALID_FORMAT: () => 'Дата указана некорректно',\n DATE_NON_EMPTY: () => 'Укажите дату',\n VALUE_OUT_OF_RANGE: <T extends Primitive>(range: T[]) => `Выберите один из вариантов ${range.join(', ')}`,\n DATE_MIN: (min: Date | string) => {\n const date = TypeGuards.isString(min) ? new Date(min) : min\n\n return `Выбранная дата должна быть не раньше ${formatDateToLocaleString(date)}`\n },\n DATE_MAX: (max: Date | string) => {\n const date = TypeGuards.isString(max) ? new Date(max) : max\n\n return `Выбранная дата должна быть не позже ${formatDateToLocaleString(date)}`\n },\n INVALID_REGEX_STRING: () => 'Поле не соответствует требованиям',\n INVALID_URL: () => 'Ссылка введена некорректно. Пример: https://example.com, example.com'\n}\n","import { isValid, parse } from 'date-fns'\nimport z from 'zod'\nimport { baseDefaultMessages } from './base.constants'\nimport { DATE_VISIBLE_PATTERN } from '$/shared/ui'\nimport { TypeGuards } from '$/shared/utils'\n\nexport type DateValidationOptions<Required extends boolean> = {\n /**\n * валидация строки с учетом ISO формата\n * @default true\n */\n iso?: boolean\n /**\n * шаблон для валидации строки (будет проигнорирован, если `iso = true`)\n * @default 'dd.MM.yyyy'\n */\n pattern?: string\n /**\n * минимальная дата\n * `Date | ISO string`\n */\n min?: Date | string\n /**\n * максимальная дата\n * `Date | ISO string`\n */\n max?: Date | string\n /**\n * указывает что поле обязательное\n */\n required?: Required\n /**\n * значение по умолчанию\n * @default undefined\n */\n defaultValue?: string\n message?: {\n min?: string\n max?: string\n invalidDate?: string\n }\n}\n\n/**\n * Схема валидации обязательного поля даты\n */\nconst getDateRequired = (props?: Omit<DateValidationOptions<boolean>, 'required'>) => {\n const { iso = true, pattern = DATE_VISIBLE_PATTERN, min, max, defaultValue, message } = props || {}\n\n return z\n .string()\n .min(8, message?.min || baseDefaultMessages.DATE_NON_EMPTY())\n .superRefine((value, context) => {\n const validSymbolsLength = pattern.replace(/\\W/g, '').length\n const cleanedValue = value.replace(/[._-]/g, '')\n\n if (cleanedValue.length < validSymbolsLength) {\n context.addIssue({\n code: z.ZodIssueCode.too_small,\n minimum: validSymbolsLength,\n type: 'date',\n inclusive: true,\n message: message?.min || baseDefaultMessages.DATE_NON_EMPTY()\n })\n }\n\n if (iso) {\n let date: Date | null = null\n\n try {\n date = new Date(value)\n } catch {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.invalidDate || baseDefaultMessages.DATE_INVALID_FORMAT()\n })\n }\n\n if (min) {\n if (date!.getTime() < (TypeGuards.isString(min) ? new Date(min).getTime() : min.getTime())) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.min || baseDefaultMessages.DATE_MIN(min)\n })\n }\n }\n\n if (max) {\n if (date!.getTime() > (TypeGuards.isString(max) ? new Date(max).getTime() : max.getTime())) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.max || baseDefaultMessages.DATE_MAX(max)\n })\n }\n }\n } else {\n const date = parse(value, pattern, new Date())\n\n if (!isValid(date)) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.invalidDate || baseDefaultMessages.DATE_INVALID_FORMAT()\n })\n }\n\n if (min) {\n if (date.getTime() < (TypeGuards.isString(min) ? new Date(min).getTime() : min.getTime())) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.min || baseDefaultMessages.DATE_MIN(min)\n })\n }\n }\n\n if (max) {\n if (date.getTime() > (TypeGuards.isString(max) ? new Date(max).getTime() : max.getTime())) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.max || baseDefaultMessages.DATE_MAX(max)\n })\n }\n }\n }\n })\n .default(defaultValue ?? '')\n}\ntype DateRequiredSchema = ReturnType<typeof getDateRequired>\n\n/**\n * Схема валидации опционального поля даты\n */\nconst getDateOptional = (props?: Omit<DateValidationOptions<boolean>, 'required'>) => {\n const { iso = true, pattern = DATE_VISIBLE_PATTERN, min, max, message } = props || {}\n\n return z\n .string()\n .transform((value) => (!value ? undefined : value))\n .superRefine((value, context) => {\n if (TypeGuards.isString(value) && Boolean(value.length)) {\n const validSymbolsLength = pattern.replace(/\\W/g, '').length\n const cleanedValue = value.replace(/[._-]/g, '')\n\n if (cleanedValue.length < validSymbolsLength) {\n context.addIssue({\n code: z.ZodIssueCode.too_small,\n minimum: validSymbolsLength,\n type: 'date',\n inclusive: true,\n message: message?.min || baseDefaultMessages.DATE_NON_EMPTY()\n })\n }\n\n if (iso) {\n let date: Date | null = null\n\n try {\n date = new Date(value)\n } catch {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.invalidDate || baseDefaultMessages.DATE_INVALID_FORMAT()\n })\n }\n\n if (min) {\n if (date!.getTime() < (TypeGuards.isString(min) ? new Date(min).getTime() : min.getTime())) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.min || baseDefaultMessages.DATE_MIN(min)\n })\n }\n }\n\n if (max) {\n if (date!.getTime() > (TypeGuards.isString(max) ? new Date(max).getTime() : max.getTime())) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.max || baseDefaultMessages.DATE_MAX(max)\n })\n }\n }\n } else {\n const date = parse(value, pattern, new Date())\n\n if (!isValid(date)) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.invalidDate || baseDefaultMessages.DATE_INVALID_FORMAT()\n })\n }\n\n if (min) {\n if (date.getTime() < (TypeGuards.isString(min) ? new Date(min).getTime() : min.getTime())) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.min || baseDefaultMessages.DATE_MIN(min)\n })\n }\n }\n\n if (max) {\n if (date.getTime() > (TypeGuards.isString(max) ? new Date(max).getTime() : max.getTime())) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_date,\n message: message?.max || baseDefaultMessages.DATE_MAX(max)\n })\n }\n }\n }\n }\n })\n .optional()\n}\ntype DateOptionalSchema = ReturnType<typeof getDateOptional>\n\n/**\n * Схема валидации поля даты\n * @param {DateValidationOptions} props настройки схемы\n * @typeParam `required` - `boolean`\n * @typeParam `iso` - `boolean | undefined`\n * @typeParam `pattern` - `string | undefined`\n * @typeParam `message` - `{ [min | invalidOperator]: string }`\n * @returns схема валидации поля в соответствии с настройками\n *\n * @example with required value\n * z.object({\n * field: zodValidators.base.getDateSchema()\n * })\n * // will returns z.string()\n *\n * @example with required value\n * z.object({\n * field: zodValidators.base.getDateSchema({ required: false })\n * })\n * // will returns z.string().optional()\n */\nexport function getDateSchema(props?: DateValidationOptions<true>): DateRequiredSchema\nexport function getDateSchema(props?: DateValidationOptions<false>): DateOptionalSchema\nexport function getDateSchema<Required extends boolean>(\n props?: DateValidationOptions<Required>\n): DateRequiredSchema | DateOptionalSchema {\n const { required = true } = props || {}\n\n return required ? getDateRequired(props) : getDateOptional(props)\n}\n","import z from 'zod'\nimport { baseDefaultMessages } from './base.constants'\nimport { TypeGuards } from '$/shared/utils'\n\nexport type EmailValidationOptions<Required extends boolean> = {\n /**\n * указывает что поле обязательное\n * @default true\n */\n required?: Required\n /**\n * Регулярное выражение для проверки email на валидность\n */\n regexp?: RegExp | string\n /**\n * значение по умолчанию\n * @default undefined\n */\n defaultValue?: string\n message?: {\n min?: string\n invalid?: string\n }\n}\n\nconst EMAIL_REGEX = /^[\\w-.]+@([\\w-]+\\.)+[\\w-]{2,4}$/g\n\n/**\n * Схема валидации обязательного поля типа email\n */\nconst getEmailRequired = (props?: Omit<EmailValidationOptions<true>, 'required'>) => {\n const { message, defaultValue, regexp = EMAIL_REGEX } = props || {}\n\n const regex = TypeGuards.isString(regexp) ? new RegExp(regexp) : regexp\n\n return z\n .string()\n .min(1, message?.min || baseDefaultMessages.EMAIL_NON_EMPTY())\n .regex(regex, message?.invalid || baseDefaultMessages.EMAIL_INVALID())\n .default(defaultValue ?? '')\n}\ntype EmailRequiredSchema = ReturnType<typeof getEmailRequired>\n\n/**\n * Схема валидации опционального поля типа email\n */\nconst getEmailOptional = (props?: Omit<EmailValidationOptions<false>, 'required'>) => {\n const { message, regexp = EMAIL_REGEX } = props || {}\n\n const regex = TypeGuards.isString(regexp) ? new RegExp(regexp) : regexp\n\n return z\n .string()\n .refine(\n (value) => {\n if (TypeGuards.isStringEmpty(value)) return true\n return regex.test(value)\n },\n {\n message: message?.invalid || baseDefaultMessages.EMAIL_INVALID()\n }\n )\n .optional()\n .transform((value) => (value?.length === 0 ? undefined : value))\n}\ntype EmailOptionalSchema = ReturnType<typeof getEmailOptional>\n\n/**\n * Схема валидации поля типа email\n * @param {EmailValidationOptions} props настройки схемы\n * @typeParam `required` - `boolean`\n * @typeParam `regexp` - `RegExp`\n * @typeParam `message` - `{ [min | invalid]: string }`\n * @returns схема валидации поля в соответствии с настройками\n *\n * @example with required value\n * z.object({\n * field: zodValidators.base.getEmailSchema()\n * })\n * // will returns z.string().min(1).email()\n *\n * @example with optional value\n * z.object({\n * field: zodValidators.base.getEmailSchema({ required: false })\n * })\n * // will returns z.string().min(1).email().optional()\n */\nexport function getEmailSchema(props?: EmailValidationOptions<true>): EmailRequiredSchema\nexport function getEmailSchema(props?: EmailValidationOptions<false>): EmailOptionalSchema\nexport function getEmailSchema<Required extends boolean>(\n props?: EmailValidationOptions<Required>\n): EmailRequiredSchema | EmailOptionalSchema {\n const { required = true } = props || {}\n\n return required ? getEmailRequired(props) : getEmailOptional(props)\n}\n","import z from 'zod'\nimport { baseDefaultMessages } from './base.constants'\n\nexport type NumberValidationOptions<Required extends boolean> = {\n /**\n * минимальное значение\n * @default 0\n */\n min?: number\n /**\n * максимальное значение\n * @default undefined\n */\n max?: number\n /**\n * указывает что поле обязательное\n * @default true\n */\n required?: Required\n /**\n * значение по умолчанию\n * @default undefined\n */\n defaultValue?: number\n message?: Partial<Record<keyof Omit<NumberValidationOptions<Required>, 'message'>, string>>\n}\n\n/**\n * Схема валидации обязательного поля числового типа\n */\nconst getNumberRequired = (props?: Omit<NumberValidationOptions<true>, 'required'>) => {\n const { min, max, message, defaultValue } = props || {}\n\n let schema = z.coerce.number()\n\n if (min) {\n schema = schema.min(min, message?.min || baseDefaultMessages.MIN_VALUE(min))\n }\n\n if (max) {\n schema = schema.max(max, message?.min || baseDefaultMessages.MAX_VALUE(max))\n }\n\n return schema.default(defaultValue ?? 0)\n}\ntype NumberRequiredSchema = ReturnType<typeof getNumberRequired>\n\n/**\n * Схема валидации опционального поля числового типа\n */\nconst getNumberOptional = (props?: Omit<NumberValidationOptions<false>, 'required'>) => {\n return getNumberRequired(props)\n .optional()\n .transform((value) => (!value ? undefined : value))\n}\ntype NumberOptionalSchema = ReturnType<typeof getNumberOptional>\n\n/**\n * Схема валидации опционального поля числового типа\n * @param {NumberValidationOptions} props настройки схемы\n @typeParam `required` - `boolean`\n * @typeParam `min` - `number | undefined` `default: 1`\n * @typeParam `max` - `number | undefined` `default: undefined`\n * @typeParam `message` - `{ [min | max]: string }`\n * @returns схема валидации поля в соответствии с настройками\n *\n * @example with required min, max value\n * z.object({\n * field: zodValidators.base.getNumberSchema({ min: 10, max: 20 })\n * })\n * // will returns z.coerce.number().min(10).max(20)\n *\n * @example with optional min, max value\n * z.object({\n * field: zodValidators.base.getNumberSchema({ min: 10, max: 20, required: false })\n * })\n * // will returns z.coerce.number().min(10).max(20).optional()\n */\nexport function getNumberSchema(props?: NumberValidationOptions<true>): NumberRequiredSchema\nexport function getNumberSchema(props?: NumberValidationOptions<false>): NumberOptionalSchema\nexport function getNumberSchema<Required extends boolean>(\n props?: NumberValidationOptions<Required>\n): NumberRequiredSchema | NumberOptionalSchema {\n const { required = true } = props || {}\n\n return required ? getNumberRequired(props) : getNumberOptional(props)\n}\n","import z from 'zod'\nimport { baseDefaultMessages } from './base.constants'\nimport { TypeGuards } from '$/shared/utils'\n\nexport type PhoneValidationOptions<Required extends boolean> = {\n /**\n * исключает маску в возвращаемом значении\n * @default true\n */\n ignoreMask?: boolean\n /**\n * игнорирует символы для проверки поля исключая данные символы\n * @default /[()+_ -]/g\n */\n maskSymbols?: RegExp | string\n /**\n * указывает что поле обязательное\n */\n required?: Required\n /**\n * значение по умолчанию\n * @default undefined\n */\n defaultValue?: string\n message?: {\n min?: string\n invalidOperator?: string\n }\n /**\n * указываем валидные коды оператор\n * @default ['3', '4', '5', '6', '9']\n * @param string[]\n */\n validOperatorCodes?: string[]\n}\n\n/**\n * Схема валидации обязательного поля номера телефона\n */\nconst getPhoneRequired = (props?: Omit<PhoneValidationOptions<true>, 'required'>) => {\n const {\n ignoreMask = true,\n maskSymbols = /[()+_ -]/g,\n message,\n defaultValue,\n validOperatorCodes = ['3', '4', '5', '6', '9']\n } = props || {}\n\n const mask = TypeGuards.isString(maskSymbols) ? new RegExp(maskSymbols) : maskSymbols\n\n let schema = z.string().superRefine((value, context) => {\n const cleanValue = value.replace(mask, '')\n\n const operatorCode = cleanValue.charAt(1)\n\n if (!validOperatorCodes.includes(operatorCode)) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_string,\n validation: 'regex',\n message: message?.invalidOperator || baseDefaultMessages.PHONE_INVALID_OPERATOR()\n })\n }\n\n if (cleanValue.length < 11) {\n context.addIssue({\n code: z.ZodIssueCode.too_small,\n minimum: 11,\n inclusive: true,\n type: 'string',\n message: message?.min || baseDefaultMessages.PHONE_NON_EMPTY()\n })\n }\n })\n\n if (ignoreMask) {\n schema = schema.transform((value) => value.replace(mask, '')) as unknown as typeof schema\n }\n\n return schema.default(defaultValue ?? '')\n}\ntype PhoneRequiredSchema = ReturnType<typeof getPhoneRequired>\n\n/**\n * Схема валидации опционального поля номера телефона\n */\nconst getPhoneOptional = (props?: Omit<PhoneValidationOptions<false>, 'required'>) => {\n const { ignoreMask = true, maskSymbols = /[()+_ -]/g, message, validOperatorCodes = ['3', '4', '5', '6', '9'] } = props || {}\n\n const mask = TypeGuards.isString(maskSymbols) ? new RegExp(maskSymbols) : maskSymbols\n\n let schema = z.string().superRefine((value, context) => {\n const cleanValue = value.replace(mask, '')\n\n const operatorCode = cleanValue.charAt(1)\n\n if (!validOperatorCodes.includes(operatorCode)) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_string,\n validation: 'regex',\n message: message?.invalidOperator || baseDefaultMessages.PHONE_INVALID_OPERATOR()\n })\n }\n\n if (cleanValue.length < 11) {\n context.addIssue({\n code: z.ZodIssueCode.too_small,\n minimum: 11,\n inclusive: true,\n type: 'string',\n message: message?.min || baseDefaultMessages.PHONE_NON_EMPTY()\n })\n }\n })\n\n if (ignoreMask) {\n schema = schema.transform((value) => value.replace(mask, '')) as unknown as typeof schema\n }\n\n return schema.transform((value) => (!value ? undefined : value))\n}\ntype PhoneOptionalSchema = ReturnType<typeof getPhoneOptional>\n\n/**\n * Схема валидации опционального поля номера телефона\n * @param {PhoneValidationOptions} props настройки схемы\n @typeParam `required` - `boolean`\n * @typeParam `ignoreSeparators` - `boolean | undefined` `default: false`\n * @typeParam `maskSymbols` - `RegExp | undefined` `default: /[()+_ -]/g`\n * @typeParam `message` - `{ [min | invalidOperator]: string }`\n * @returns схема валидации поля в соответствии с настройками\n *\n * @example with required value\n * z.object({\n * field: zodValidators.base.getPhoneSchema()\n * })\n * // will returns z.string()\n *\n * @example with optional value\n * z.object({\n * field: zodValidators.base.getPhoneSchema({ required: false })\n * })\n * // will returns z.string().optional()\n */\nexport function getPhoneSchema(props?: PhoneValidationOptions<true>): PhoneRequiredSchema\nexport function getPhoneSchema(props?: PhoneValidationOptions<false>): PhoneOptionalSchema\nexport function getPhoneSchema<Required extends boolean>(\n props?: PhoneValidationOptions<Required>\n): PhoneRequiredSchema | PhoneOptionalSchema {\n const { required = true } = props || {}\n\n return required ? getPhoneRequired(props) : getPhoneOptional(props)\n}\n","import z from 'zod'\nimport { baseDefaultMessages } from '$/shared/validation'\n\nexport type RegexValidatorsOptions<Required extends boolean> = {\n /**\n * указывает что поле обязательное\n * @default true\n */\n required?: Required\n /**\n * значение по умолчанию\n * @default undefined\n */\n defaultValue?: string\n message?: string\n}\n\nconst getRegexRequired = (regex: RegExp, props?: Omit<RegexValidatorsOptions<true>, 'required'>) => {\n const { message, defaultValue = '' } = props || {}\n\n return z\n .string()\n .nonempty(baseDefaultMessages.NON_EMPTY())\n .regex(regex, message || baseDefaultMessages.INVALID_REGEX_STRING())\n .default(defaultValue)\n}\ntype RegexRequiredSchema = ReturnType<typeof getRegexRequired>\n\nconst getRegexOptional = (regex: RegExp, props?: Omit<RegexValidatorsOptions<false>, 'required'>) => {\n return getRegexRequired(regex, props)\n .optional()\n .transform((value) => (!value?.length ? undefined : value))\n}\ntype RegexOptionalSchema = ReturnType<typeof getRegexOptional>\n\nexport function getRegexSchema(regex: RegExp, props?: RegexValidatorsOptions<true>): RegexRequiredSchema\nexport function getRegexSchema(regex: RegExp, props?: RegexValidatorsOptions<false>): RegexOptionalSchema\nexport function getRegexSchema<Required extends boolean>(\n regex: RegExp,\n props?: RegexValidatorsOptions<Required>\n): RegexRequiredSchema | RegexOptionalSchema {\n const { required = true, ...restProps } = props || {}\n\n return required ? getRegexRequired(regex, restProps) : getRegexOptional(regex, restProps)\n}\n","import z from 'zod'\nimport { baseDefaultMessages } from './base.constants'\n\nexport type SelectSingleValidationOptions<Required extends boolean, Multi extends boolean = false> = {\n /**\n * включает валидацию мульти селекта\n * @default false\n */\n multiple?: Multi\n /**\n * указывает что поле обязательное\n * @default true\n */\n required?: Required\n /**\n * значение по умолчанию\n * @default undefined\n */\n defaultValue?: string\n message?: {\n single?: string\n multiple?: string\n }\n}\n\ntype SelectMultipleValidationOptions<Required extends boolean, Multi extends boolean = true> = SelectSingleValidationOptions<\n Required,\n Multi\n> & {\n /**\n * минимальное количество элементов\n * @default 0\n */\n minLength?: number\n /**\n * максимальное количество элементов\n * @default undefined\n */\n maxLength?: number\n /**\n * фиксированное количество элементов\n * @default undefined\n */\n length?: number\n message?: SelectSingleValidationOptions<Required, Multi> & {\n minLength?: string\n maxLength?: string\n length?: string\n }\n}\n\ntype SelectValidationOptions<Required extends boolean, Multi extends boolean> = Multi extends true\n ? SelectMultipleValidationOptions<Required, Multi>\n : SelectSingleValidationOptions<Required, Multi>\n\n/**\n * Схема валидации обязательного поля типа select\n */\nconst getSelectRequired = <Required extends boolean, Multi extends boolean>(props?: SelectValidationOptions<Required, Multi>) => {\n const { message, defaultValue } = props || {}\n\n const selectSchema = z\n .string()\n .min(1, message?.single || baseDefaultMessages.SELECT_NON_EMPTY())\n .nullable()\n .refine((value) => Boolean(value), message?.single || baseDefaultMessages.SELECT_NON_EMPTY())\n .default(defaultValue ?? null)\n\n if (props?.multiple) {\n let arraySchema = z\n .array(selectSchema)\n .min(props?.minLength || 0, message?.multiple || baseDefaultMessages.SELECT_MULTIPLE_MIN_LENGTH(props?.minLength || 0))\n\n if (props?.length) {\n return arraySchema\n .length(props.length, props.message?.length || baseDefaultMessages.SELECT_FIX_LENGTH(props.length))\n .default([])\n } else if (props?.maxLength) {\n arraySchema = arraySchema.max(\n props.maxLength,\n props.message?.maxLength || baseDefaultMessages.SELECT_MULTIPLE_MAX_LENGTH(props.maxLength)\n )\n }\n\n return arraySchema.default([])\n }\n\n return selectSchema\n}\ntype SelectRequiredSchema = ReturnType<typeof getSelectRequired>\n\n/**\n * Схема валидации опционального поля типа select\n */\nfunction getSelectOptional<Required extends boolean, Multi extends boolean>(\n props?: Omit<SelectValidationOptions<Required, Multi>, 'message'>\n) {\n const selectSchema = z.string().nullable().optional()\n\n if (props?.multiple) {\n return z.array(selectSchema).optional()\n }\n\n return selectSchema\n}\ntype SelectOptionalSchema = ReturnType<typeof getSelectOptional>\n\n/**\n * Схема валидации опционального поля типа select\n * @param {SelectValidationOptions} props настройки схемы\n @typeParam `required` - `boolean`\n * @typeParam `multiple` - `boolean`\n * @typeParam `minLength` - `number | undefined`\n * @returns схема валидации поля в соответствии с настройками\n *\n * @example with required single value\n * z.object({\n * field: zodValidators.base.getSelectSchema({ multiple: false })\n * })\n * // will returns z.string().nullable()\n *\n * @example with required multiple value\n * z.object({\n * field: zodValidators.base.getSelectSchema({ multiple: true })\n * })\n * // will returns z.array(z.string().nullable())\n *\n * @example with optional single value\n * z.object({\n * field: zodValidators.base.getSelectSchema({ required: false, multiple: false })\n * })\n * // will returns z.string().nullable().optional()\n *\n * @example with optional multiple value\n * z.object({\n * field: zodValidators.base.getSelectSchema({ required: false, multiple: true })\n * })\n * // will returns z.array(z.string().nullable().optional()).optional()\n */\nexport function getSelectSchema<Multi extends boolean>(props?: SelectValidationOptions<true, Multi>): SelectRequiredSchema\nexport function getSelectSchema<Multi extends boolean>(props?: SelectValidationOptions<false, Multi>): SelectOptionalSchema\nexport function getSelectSchema<Multi extends boolean, Required extends boolean>(\n props?: SelectValidationOptions<Required, Multi>\n): SelectRequiredSchema | SelectOptionalSchema {\n const { required = true } = props || {}\n\n return required ? getSelectRequired(props) : getSelectOptional(props)\n}\n","import z from 'zod'\nimport { baseDefaultMessages } from './base.constants'\n\nexport type StringValidationOptions<Required extends boolean> = {\n /**\n * минимальное количество символов\n * @default 1\n */\n min?: number\n /**\n * максимальное количество символов\n * @default undefined\n */\n max?: number\n /**\n * фиксированная длина символов\n */\n length?: number\n /**\n * указывает что поле обязательное\n * @default true\n */\n required?: Required\n /**\n * значение по умолчанию\n * @default undefined\n */\n defaultValue?: string\n message?: Partial<Record<keyof Omit<StringValidationOptions<Required>, 'message'> | 'root', string>>\n}\n\n/**\n * Схема валидации обязательного поля строкового типа\n */\nconst getStringRequired = (props?: Omit<StringValidationOptions<true>, 'required'>) => {\n const { min, max, length, defaultValue, message } = props || {}\n\n let schema = z.string({ message: message?.root })\n\n if (min) {\n schema = schema.min(min, { message: message?.min || baseDefaultMessages.MIN_LENGTH(min) })\n }\n\n if (max) {\n schema = schema.max(max, { message: message?.max || baseDefaultMessages.MAX_LENGTH(max) })\n }\n\n if (length) {\n schema = schema.length(length, { message: message?.length || baseDefaultMessages.FIX_LENGTH(length) })\n }\n\n return schema\n .refine((value) => Boolean(value.length), { message: message?.min || baseDefaultMessages.NON_EMPTY() })\n .default(defaultValue ?? '')\n}\ntype StringRequiredSchema = ReturnType<typeof getStringRequired>\n\n/**\n * Схема валидации обязательного поля строкового типа\n */\nconst getStringOptional = (props?: Omit<StringValidationOptions<false>, 'required'>) => {\n const { min, max, length, message } = props || {}\n\n let schema = z.string({ message: message?.root })\n\n if (min) {\n schema = schema.min(min, { message: message?.min || baseDefaultMessages.MIN_LENGTH(min) })\n }\n\n if (max) {\n schema = schema.max(max, { message: message?.max || baseDefaultMessages.MAX_LENGTH(max) })\n }\n\n if (length) {\n schema = schema.length(length, { message: message?.length || baseDefaultMessages.FIX_LENGTH(length) })\n }\n\n return schema.optional().transform((value) => (!value?.length ? undefined : value))\n}\ntype StringOptionalSchema = ReturnType<typeof getStringOptional>\n\n/**\n * Схема валидации обязательного поля строкового типа\n * @param {StringValidationOptions} props настройки схемы\n * @typeParam `min` - `number | undefined` `default: 1`\n * @typeParam `max` - `number | undefined` `default: undefined`\n * @typeParam `message` - `{ [min | max]: string }`\n * @returns схема валидации поля в соответствии с настройками\n *\n * @example with required min value\n * z.object({\n * field: zodValidators.base.getStringSchema({ min: 10 })\n * })\n * // will returns z.string().min(10)\n *\n * @example with required min, max value\n * z.object({\n * field: zodValidators.base.getStringSchema({ min: 10, max: 20 })\n * })\n * // will returns z.string().min(10).max(20)\n *\n * @example with optional min value\n * z.object({\n * field: zodValidators.base.getStringSchema({ required: false, min: 10 })\n * })\n * // will returns z.string().min(10).optional()\n *\n * @example with optional min, max value\n * z.object({\n * field: zodValidators.base.getStringSchema({ required: false, min: 10, max: 20 })\n * })\n * // will returns z.string().min(10).max(20).optional()\n */\nexport function getStringSchema(props?: StringValidationOptions<true>): StringRequiredSchema\nexport function getStringSchema(props?: StringValidationOptions<false>): StringOptionalSchema\nexport function getStringSchema<Required extends boolean>(\n props?: StringValidationOptions<Required>\n): StringRequiredSchema | StringOptionalSchema {\n const { required = true, ...restProps } = props || {}\n\n return required ? getStringRequired(restProps) : getStringOptional(restProps)\n}\n","import z from 'zod'\nimport { baseDefaultMessages } from './base.constants'\n\nexport type UnionValidationOptions<Required extends boolean, T extends z.Primitive> = {\n /**\n * сообщение об ошибке\n */\n message?: ((values: readonly T[]) => string) | string\n errorMap?: z.ZodErrorMap\n /**\n * сообщение об ошибке при не правильном типе значение\n */\n invalid_type_error?: string\n /**\n * сообщение об ошибке при отсутствии значения\n */\n required_error?: string\n /**\n * описание схемы\n */\n description?: string\n /**\n * указывает что поле обязательное\n * @default true\n */\n required?: Required\n}\n\n/**\n * Схема валидации обязательного поля из выборки\n */\nconst getUnionRequired = <T extends z.Primitive>(\n values: [T, T, ...T[]],\n props?: Omit<UnionValidationOptions<true, T>, 'required'>\n) => {\n const { message, ...restProps } = props || {}\n\n const [first, second, ...other] = values.map((value) => z.literal(value))\n\n const errorMessage = (() => {\n if (message) {\n return typeof message === 'function' ? message(values) : message\n }\n\n return baseDefaultMessages.VALUE_OUT_OF_RANGE(values)\n })()\n\n return z\n .union([first, second, ...other], {\n message: errorMessage,\n ...restProps\n })\n .nullable()\n .refine(Boolean, baseDefaultMessages.NON_EMPTY())\n .default(null)\n}\ntype UnionRequiredSchema<T extends z.Primitive> = ReturnType<typeof getUnionRequired<T>>\n\n/**\n * Схема валидации обязательного поля из выборки\n */\nconst getUnionOptional = <T extends z.Primitive>(values: [T, T, ...T[]], props?: UnionValidationOptions<false, T>) => {\n return getUnionRequired(values, props).optional()\n}\ntype UnionOptionalSchema<T extends z.Primitive> = ReturnType<typeof getUnionOptional<T>>\n\n/**\n * Схема валидации обязательного поля из выборки\n * @param {z.Primitive} values литералы\n * @param {z.RawCreateParams & { message: (values: z.Primitive[]) => string }} props настройки схемы\n * @returns схема валидации поля в соответствии с настройками\n *\n * @example with required union value\n * z.object({\n * field: zodValidators.base.getUnionSchema(['A', 'B'] as const)\n * }) ^ it need to infer literal type\n * // will returns z.union([z.literal('A'), z.literal('B')])\n *\n * @example with optional union value\n * z.object({\n * field: zodValidators.base.getUnionSchema(['A', 'B'] as const, { required: false })\n * }) ^ it need to infer literal type\n * // will returns z.union([z.literal('A'), z.literal('B')]).optional()\n */\nexport function getUnionSchema<T extends z.Primitive>(\n values: [T, T, ...T[]],\n props?: UnionValidationOptions<true, T>\n): UnionRequiredSchema<T>\nexport function getUnionSchema<T extends z.Primitive>(\n values: [T, T, ...T[]],\n props?: UnionValidationOptions<false, T>\n): UnionOptionalSchema<T>\nexport function getUnionSchema<T extends z.Primitive, Required extends boolean>(\n values: [T, T, ...T[]],\n props?: UnionValidationOptions<Required, T>\n): UnionRequiredSchema<T> | UnionOptionalSchema<T> {\n const { required, ...restProps } = props || {}\n\n return required ? getUnionRequired(values, restProps) : getUnionOptional(values, restProps)\n}\n","import { string } from 'zod'\nimport { baseDefaultMessages } from './base.constants'\nimport { TypeGuards } from '$/shared/utils'\n\nexport type UrlValidationOptions<Required extends boolean> = {\n /**\n * указывает что поле обязательное\n * @default true\n */\n required?: Required\n /**\n * Регулярное выражение для проверки url на валидность\n */\n regexp?: RegExp | string\n /**\n * значение по умолчанию\n */\n defaultValue?: string\n message?: {\n min?: string\n invalid?: string\n }\n}\n\nconst URL_REGEX =\n /^(http:\\/\\/www\\.|https:\\/\\/www\\.|http:\\/\\/|https:\\/\\/)?[a-z0-9]+([-.]{1}[a-z0-9]+)*\\.[a-z]{2,5}(:[0-9]{1,5})?(\\/.*)?$/\n\n/**\n * Схема валидации обязательного поля ссылки\n */\nconst getUrlRequired = (props?: Omit<UrlValidationOptions<true>, 'required'>) => {\n const { message, defaultValue, regexp = URL_REGEX } = props || {}\n\n const regex = TypeGuards.isString(regexp) ? new RegExp(regexp) : regexp\n\n return string()\n .min(1, message?.min || baseDefaultMessages.NON_EMPTY())\n .regex(regex, message?.invalid || baseDefaultMessages.INVALID_URL())\n .default(defaultValue ?? '')\n}\ntype UrlRequiredSchema = ReturnType<typeof getUrlRequired>\n\n/**\n * Схема валидации опционального поля ссылки\n */\nconst getUrlOptional = (props?: Omit<UrlValidationOptions<false>, 'required'>) => {\n const { message, regexp = URL_REGEX } = props || {}\n\n const regex = TypeGuards.isString(regexp) ? new RegExp(regexp) : regexp\n\n return string()\n .refine((value) => {\n if (TypeGuards.isStringEmpty(value)) return true\n return regex.test(value)\n }, message?.invalid || baseDefaultMessages.INVALID_URL())\n .optional()\n .transform((value) => (!value?.length ? undefined : value))\n}\ntype UrlOptionalSchema = ReturnType<typeof getUrlOptional>\n\nexport function getUrlSchema(props?: UrlValidationOptions<true>): UrlRequiredSchema\nexport function getUrlSchema(props?: UrlValidationOptions<false>): UrlOptionalSchema\n/**\n * Схема валидации поля ссылки\n * @param {UrlValidationOptions} props настройки схемы\n * @typeParam `required` - `boolean`\n * @typeParam `regexp` - `RegExp`\n * @typeParam `message` - `{ [min | invalid]: string }`\n * @returns схема валидации поля в соответствии с настройками\n */\nexport function getUrlSchema<Required extends boolean>(\n props?: UrlValidationOptions<Required>\n): UrlRequiredSchema | UrlOptionalSchema {\n const { required = true } = props || {}\n\n return required ? getUrlRequired(props) : getUrlOptional(props)\n}\n","import { getBooleanSchema } from './boolean.validators'\nimport { getDateSchema } from './date.validators'\nimport { getEmailSchema } from './email.validators'\nimport { getNumberSchema } from './number.validators'\nimport { getPhoneSchema } from './phone.validators'\nimport { getRegexSchema } from './regex.validators'\nimport { getSelectSchema } from './select.validators'\nimport { getStringSchema } from './string.validators'\nimport { getUnionSchema } from './union.validators'\nimport { getUrlSchema } from './url.validators'\n\nexport const baseValidationSchemas = {\n getStringSchema,\n getEmailSchema,\n getSelectSchema,\n getNumberSchema,\n getPhoneSchema,\n getDateSchema,\n getUnionSchema,\n getUrlSchema,\n getRegexSchema,\n getBooleanSchema\n}\n","import z from 'zod'\n\ntype ZodUtilsGetDefaultsOptions = {\n /**\n * Вставить в массив значение, исходя из внутренней схемы z.array\n */\n fillArrayWithValue?: boolean\n}\n\nexport class ZodUtils {\n /**\n * Функция для получения значения по умолчанию исходя из схемы\n * @param zodSchema схема формы\n * @param options настройки генерации значений по умолчанию\n * @returns объект значений по умолчанию\n *\n * @example\n * const schema = z.object({\n * name: zodValidators.base.getStringSchema(),\n * role: zodValidators.base.getUnionSchema(['UNKNOWN', 'ADMIN', 'MODERATOR', 'USER'] as const),\n * info: z.object({\n * address: zodValidators.base.getStringSchema(),\n * phone: zodValidators.base.getPhoneSchema({ ignoreMask: true }),\n * age: zodValidators.base.getNumberSchema()\n * })\n * })\n *\n * const defaultValues = ZodUtils.getZodDefaults(schema)\n *\n * // default values will be inferred from schema\n * // {\n * // name: '',\n * // role: 'UNKNOWN',\n * // info: {\n * // address: '',\n * // phone: '',\n * // age: 0\n * // }\n * // }\n */\n static getZodDefaults<ZodSchema extends z.AnyZodObject, Schema = z.TypeOf<ZodSchema>>(\n zodSchema: ZodSchema | z.ZodEffects<ZodSchema>,\n options?: ZodUtilsGetDefaultsOptions\n ): Schema {\n const { fillArrayWithValue } = options || {}\n\n const processZodEffects = (schema: z.ZodEffects<any>) => {\n const innerType = schema._def.schema\n\n if (innerType instanceof z.ZodEffects || innerType._def.typeName === 'ZodEffects') {\n return processZodEffects(innerType)\n }\n\n if (innerType instanceof z.ZodObject || innerType._def.typeName === 'ZodObject') {\n return this.getZodDefaults(innerType, options)\n }\n\n return getDefaultValue(innerType)\n }\n\n const getDefaultValue = (schema: z.ZodTypeAny): unknown => {\n if (schema instanceof z.ZodEffects || schema._def.typeName === 'ZodEffects') {\n return processZodEffects(schema as z.ZodEffects<ZodSchema>)\n }\n\n switch (true) {\n case schema._def.typeName === 'ZodDefault' || schema instanceof z.ZodDefault:\n return (schema as z.ZodDefault<ZodSchema>)._def.defaultValue()\n case schema._def.typeName === 'ZodOptional' || schema instanceof z.ZodOptional:\n return undefined\n case schema._def.typeName === 'ZodEffects':\n return processZodEffects(schema as z.ZodEffects<ZodSchema>)\n case schema._def.typeName === 'ZodNullable' || schema instanceof z.ZodNullable:\n return null\n case schema._def.typeName === 'ZodArray' || schema instanceof z.ZodArray:\n return fillArrayWithValue ? [getDefaultValue((schema as z.ZodArray<ZodSchema>).element)] : []\n case schema._def.typeName === 'ZodObject' || schema instanceof z.ZodObject:\n return this.getZodDefaults(schema as z.ZodObject<z.ZodRawShape>, options)\n case schema._def.typeName === 'ZodUnion' || schema instanceof z.ZodUnion:\n return getDefaultValue(schema._def.options[0])\n case schema._def.typeName === 'ZodLiteral' || schema instanceof z.ZodLiteral:\n return schema._def.value\n case schema._def.typeName === 'ZodDiscriminatedUnion' || schema instanceof z.ZodDiscriminatedUnion:\n return getDefaultValue(schema._def.options[0])\n case schema._def.typeName === 'ZodEnum' || schema instanceof z.ZodEnum:\n return schema._def.values[0]\n case schema._def.typeName === 'ZodString' || schema instanceof z.ZodString:\n return ''\n case schema._def.typeName === 'ZodNumber' || schema instanceof z.ZodNumber:\n return 0\n case schema._def.typeName === 'ZodBoolean' || schema instanceof z.ZodBoolean:\n return false\n case !('innerType' in schema._def):\n return undefined\n default:\n return getDefaultValue(schema._def.innerType)\n }\n }\n\n // @ts-expect-error asf\n if (zodSchema instanceof z.ZodEffects || zodSchema._def.typeName === 'ZodEffects') {\n return processZodEffects(zodSchema as unknown as z.ZodEffects<any>)\n }\n\n const defaults = {} as Schema\n\n const schemaEntries = Object.entries(zodSchema.shape) as [keyof Schema, z.ZodAny][]\n\n schemaEntries.map(([key, value]) => {\n defaults[key] = getDefaultValue(value) as Schema[keyof Schema]\n })\n\n return defaults\n }\n\n /**\n * Функция для объединения zod схождений\n * @param {ZodIntersection} zodSchema\n * @returns объединенная схема двух схождений\n *\n * @example\n * let schema = z.object({\n * foo: z.string()\n * })\n * // this will return intersection and we need\n * // to merge its left to right schema's\n * .and(\n * z.object({\n * bar: z.string()\n * })\n * )\n *\n * schema = ZodUtils.zodMergeIntersection(schema)\n *\n * // schema will be\n * z.object({\n * foo: z.string(),\n * bar: z.string()\n * })\n */\n static zodMergeIntersection<ZodLeft extends z.ZodTypeAny, ZodRight extends z.ZodTypeAny>(\n zodSchema: z.ZodIntersection<ZodLeft, ZodRight>\n ): z.ZodObject<z.objectUtil.MergeShapes<z.TypeOf<ZodLeft>, z.TypeOf<ZodRight>>> {\n const { left, right } = zodSchema._def\n\n const leftSchema =\n left instanceof z.ZodDiscriminatedUnion || left._def.typeName === 'ZodDiscriminatedUnion' ? left._def.options[0] : left\n const rightSchema =\n right instanceof z.ZodDiscriminatedUnion || right._def.typeName === 'ZodDiscriminatedUnion' ? right._def.options[0] : right\n\n if (\n (leftSchema._def.typeName === 'ZodObject' || leftSchema instanceof z.ZodObject) &&\n (rightSchema._def.typeName === 'ZodObject' || rightSchema instanceof z.ZodObject)\n ) {\n return leftSchema.merge(rightSchema)\n }\n\n throw new Error(`Cannot merge schema type ${rightSchema._def.typeName} to ${leftSchema._def.typeName}`)\n }\n}\n","export const fioDefaultMessages = {\n NON_EMPTY: () => 'Поле обязательно для заполнения',\n VALUE_NO_WHITESPACE: () => 'Укажите фамилию, имя и отчество через пробел',\n ONLY_CYRILLIC: () => 'Данные должны быть написаны кириллицей',\n NAME_OR_SURNAME_NON_EMPTY: () => 'Укажите имя и фамилию',\n INVALID_NAME: () => 'Неверно введено имя',\n INVALID_SURNAME: () => 'Неверно введена фамилия',\n INVALID_PATRONYMIC: () => 'Неверно введено отчество'\n}\n\nexport const fioRegex = {\n ONLY_CYRILLIC: /[\\u0400-\\u04FF\\u00CB\\u00EB -]/g,\n CHECK_HYPHEN: /^(?:[^-]+(?:-[^-]+){0,4}|[^-]+)$/,\n PATRONYMIC: /^[a-zA-Zа-яА-ЯёЁ]+(?:\\s*-\\s*[a-zA-Zа-яА-ЯёЁ]+){0,4}(?:\\s+[a-zA-Zа-яА-ЯёЁ]+(?:\\s*-\\s*[a-zA-Zа-яА-ЯёЁ]+){0,4})?$/i\n}\n","import z from 'zod'\nimport { fioDefaultMessages, fioRegex } from './dadata.constants'\n\nconst getFioParts = (value: string) => {\n const [surname, name, ...patronymicParts] = value.trim().replace(/\\s+/g, ' ').split(' ')\n const patronymic = patronymicParts.join(' ')\n\n return { surname, name, patronymic }\n}\n\nexport type FioValidationOptions<Required extends boolean> = {\n /**\n * указывает что поле обязательное\n * @default true\n */\n required?: Required\n message?: {\n root?: string\n nameOrSurnameEmpty?: string\n invalidName?: string\n invalidSurname?: string\n invalidPatronymic?: string\n }\n}\n\n/**\n * Схема валидации обязательного поля автозаполнения ФИО\n */\nconst getFioRequired = (props?: Omit<FioValidationOptions<true>, 'required'>) => {\n const { message } = props || {}\n\n const { nameOrSurnameEmpty, invalidSurname, invalidPatronymic, invalidName } = message || {}\n\n return z\n .string()\n .superRefine((value, context) => {\n const { name, surname, patronymic } = getFioParts(value)\n\n if (!fioRegex.ONLY_CYRILLIC.test(value)) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_string,\n validation: 'regex',\n message: fioDefaultMessages.ONLY_CYRILLIC()\n })\n }\n\n if (!name || !surname) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_string,\n validation: 'regex',\n message: nameOrSurnameEmpty || fioDefaultMessages.NAME_OR_SURNAME_NON_EMPTY()\n })\n }\n\n if (!fioRegex.CHECK_HYPHEN.test(name)) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_string,\n validation: 'regex',\n message: invalidName || fioDefaultMessages.INVALID_NAME()\n })\n }\n\n if (!fioRegex.CHECK_HYPHEN.test(surname)) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_string,\n validation: 'regex',\n message: invalidSurname || fioDefaultMessages.INVALID_SURNAME()\n })\n }\n\n if (patronymic) {\n if (!fioRegex.PATRONYMIC.test(patronymic)) {\n context.addIssue({\n code: z.ZodIssueCode.invalid_string,\n validation: 'regex',\n message: invalidPatronymic || fioDefaultMessages.INVALID_PATRONYMIC()\n })\n }\n }\n })\n .transform((value) => value.trimEnd())\n .default('')\n}\ntype FioRequiredSchema = ReturnType<typeof getFioRequired>\n\n/**\n * Схема валидации опционального поля автозаполнения ФИО\n */\nconst getFioOptional = (props?: Omit<FioValidationOptions<false>, 'required'>) => {\n return getFioRequired(props)\n .optional()\n .transform((value) => (!value?.length ? undefined : value))\n}\ntype FioOptionalSchema = ReturnType<typeof getFioOptional>\n\n/**\n * Схема валидации поля автозаполнения ФИО\n * @param {DateValidationOptions} props настройки схемы\n * @typeParam `required` - `boolean`\n * @returns схема валидации поля в соответствии с настройками\n *\n * @example with required value\n * z.object({\n * field: zodValidators.base.getFioSchema()\n * })\n * // will returns z.string()\n *\n * @example with required value\n * z.object({\n * field: zodValidators.base.getFioSchema({ required: false })\n * })\n * // will returns z.string().optional()\n */\nexport function getFioSchema(props?: FioValidationOptions<true>): FioRequiredSchema\nexport function getFioSchema(props?: FioValidationOptions<false>): FioOptionalSchema\nexport function getFioSchema<Required extends boolean>(\n props?: FioValidationOptions<Required>\n): FioRequiredSchema | FioOptionalSchema {\n const { required = true, ...restProps } = props || {}\n\n return required ? getFioRequired(restProps) : getFioOptional(restProps)\n}\n","import { getFioSchema } from './fio.validators'\nexport type * from './fio.validators'\nexport { fioDefaultMessages } from './dadata.constants'\n\nexport const dadataValidationSchemas = {\n getFioSchema\n}\n","export * from './regExp'\nexport * from './messages'\nexport * from './zodValidation'\nexport * from './base'\nexport type * from './dadata'\nexport * from './utils'\nimport { baseValidationSchemas } from './base'\nimport { dadataValidationSchemas } from './dadata'\n\nexport const zodValidators = {\n base: baseValidationSchemas,\n dadata: dadataValidationSchemas\n}\n"],"names":["getBooleanRequired","props","defaultValue","z","getBooleanOptional","getBooleanSchema","required","rest","baseDefaultMessages","min","max","length","range","date","TypeGuards","formatDateToLocaleString","getDateRequired","iso","pattern","DATE_VISIBLE_PATTERN","message","value","context","validSymbolsLength","parse","isValid","getDateOptional","getDateSchema","EMAIL_REGEX","getEmailRequired","regexp","regex","getEmailOptional","getEmailSchema","getNumberRequired","schema","getNumberOptional","getNumberSchema","getPhoneRequired","ignoreMask","maskSymbols","validOperatorCodes","mask","cleanValue","operatorCode","getPhoneOptional","getPhoneSchema","getRegexRequired","getRegexOptional","getRegexSchema","restProps","getSelectRequired","selectSchema","arraySchema","_a","_b","getSelectOptional","getSelectSchema","getStringRequired","getStringOptional","getStringSchema","getUnionRequired","values","first","second","other","errorMessage","getUnionOptional","getUnionSchema","URL_REGEX","getUrlRequired","string","getUrlOptional","getUrlSchema","baseValidationSchemas","ZodUtils","zodSchema","options","fillArrayWithValue","processZodEffects","innerType","getDefaultValue","defaults","key","left","right","leftSchema","rightSchema","fioDefaultMessages","fioRegex","getFioParts","surname","name","patronymicParts","patronymic","getFioRequired","nameOrSurnameEmpty","invalidSurname","invalidPatronymic","invalidName","getFioOptional","getFioSchema","dadataValidationSchemas","zodValidators"],"mappings":"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"}
@@ -1 +0,0 @@
1
- <svg width="0" height="0"><symbol xmlns="http://www.w3.org/2000/svg" id="arrowCircle" fill="none" viewBox="0 0 32 32"><rect width="31" height="31" x=".5" y="31.5" stroke="currentColor" rx="15.5" transform="rotate(-90 .5 31.5)"/><path fill="currentColor" stroke="currentColor" d="M22.707 18.707a1 1 0 0 1-1.414 0L16 13.414l-5.293 5.293a1 1 0 0 1-1.414-1.414l6-6a1 1 0 0 1 1.414 0l6 6a1 1 0 0 1 0 1.414Z"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="arrowDownRight" fill="currentColor" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M3.2 3.6a1 1 0 0 1 1-1h6.286a5 5 0 0 1 5 5v10.386l3.607-3.607a1 1 0 0 1 1.414 1.414l-5.314 5.314a1 1 0 0 1-1.414 0l-5.314-5.314a1 1 0 1 1 1.414-1.414l3.607 3.607V7.6a3 3 0 0 0-3-3H4.2a1 1 0 0 1-1-1Z" clip-rule="evenodd"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="arrowLink" fill="none" viewBox="0 0 24 24"><path fill="currentColor" d="M8 7a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v8a1 1 0 1 1-2 0V9.414l-8.293 8.293a1 1 0 0 1-1.414-1.414L14.586 8H9a1 1 0 0 1-1-1Z"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="arrowRight" fill="none" viewBox="0 0 16 17"><path fill="currentColor" d="M6.195 13.157a.667.667 0 0 1 0-.943l3.529-3.528-3.529-3.529a.667.667 0 1 1 .943-.943l4 4c.26.26.26.683 0 .943l-4 4a.667.667 0 0 1-.943 0Z"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="arrowRotate" fill="none" viewBox="0 0 18 18"><path fill="currentColor" fill-rule="evenodd" d="M3.696 5h1.183a1 1 0 0 1 0 2H1a1 1 0 0 1-1-1V2a1 1 0 0 1 2 0v1.939C3.57 1.57 6.222 0 9.242 0 14.108 0 18 4.059 18 9s-3.892 9-8.758 9C5.34 18 2.06 15.384.918 11.804a1 1 0 0 1 1.906-.608C3.719 14.004 6.269 16 9.242 16 12.946 16 16 12.895 16 9s-3.054-7-6.758-7C6.956 2 4.923 3.178 3.696 5Z" clip-rule="evenodd"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="arrowScroll" fill="none" viewBox="0 0 14 16"><path fill="currentColor" d="M7 0a1 1 0 0 1 .707.293l6 6a1 1 0 0 1-1.414 1.414L8 3.414V15a1 1 0 1 1-2 0V3.414L1.707 7.707A1 1 0 0 1 .293 6.293l6-6A1 1 0 0 1 7 0Z"/></symbol></svg>
@@ -1 +0,0 @@
1
- <svg width="0" height="0"><symbol xmlns="http://www.w3.org/2000/svg" id="logoBlack" fill="none" viewBox="0 0 194 32"><path fill="#292929" d="M38.422 8c2.655 0 4.853 1.188 5.765 2.08l-1.534 1.91c-.747-.68-2.406-1.613-4.23-1.613-3.36 0-5.434 2.376-5.434 5.602 0 3.225 1.99 5.602 5.475 5.602 2.032 0 3.774-1.104 4.562-1.867l1.452 1.994c-.913.976-3.194 2.292-6.014 2.292-4.936 0-7.964-3.395-7.964-7.979C30.46 11.395 33.57 8 38.422 8Zm15.264 0c4.562 0 7.88 3.395 7.88 7.979 0 4.626-3.318 7.979-7.88 7.979-4.563 0-7.88-3.396-7.88-7.98C45.763 11.396 49.081 8 53.685 8Zm0 13.58c3.11 0 5.391-2.376 5.391-5.601 0-3.226-2.28-5.602-5.391-5.602s-5.392 2.376-5.392 5.602c0 3.225 2.28 5.602 5.392 5.602Zm23.557-2.376c0 2.25-1.41 4.414-5.06 4.414h-7.964V8.34h7.508c3.027 0 4.77 1.91 4.77 4.074 0 1.23-.54 2.334-1.867 3.225 1.327.467 2.613 1.486 2.613 3.565ZM66.667 10.76v4.074l4.728-.042c1.7 0 2.571-.976 2.571-2.08 0-1.061-.746-1.952-2.24-1.952h-5.06Zm5.682 10.482c1.742 0 2.405-.976 2.405-2.037 0-1.146-.788-2.08-2.364-2.08h-5.682v4.16h5.64v-.043Zm14.724-5.476 6.636 7.894h-3.276l-5.517-6.663h-2.82v6.663h-2.447V8.38h2.447v6.324h2.82l5.392-6.324h3.277l-6.512 7.385Z"/><path fill="#292929" d="M101.258 8c4.562 0 7.881 3.395 7.881 7.979 0 4.626-3.319 7.979-7.881 7.979s-7.88-3.396-7.88-7.98c0-4.583 3.318-7.978 7.88-7.978Zm0 13.58c3.111 0 5.392-2.376 5.392-5.601 0-3.226-2.281-5.602-5.392-5.602-3.11 0-5.392 2.376-5.392 5.602 0 3.225 2.323 5.602 5.392 5.602Zm24.43-13.24h2.364v15.278h-2.447V12.287l-4.894 6.705h-1.494l-4.894-6.705V23.66h-2.447V8.382h2.364l5.724 7.852 5.724-7.894Zm13.603 6.238c3.276 0 5.06 1.953 5.06 4.5 0 2.546-1.784 4.54-4.894 4.54h-8.129V8.34h11.613v2.419h-9.166v3.862h5.516v-.043Zm.083 6.663c1.7 0 2.488-.976 2.488-2.122 0-1.145-.788-2.122-2.488-2.122h-5.558v4.244h5.558Zm18.664 2.377-1.617-3.82h-7.051l-1.618 3.82h-2.696l6.471-15.278h2.696l6.47 15.278h-2.655Zm-7.756-6.111h5.143l-2.571-6.112-2.572 6.112Zm23.351-9.167h2.447v15.278h-2.447v-6.536h-8.627v6.536h-2.447V8.34h2.447v6.323h8.627V8.34Zm13.231 7.426 6.636 7.894h-3.277l-5.516-6.663h-2.82v6.663h-2.447V8.38h2.447v6.324h2.82l5.392-6.324h3.277l-6.512 7.385ZM.5 16c0 6.622 5.378 12 12 12h.482v-4.535H12.5c-4.094 0-7.465-3.331-7.465-7.465 0-4.094 3.331-7.465 7.465-7.465h.482V4H12.5C5.878 4 .5 9.378.5 16Z"/><path fill="#292929" d="M14.908 4.241v6.261H12.5a5.55 5.55 0 0 0-5.539 5.539 5.55 5.55 0 0 0 5.539 5.538h2.408v6.26A11.974 11.974 0 0 0 24.5 16.082c.04-5.9-4.094-10.716-9.592-11.84Z"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="logoBusiness" fill="none" viewBox="0 0 192 32"><path fill="#FC5055" d="M0 16c0 8.839 7.163 16 16.003 16 .216 0 .426-.006.642-.013v-6.062h-.642c-5.478 0-9.92-4.441-9.92-9.919 0-5.477 4.442-9.919 9.92-9.919h.642V.013A19.527 19.527 0 0 0 16.003 0C7.163 0 0 7.161 0 16Z"/><path fill="#003790" d="M19.2.324v8.318h-3.197A7.36 7.36 0 0 0 8.637 16a7.36 7.36 0 0 0 7.366 7.358H19.2v8.318C26.509 30.196 32 23.74 32 16S26.509 1.805 19.2.324ZM44.912 3c2.308 0 4.19 1.053 4.986 1.84l-1.33 1.683c-.645-.592-2.07-1.417-3.675-1.417-2.898 0-4.71 2.067-4.71 4.894 0 2.834 1.718 4.894 4.742 4.894 1.756 0 3.267-.955 3.932-1.625l1.255 1.742C49.315 15.87 47.346 17 44.906 17 40.64 17 38 14.036 38 10c.013-4.036 2.722-7 6.912-7ZM58.09 3c3.951 0 6.83 2.964 6.83 7s-2.879 7-6.83 7c-3.952 0-6.83-2.964-6.83-7s2.878-7 6.83-7Zm0 11.894c2.678 0 4.654-2.086 4.654-4.894 0-2.814-1.976-4.894-4.654-4.894S53.436 7.192 53.436 10c0 2.814 1.976 4.894 4.654 4.894Zm20.397-2.08c0 1.97-1.216 3.88-4.378 3.88h-6.887V3.306h6.486c2.622 0 4.133 1.684 4.133 3.575 0 1.073-.483 2.048-1.624 2.834 1.166.403 2.27 1.26 2.27 3.1ZM69.35 5.411v3.556l4.095-.02c1.462 0 2.215-.845 2.215-1.84 0-.916-.647-1.702-1.939-1.702H69.35v.006Zm4.892 9.178c1.493 0 2.07-.858 2.07-1.8 0-1.015-.684-1.84-2.032-1.84h-4.93v3.64h4.892ZM86.98 9.792l5.72 6.909h-2.822l-4.78-5.856h-2.452v5.856h-2.12V3.312h2.12v5.531h2.452l4.673-5.531h2.823l-5.614 6.48Z"/><path fill="#003790" d="M99.255 3c3.951 0 6.83 2.964 6.83 7s-2.879 7-6.83 7c-3.952 0-6.83-2.964-6.83-7s2.878-7 6.83-7Zm0 11.894c2.678 0 4.654-2.086 4.654-4.894 0-2.814-1.976-4.894-4.654-4.894S94.6 7.192 94.6 10c0 2.814 1.975 4.894 4.654 4.894Zm21.118-11.589h2.051v13.39h-2.12V6.75l-4.246 5.876h-1.292L110.52 6.75v9.945h-2.127V3.305h2.051l4.968 6.87 4.961-6.87Zm11.78 5.473c2.841 0 4.39 1.723 4.39 3.939s-1.549 3.978-4.246 3.978h-7.012V3.305h10.06v2.106h-7.94v3.367h4.748Zm.056 5.81c1.474 0 2.139-.838 2.139-1.852 0-.994-.665-1.852-2.139-1.852h-4.798v3.705h4.798Zm16.132 2.107-1.405-3.348h-6.109l-1.405 3.348h-2.327l5.614-13.39h2.346l5.613 13.39h-2.327Zm-6.686-5.356h4.447l-2.214-5.336-2.233 5.336Zm20.178-8.034h2.12v13.39h-2.12v-5.74h-7.477v5.74h-2.12V3.305h2.12v5.551h7.477v-5.55Zm11.447 6.487 5.72 6.909h-2.822l-4.78-5.856h-2.452v5.856h-2.12V3.312h2.12v5.531h2.452l4.673-5.531h2.822l-5.613 6.48Z"/><path fill="#FC5055" d="M41.98 24.296c1.65 0 2.552.983 2.552 2.25 0 1.266-.902 2.27-2.462 2.27H38v-7.64h5.838v1.203h-4.604v1.924h2.746v-.007Zm.035 3.325c.853 0 1.241-.481 1.241-1.061 0-.566-.388-1.061-1.241-1.061h-2.78v2.122h2.78Zm9.291-6.444h1.138v7.64h-1.235v-5.723l-4.396 5.722H45.69v-7.64h1.234v5.702l4.382-5.701Zm8.931 5.439c0 1.26-1.116 2.384-3.245 2.384-1.699 0-2.967-.8-3.501-1.266l.672-1.04c.472.439 1.533 1.11 2.795 1.11 1.165 0 2.01-.466 2.01-1.209 0-.304-.138-.665-.624-.87-.36-.156-.908-.205-1.726-.205h-.964v-1.125h1.144c.624 0 1.061-.078 1.352-.247a.992.992 0 0 0 .479-.878c0-.657-.534-1.06-1.658-1.06-1.06 0-1.934.46-2.42.82l-.568-.97c.492-.445 1.63-1.046 2.988-1.046 1.852 0 2.927.842 2.927 2.15 0 .764-.333 1.387-.93 1.747.687.248 1.27.764 1.27 1.705Zm6.9-5.439h1.234v7.64h-1.234v-3.325h-4.334v3.324h-1.234v-7.64h1.234v3.113h4.334v-3.112Zm4.285 6.443h4.548v1.203h-5.782v-7.646h5.671v1.202h-4.444v1.988h4.09v1.202h-4.09v2.052h.007ZM80.95 21c1.4 0 2.474.601 2.925 1.061l-.763.94c-.388-.346-1.178-.799-2.184-.799-1.608 0-2.676 1.182-2.676 2.794 0 1.613 1.026 2.795 2.676 2.795 1.124 0 1.956-.524 2.358-.92l.714.969c-.45.502-1.574 1.146-3.05 1.146-2.407 0-3.96-1.69-3.96-3.997 0-2.306 1.595-3.989 3.96-3.989Z"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="logoGray" fill="none" viewBox="0 0 194 32"><path fill="#94A4B7" d="M.5 16c0 6.622 5.378 12 12 12h.482v-4.535H12.5c-4.094 0-7.465-3.331-7.465-7.465 0-4.094 3.331-7.465 7.465-7.465h.482V4H12.5C5.878 4 .5 9.378.5 16Z"/><path fill="#94A4B7" d="M14.908 4.241v6.261H12.5a5.55 5.55 0 0 0-5.539 5.539 5.55 5.55 0 0 0 5.539 5.538h2.408v6.26A11.974 11.974 0 0 0 24.5 16.082c.04-5.9-4.094-10.716-9.592-11.84ZM38.422 8c2.655 0 4.853 1.188 5.765 2.08l-1.534 1.91c-.747-.68-2.406-1.613-4.23-1.613-3.36 0-5.434 2.376-5.434 5.602 0 3.225 1.99 5.602 5.475 5.602 2.032 0 3.774-1.104 4.562-1.867l1.452 1.994c-.913.976-3.194 2.292-6.014 2.292-4.936 0-7.964-3.395-7.964-7.979C30.46 11.395 33.57 8 38.422 8Zm15.264 0c4.562 0 7.88 3.395 7.88 7.979 0 4.626-3.318 7.979-7.88 7.979-4.563 0-7.88-3.396-7.88-7.98C45.763 11.396 49.081 8 53.685 8Zm0 13.58c3.11 0 5.391-2.376 5.391-5.601 0-3.226-2.28-5.602-5.391-5.602s-5.392 2.376-5.392 5.602c0 3.225 2.28 5.602 5.392 5.602Zm23.557-2.376c0 2.25-1.41 4.414-5.06 4.414h-7.964V8.34h7.508c3.027 0 4.77 1.91 4.77 4.074 0 1.23-.54 2.334-1.867 3.225 1.327.467 2.613 1.486 2.613 3.565ZM66.667 10.76v4.074l4.728-.042c1.7 0 2.571-.976 2.571-2.08 0-1.061-.746-1.952-2.24-1.952h-5.06Zm5.682 10.482c1.742 0 2.405-.976 2.405-2.037 0-1.146-.788-2.08-2.364-2.08h-5.682v4.16h5.64v-.043Zm14.724-5.476 6.636 7.894h-3.276l-5.517-6.663h-2.82v6.663h-2.447V8.38h2.447v6.324h2.82l5.392-6.324h3.277l-6.512 7.385Z"/><path fill="#94A4B7" d="M101.258 8c4.562 0 7.881 3.395 7.881 7.979 0 4.626-3.319 7.979-7.881 7.979s-7.88-3.396-7.88-7.98c0-4.583 3.318-7.978 7.88-7.978Zm0 13.58c3.111 0 5.392-2.376 5.392-5.601 0-3.226-2.281-5.602-5.392-5.602-3.11 0-5.392 2.376-5.392 5.602 0 3.225 2.323 5.602 5.392 5.602Zm24.43-13.24h2.364v15.278h-2.447V12.287l-4.894 6.705h-1.494l-4.894-6.705V23.66h-2.447V8.382h2.364l5.724 7.852 5.724-7.894Zm13.603 6.238c3.276 0 5.06 1.953 5.06 4.5 0 2.546-1.784 4.54-4.894 4.54h-8.129V8.34h11.613v2.419h-9.166v3.862h5.516v-.043Zm.083 6.663c1.7 0 2.488-.976 2.488-2.122 0-1.145-.788-2.122-2.488-2.122h-5.558v4.244h5.558Zm18.664 2.377-1.617-3.82h-7.051l-1.618 3.82h-2.696l6.471-15.278h2.696l6.47 15.278h-2.655Zm-7.756-6.111h5.143l-2.571-6.112-2.572 6.112Zm23.351-9.167h2.447v15.278h-2.447v-6.536h-8.627v6.536h-2.447V8.34h2.447v6.323h8.627V8.34Zm13.231 7.426 6.636 7.894h-3.277l-5.516-6.663h-2.82v6.663h-2.447V8.38h2.447v6.324h2.82l5.392-6.324h3.277l-6.512 7.385Z"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="logoInsurance" fill="none" viewBox="0 0 193 32"><path fill="#FC5055" d="M.5 16c0 4.244 1.747 8.313 4.857 11.314 3.11 3 7.329 4.686 11.727 4.686h.669v-6.08h-.669c-2.727 0-5.342-1.046-7.27-2.906S6.803 18.631 6.803 16c0-2.63 1.083-5.154 3.011-7.014 1.928-1.86 4.543-2.905 7.27-2.905h.669V0h-.669C12.686 0 8.468 1.686 5.357 4.686 2.247 7.686.5 11.756.5 16Z"/><path fill="#003790" d="M20.403.323v8.314h-3.344a7.776 7.776 0 0 0-5.396 2.157A7.234 7.234 0 0 0 9.427 16c0 1.953.805 3.826 2.236 5.206a7.775 7.775 0 0 0 5.396 2.157h3.344v8.323c3.743-.741 7.107-2.707 9.523-5.564 2.415-2.857 3.735-6.43 3.735-10.118 0-3.687-1.32-7.261-3.735-10.118-2.416-2.857-5.78-4.822-9.523-5.563Zm26.54 2.682a7.937 7.937 0 0 1 5.166 1.84L50.73 6.498a6.13 6.13 0 0 0-3.804-1.387 4.645 4.645 0 0 0-4.87 4.904 4.6 4.6 0 0 0 4.953 4.904 6.287 6.287 0 0 0 4.126-1.651l1.296 1.742A7.945 7.945 0 0 1 47.033 17c-4.423 0-7.155-2.964-7.155-7.01 0-4.045 2.724-6.984 7.065-6.984Zm13.666 0a6.83 6.83 0 0 1 6.59 4.281c.348.866.515 1.795.49 2.728a7.093 7.093 0 0 1-7.084 6.85 7.088 7.088 0 0 1-7.085-6.85 6.838 6.838 0 0 1 7.089-7.01Zm0 11.913a4.727 4.727 0 0 0 4.82-4.904 4.831 4.831 0 0 0-4.824-5.03 4.826 4.826 0 0 0-4.824 5.03 4.733 4.733 0 0 0 4.828 4.904ZM81.76 12.83c0 1.973-1.262 3.888-4.538 3.888h-7.106V3.31h6.685c2.715 0 4.291 1.652 4.291 3.583a3.303 3.303 0 0 1-1.65 2.832 3.095 3.095 0 0 1 2.319 3.104ZM72.287 5.4v3.566h4.25c1.51 0 2.295-.826 2.295-1.841 0-1.016-.669-1.71-2.014-1.71l-4.53-.016Zm5.068 9.196c1.551 0 2.145-.867 2.145-1.8a1.857 1.857 0 0 0-2.104-1.84h-5.108v3.64h5.067Zm13.211-4.788 5.959 6.91h-2.93l-4.952-5.862h-2.541v5.862h-2.237V3.31h2.204v5.54h2.541l4.845-5.54h2.93l-5.819 6.498Z"/><path fill="#003790" d="M103.292 3.005a6.835 6.835 0 0 1 7.089 7.01 7.09 7.09 0 0 1-14.17 0 6.839 6.839 0 0 1 4.349-6.548 6.827 6.827 0 0 1 2.732-.462Zm0 11.913a4.728 4.728 0 0 0 4.828-4.904 4.835 4.835 0 0 0-2.93-4.642 4.829 4.829 0 0 0-6.718 4.642 4.732 4.732 0 0 0 4.82 4.904ZM125.195 3.31h2.121v13.408h-2.196V6.761l-4.407 5.912h-1.336l-4.407-5.879v9.924h-2.196V3.31h2.121l5.15 6.886 5.15-6.886Zm12.214 5.482c2.946 0 4.555 1.718 4.555 3.947s-1.609 3.98-4.407 3.98h-7.27V3.31h10.431v2.106h-8.253v3.376h4.944Zm.057 5.82c1.527 0 2.22-.825 2.22-1.857s-.693-1.857-2.22-1.857h-4.951v3.715h4.951Zm16.729 2.106-1.453-3.352h-6.338l-1.452 3.352h-2.418L148.36 3.31h2.426l5.818 13.408h-2.409Zm-6.933-5.366h4.614l-2.295-5.342-2.319 5.342Zm20.929-8.042h2.195v13.408h-2.195v-5.78h-7.757v5.78h-2.204V3.31h2.204v5.557h7.757V3.31Zm11.868 6.498 5.933 6.91h-2.929l-4.952-5.862h-2.542v5.862h-2.212V3.31h2.204v5.54h2.542l4.844-5.54h2.93l-5.818 6.498Z"/><path fill="#FC5055" d="M44.181 21.008a4.915 4.915 0 0 1 3.187 1.059l-.826.943a3.886 3.886 0 0 0-2.377-.773 2.997 2.997 0 0 0-1.148.18 2.848 2.848 0 0 0-.973.597c-.276.26-.492.572-.633.914a2.52 2.52 0 0 0-.185 1.076 2.47 2.47 0 0 0 .169 1.084c.136.346.35.662.625.926.276.264.608.47.975.606.366.136.76.198 1.153.182a3.93 3.93 0 0 0 2.568-.92l.776.974A4.913 4.913 0 0 1 44.19 29a4.381 4.381 0 0 1-1.67-.255 4.166 4.166 0 0 1-1.419-.86 3.853 3.853 0 0 1-.932-1.321 3.646 3.646 0 0 1-.288-1.56 3.644 3.644 0 0 1 .287-1.558 3.85 3.85 0 0 1 .93-1.32 4.165 4.165 0 0 1 1.417-.86 4.38 4.38 0 0 1 1.666-.258Zm11.144 1.376h-2.922v6.446h-1.337v-6.446h-2.93v-1.198h7.19v1.198Zm8.255 1.213c0 1.368-.983 2.435-3.038 2.435H57.86v2.798h-1.337v-7.644h3.93c2.145 0 3.128 1.043 3.128 2.411Zm-3.096 1.237c1.288 0 1.651-.557 1.651-1.23 0-.672-.404-1.22-1.65-1.22h-2.626v2.45h2.625Zm10.021 3.996-.883-1.91H65.76l-.883 1.91h-1.478l3.55-7.644h1.519l3.55 7.644h-1.511Zm-4.226-3.092h2.815l-1.403-3.045-1.412 3.045Zm14.503 3.092h-1.65l-2.543-2.984-2.567 2.984H72.37l3.302-3.865-3.195-3.764h1.61l2.476 2.837 2.477-2.837h1.65l-3.227 3.726 3.319 3.903Zm4.582-7.822a4.47 4.47 0 0 1 2.357.696 4.057 4.057 0 0 1 1.55 1.802 3.76 3.76 0 0 1 .223 2.305c-.17.773-.58 1.48-1.18 2.034a4.363 4.363 0 0 1-2.185 1.081 4.536 4.536 0 0 1-2.46-.235 4.218 4.218 0 0 1-1.906-1.472 3.818 3.818 0 0 1-.716-2.215 3.646 3.646 0 0 1 .288-1.562c.211-.497.53-.947.935-1.322.406-.376.89-.668 1.422-.86a4.381 4.381 0 0 1 1.672-.252Zm0 6.794a3.14 3.14 0 0 0 1.673-.449 2.854 2.854 0 0 0 1.123-1.246c.233-.51.3-1.074.19-1.62a2.744 2.744 0 0 0-.806-1.445 3.053 3.053 0 0 0-1.53-.779 3.179 3.179 0 0 0-1.733.152 2.957 2.957 0 0 0-1.349 1.03 2.674 2.674 0 0 0-.507 1.559c-.015.367.051.733.193 1.076.142.342.357.654.632.916s.605.469.968.607c.364.139.753.206 1.146.199Zm13.059-1.191c0 1.129-.768 2.219-2.766 2.219h-4.35v-7.644h4.127c1.651 0 2.609.958 2.609 2.04a1.792 1.792 0 0 1-.297.937 1.958 1.958 0 0 1-.76.67c.421.098.793.328 1.055.651.261.324.396.722.382 1.127Zm-5.779-4.227v2.032h2.634c.908 0 1.353-.486 1.353-1.05 0-.565-.437-.975-1.27-.975l-2.717-.007Zm3.063 5.24c.94 0 1.304-.502 1.304-1.036 0-.533-.363-1.035-1.246-1.035h-3.112v2.071h3.054Zm10.31 1.206-.892-1.91h-3.863l-.883 1.91h-1.47l3.55-7.644h1.503l3.549 7.644h-1.494Zm-4.226-3.092h2.814l-1.403-3.045-1.411 3.045Zm12.902-4.552h1.345v7.644h-1.345v-3.331h-4.706v3.33h-1.337v-7.643h1.337v3.091h4.706v-3.091Zm9.468 0h1.262v7.644h-1.337v-5.727l-4.796 5.727h-1.221v-7.644h1.337v5.696l4.755-5.696Zm4.564 6.438h4.953v1.206h-6.29v-7.644h6.175v1.198h-4.838v1.986h4.458v1.237h-4.458v2.017Zm17.624-2.736 3.302 3.942h-1.775l-2.641-3.347h-.76v3.347h-1.345v-3.347h-.76l-2.666 3.347h-1.775l3.302-3.942-3.227-3.702h1.733l2.633 3.153h.76v-3.153h1.345v3.153h.76l2.633-3.153h1.733l-3.252 3.702Zm10.681-3.702h1.239v7.644h-1.346v-5.727l-4.788 5.727h-1.229v-7.644h1.345v5.696l4.779-5.696Zm9.725 5.434c0 1.26-1.214 2.38-3.533 2.38a6.363 6.363 0 0 1-3.814-1.26l.735-1.043a4.965 4.965 0 0 0 3.046 1.113c1.271 0 2.195-.464 2.195-1.206a.877.877 0 0 0-.187-.54.983.983 0 0 0-.49-.334 5.574 5.574 0 0 0-1.882-.208h-1.081v-1.129h1.246a3.203 3.203 0 0 0 1.47-.247 1.05 1.05 0 0 0 .419-.354.96.96 0 0 0 .167-.504c0-.657-.586-1.059-1.808-1.059a4.807 4.807 0 0 0-2.641.82l-.611-.974a5.42 5.42 0 0 1 3.252-1.052c2.014 0 3.178.843 3.178 2.15.016.35-.07.697-.247 1.005a2.02 2.02 0 0 1-.76.749c.39.107.732.33.975.635.243.306.373.677.371 1.057Zm7.519-5.434h1.346v7.644h-1.346v-3.331h-4.721v3.33h-1.337v-7.643h1.337v3.091h4.721v-3.091Zm9.452 0h1.23v7.644h-1.337v-5.727l-4.796 5.727h-1.222v-7.644h1.337v5.696l4.788-5.696Z"/><defs><clipPath id="clip0_1978_2699"><path fill="#fff" d="M.5 0h192v32H.5z"/></clipPath></defs></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="logoMain" fill="none" viewBox="0 0 192 32"><path fill="#003790" d="M14.197 4v6.222h-2.462c-3.109 0-5.614 2.455-5.614 5.503s2.505 5.502 5.614 5.502h2.462v6.223C19.811 26.392 24 21.566 24 15.725 24 9.925 19.81 5.1 14.197 4Z"/><path fill="#FC5055" d="M12.221 23.429c-4.189 0-7.6-3.344-7.6-7.45s3.411-7.45 7.6-7.45h.475V4h-.475C5.484 4 0 9.376 0 15.979 0 22.624 5.484 28 12.221 28h.475v-4.571h-.475Z"/><path fill="#003790" d="M41.307 20.115a5.272 5.272 0 0 1-3.367 1.211 5.318 5.318 0 0 1-5.321-5.347 5.318 5.318 0 0 1 5.321-5.347 5.19 5.19 0 0 1 3.492 1.337l1.87-1.88A7.892 7.892 0 0 0 37.94 8C33.533 8 30 11.593 30 15.98c0 4.386 3.533 8.02 7.94 8.02 2.037 0 3.866-.752 5.238-2.005l-1.87-1.88Zm84.596-11.488-5.861 7.101-5.903-7.101-.042.083v-.083h-2.37v14.705h2.37V12.553l5.945 7.102 5.861-6.934v10.61h2.328V8.628h-2.328Z"/><path fill="#003790" fill-rule="evenodd" d="M52.988 23.958c4.365 0 7.94-3.55 7.94-7.979 0-4.386-3.575-7.979-7.94-7.979-4.364 0-7.94 3.593-7.94 7.98 0 4.386 3.534 7.978 7.94 7.978Zm-.041-13.326a5.318 5.318 0 0 1 5.32 5.347 5.318 5.318 0 0 1-5.32 5.347 5.318 5.318 0 0 1-5.321-5.347 5.318 5.318 0 0 1 5.32-5.347Zm48.6 13.326c4.365 0 7.94-3.55 7.94-7.979 0-4.386-3.575-7.979-7.94-7.979s-7.94 3.593-7.94 7.98c0 4.386 3.534 7.978 7.94 7.978Zm-.041-13.326a5.318 5.318 0 0 1 5.321 5.347 5.318 5.318 0 0 1-5.321 5.347 5.318 5.318 0 0 1-5.321-5.347 5.318 5.318 0 0 1 5.321-5.347Z" clip-rule="evenodd"/><path fill="#003790" d="M93.395 8.627h-3.201l-6.028 6.182h-2.452V8.627h-2.328v14.705h2.328V17.19h2.41l6.028 6.14h3.16l-7.15-7.31 7.233-7.394Zm98.605 0h-3.159l-6.07 6.182h-2.452V8.627h-2.328v14.705h2.328V17.19h2.452l5.986 6.14h3.16l-7.109-7.31L192 8.627Z"/><path fill="#003790" fill-rule="evenodd" d="M160.157 23.332h-2.577l-1.414-3.175H148.6l-1.413 3.175h-2.577l6.443-14.705h2.661l6.443 14.705Zm-7.774-11.698-2.743 6.183h5.487l-2.744-6.183Zm-75.99 7.436a4.238 4.238 0 0 0-1.33-3.09c.79-.795 1.33-1.88 1.33-3.092 0-2.34-1.871-4.261-4.199-4.261h-8.563v14.746h8.563c2.328-.041 4.199-1.963 4.199-4.303ZM66 11.008h6.153c1.039 0 1.87.835 1.87 1.88 0 1.044-.831 1.88-1.87 1.88H66v-3.76Zm0 9.984h6.153c1.039 0 1.87-.877 1.912-1.922 0-1.002-.832-1.88-1.87-1.88H66v3.802Z" clip-rule="evenodd"/><path fill="#003790" d="M172.711 8.668v6.141h-8.522V8.67h-2.369v14.62h2.369v-6.098h8.522v6.099h2.37V8.668h-2.37Z"/><path fill="#003790" fill-rule="evenodd" d="M139.538 14.81c2.328 0 4.24 1.921 4.24 4.26 0 2.34-1.912 4.262-4.24 4.303h-8.522V8.627h11.349v2.38h-8.979v3.802h6.152Zm-6.152 6.182h6.152c1.039 0 1.871-.877 1.871-1.922 0-1.002-.832-1.88-1.871-1.88h-6.152v3.802Z" clip-rule="evenodd"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="logoWhite" fill="none" viewBox="0 0 194 32"><path fill="#fff" d="M.5 16c0 6.622 5.378 12 12 12h.482v-4.535H12.5c-4.094 0-7.465-3.331-7.465-7.465 0-4.094 3.331-7.465 7.465-7.465h.482V4H12.5C5.878 4 .5 9.378.5 16Z"/><path fill="#fff" d="M14.908 4.241v6.261H12.5a5.55 5.55 0 0 0-5.539 5.539 5.55 5.55 0 0 0 5.539 5.538h2.408v6.26A11.974 11.974 0 0 0 24.5 16.082c.04-5.9-4.094-10.716-9.592-11.84ZM38.471 8c2.671 0 4.883 1.188 5.8 2.08l-1.543 1.91c-.751-.68-2.42-1.613-4.257-1.613-3.38 0-5.467 2.376-5.467 5.602 0 3.225 2.004 5.602 5.509 5.602 2.045 0 3.797-1.104 4.59-1.867l1.461 1.994c-.918.976-3.213 2.292-6.051 2.292-4.966 0-8.013-3.395-8.013-7.979C30.46 11.395 33.59 8 38.471 8Zm14.351 0c4.591 0 7.93 3.395 7.93 7.979 0 4.626-3.339 7.979-7.93 7.979-4.59 0-7.928-3.396-7.928-7.98C44.852 11.396 48.19 8 52.822 8Zm0 13.58c3.13 0 5.426-2.376 5.426-5.601 0-3.226-2.296-5.602-5.425-5.602-3.13 0-5.426 2.376-5.426 5.602 0 3.225 2.296 5.602 5.425 5.602Zm23.703-2.376c0 2.25-1.419 4.414-5.091 4.414H63.42V8.34h7.554c3.046 0 4.8 1.91 4.8 4.074 0 1.23-.544 2.334-1.879 3.225 1.335.467 2.63 1.486 2.63 3.565ZM65.884 10.76v4.074l4.757-.042c1.711 0 2.587-.976 2.587-2.08 0-1.061-.75-1.952-2.253-1.952h-5.091ZM71.6 21.24c1.753 0 2.42-.976 2.42-2.037 0-1.146-.793-2.08-2.378-2.08h-5.718v4.16H71.6v-.043Zm14.816-5.474 6.677 7.894h-3.297l-5.55-6.663h-2.838v6.663h-2.462V8.38h2.462v6.324h2.838l5.425-6.324h3.297l-6.552 7.385Z"/><path fill="#fff" d="M100.689 8c4.59 0 7.929 3.395 7.929 7.979 0 4.626-3.339 7.979-7.929 7.979s-7.93-3.396-7.93-7.98C92.76 11.396 96.1 8 100.69 8Zm0 13.58c3.13 0 5.425-2.376 5.425-5.601 0-3.226-2.295-5.602-5.425-5.602s-5.425 2.376-5.425 5.602c0 3.225 2.337 5.602 5.425 5.602Zm24.58-13.24h2.379v15.278h-2.462V12.287l-4.925 6.705h-1.502l-4.924-6.705V23.66h-2.463V8.382h2.379l5.759 7.852 5.759-7.894Zm13.687 6.238c3.297 0 5.092 1.953 5.092 4.5 0 2.546-1.795 4.54-4.925 4.54h-8.179V8.34h11.685v2.419h-9.223v3.862h5.55v-.043Zm.084 6.663c1.711 0 2.504-.976 2.504-2.122 0-1.145-.793-2.122-2.504-2.122h-5.592v4.244h5.592Zm18.779 2.377-1.627-3.82h-7.095l-1.627 3.82h-2.713l6.511-15.278h2.712l6.51 15.278h-2.671Zm-7.803-6.111h5.174l-2.587-6.112-2.587 6.112ZM173.51 8.34h2.463v15.278h-2.463v-6.536h-8.68v6.536h-2.462V8.34h2.462v6.323h8.68V8.34Zm13.313 7.426 6.677 7.894h-3.297l-5.55-6.663h-2.838v6.663h-2.462V8.38h2.462v6.324h2.838l5.425-6.324h3.297l-6.552 7.385Z"/></symbol></svg>
@@ -1 +0,0 @@
1
- <svg width="0" height="0"><symbol xmlns="http://www.w3.org/2000/svg" id="phone" fill="none" viewBox="0 0 24 24"><path fill="currentColor" d="M18.769 12.929c-.199 0-.406-.064-.605-.109a8.516 8.516 0 0 1-1.184-.353 1.801 1.801 0 0 0-2.24.905l-.198.408c-.88-.49-1.688-1.1-2.403-1.812a11.03 11.03 0 0 1-1.806-2.41l.379-.253a1.81 1.81 0 0 0 .903-2.246 9.386 9.386 0 0 1-.352-1.187 6.761 6.761 0 0 1-.108-.616 2.72 2.72 0 0 0-.94-1.63A2.705 2.705 0 0 0 8.445 3h-2.71a2.703 2.703 0 0 0-2.06.923 2.72 2.72 0 0 0-.65 2.166 17.231 17.231 0 0 0 4.912 10.022A17.142 17.142 0 0 0 17.947 21h.343A2.705 2.705 0 0 0 21 18.273v-2.717a2.723 2.723 0 0 0-.646-1.714 2.708 2.708 0 0 0-1.585-.913Zm.452 5.435a.91.91 0 0 1-.654.871.956.956 0 0 1-.394.035 15.338 15.338 0 0 1-8.93-4.412 15.417 15.417 0 0 1-4.357-8.977.99.99 0 0 1 .226-.743.904.904 0 0 1 .677-.308H8.5a.902.902 0 0 1 .903.716c.036.247.082.492.136.734.104.477.243.946.415 1.404l-1.264.588a.903.903 0 0 0-.526.86.91.91 0 0 0 .083.345 13.107 13.107 0 0 0 6.323 6.341.9.9 0 0 0 .686 0 .903.903 0 0 0 .515-.47l.56-1.269c.467.168.944.307 1.427.417.241.054.485.1.732.136a.903.903 0 0 1 .713.906l.019 2.826Z"/></symbol></svg>
@@ -1 +0,0 @@
1
- <svg width="0" height="0"><symbol xmlns="http://www.w3.org/2000/svg" id="bold" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24"><path d="M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="heading" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24"><path d="M6 12h12M6 20V4m12 16V4"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="italic" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24"><path d="M19 4h-9m4 16H5M15 4 9 20"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="link" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="list" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24"><path d="M3 12h.01M3 18h.01M3 6h.01M8 12h13M8 18h13M8 6h13"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="palette" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24"><circle cx="13.5" cy="6.5" r=".5" fill="currentColor"/><circle cx="17.5" cy="10.5" r=".5" fill="currentColor"/><circle cx="8.5" cy="7.5" r=".5" fill="currentColor"/><circle cx="6.5" cy="12.5" r=".5" fill="currentColor"/><path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.926 0 1.648-.746 1.648-1.688 0-.437-.18-.835-.437-1.125-.29-.289-.438-.652-.438-1.125a1.64 1.64 0 0 1 1.668-1.668h1.996c3.051 0 5.555-2.503 5.555-5.554C21.965 6.012 17.461 2 12 2z"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="redo" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24"><path d="M21 7v6h-6"/><path d="M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3l3 2.7"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="removeFormatting" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24"><path d="M4 7V4h16v3M5 20h6m2-16L8 20m7-5 5 5m0-5-5 5"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="space" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24"><path d="M22 17v1c0 .5-.5 1-1 1H3c-.5 0-1-.5-1-1v-1"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="strikethrough" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24"><path d="M16 4H9a3 3 0 0 0-2.83 4M14 12a4 4 0 0 1 0 8H6m-2-8h16"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="typography" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24"><path d="M4 7V4h16v3M9 20h6M12 4v16"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="underline" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24"><path d="M6 4v6a6 6 0 0 0 12 0V4M4 20h16"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="undo" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24"><path d="M3 7v6h6"/><path d="M21 17a9 9 0 0 0-9-9 9 9 0 0 0-6 2.3L3 13"/></symbol></svg>
@@ -1 +0,0 @@
1
- <svg width="0" height="0"><symbol xmlns="http://www.w3.org/2000/svg" id="border" fill="none" viewBox="0 0 476 64"><mask id="a" fill="currentColor"><path d="M0 4a4 4 0 0 1 4-4h468a4 4 0 0 1 4 4v56a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4V4Z"/></mask><path fill="currentColor" d="M4 63.5A3.5 3.5 0 0 1 .5 60h-1A4.5 4.5 0 0 0 4 64.5v-1ZM.5 60v-7h-1v7h1Zm0-21V25h-1v14h1Zm0-28V4h-1v7h1Zm0-7A3.5 3.5 0 0 1 4 .5v-1A4.5 4.5 0 0 0-.5 4h1ZM4 .5h5.85v-1H4v1Zm17.55 0h11.7v-1h-11.7v1Zm23.4 0h11.7v-1h-11.7v1Zm23.4 0h11.7v-1h-11.7v1Zm23.4 0h11.7v-1h-11.7v1Zm23.4 0h11.7v-1h-11.7v1Zm23.4 0h11.7v-1h-11.7v1Zm23.4 0h11.7v-1h-11.7v1Zm23.4 0h11.7v-1h-11.7v1Zm23.4 0h11.7v-1h-11.7v1Zm23.4 0h11.7v-1h-11.7v1Zm23.4 0h11.7v-1h-11.7v1Zm23.4 0h11.7v-1h-11.7v1Zm23.4 0h11.7v-1h-11.7v1Zm23.4 0h11.7v-1h-11.7v1Zm23.4 0h11.7v-1h-11.7v1Zm23.4 0h11.7v-1h-11.7v1Zm23.4 0h11.7v-1h-11.7v1Zm23.4 0h11.7v-1h-11.7v1Zm23.4 0h11.7v-1h-11.7v1Zm23.4 0H472v-1h-5.85v1Zm5.85 0a3.5 3.5 0 0 1 3.5 3.5h1A4.5 4.5 0 0 0 472-.5v1Zm3.5 3.5v7h1V4h-1Zm0 21v14h1V25h-1Zm0 28v7h1v-7h-1Zm0 7a3.5 3.5 0 0 1-3.5 3.5v1a4.5 4.5 0 0 0 4.5-4.5h-1Zm-3.5 3.5h-5.85v1H472v-1Zm-17.55 0h-11.7v1h11.7v-1Zm-23.4 0h-11.7v1h11.7v-1Zm-23.4 0h-11.7v1h11.7v-1Zm-23.4 0h-11.7v1h11.7v-1Zm-23.4 0h-11.7v1h11.7v-1Zm-23.4 0h-11.7v1h11.7v-1Zm-23.4 0h-11.7v1h11.7v-1Zm-23.4 0h-11.7v1h11.7v-1Zm-23.4 0h-11.7v1h11.7v-1Zm-23.4 0h-11.7v1h11.7v-1Zm-23.4 0h-11.7v1h11.7v-1Zm-23.4 0h-11.7v1h11.7v-1Zm-23.4 0h-11.7v1h11.7v-1Zm-23.4 0h-11.7v1h11.7v-1Zm-23.4 0h-11.7v1h11.7v-1Zm-23.4 0h-11.7v1h11.7v-1Zm-23.4 0h-11.7v1h11.7v-1Zm-23.4 0h-11.7v1h11.7v-1Zm-23.4 0h-11.7v1h11.7v-1Zm-23.4 0H4v1h5.85v-1ZM4 63a3 3 0 0 1-3-3h-2a5 5 0 0 0 5 5v-2Zm-3-3v-7h-2v7h2Zm0-21V25h-2v14h2Zm0-28V4h-2v7h2Zm0-7a3 3 0 0 1 3-3v-2a5 5 0 0 0-5 5h2Zm3-3h5.85v-2H4v2Zm17.55 0h11.7v-2h-11.7v2Zm23.4 0h11.7v-2h-11.7v2Zm23.4 0h11.7v-2h-11.7v2Zm23.4 0h11.7v-2h-11.7v2Zm23.4 0h11.7v-2h-11.7v2Zm23.4 0h11.7v-2h-11.7v2Zm23.4 0h11.7v-2h-11.7v2Zm23.4 0h11.7v-2h-11.7v2Zm23.4 0h11.7v-2h-11.7v2Zm23.4 0h11.7v-2h-11.7v2Zm23.4 0h11.7v-2h-11.7v2Zm23.4 0h11.7v-2h-11.7v2Zm23.4 0h11.7v-2h-11.7v2Zm23.4 0h11.7v-2h-11.7v2Zm23.4 0h11.7v-2h-11.7v2Zm23.4 0h11.7v-2h-11.7v2Zm23.4 0h11.7v-2h-11.7v2Zm23.4 0h11.7v-2h-11.7v2Zm23.4 0h11.7v-2h-11.7v2Zm23.4 0H472v-2h-5.85v2ZM472 1a3 3 0 0 1 3 3h2a5 5 0 0 0-5-5v2Zm3 3v7h2V4h-2Zm0 21v14h2V25h-2Zm0 28v7h2v-7h-2Zm0 7a3 3 0 0 1-3 3v2a5 5 0 0 0 5-5h-2Zm-3 3h-5.85v2H472v-2Zm-17.55 0h-11.7v2h11.7v-2Zm-23.4 0h-11.7v2h11.7v-2Zm-23.4 0h-11.7v2h11.7v-2Zm-23.4 0h-11.7v2h11.7v-2Zm-23.4 0h-11.7v2h11.7v-2Zm-23.4 0h-11.7v2h11.7v-2Zm-23.4 0h-11.7v2h11.7v-2Zm-23.4 0h-11.7v2h11.7v-2Zm-23.4 0h-11.7v2h11.7v-2Zm-23.4 0h-11.7v2h11.7v-2Zm-23.4 0h-11.7v2h11.7v-2Zm-23.4 0h-11.7v2h11.7v-2Zm-23.4 0h-11.7v2h11.7v-2Zm-23.4 0h-11.7v2h11.7v-2Zm-23.4 0h-11.7v2h11.7v-2Zm-23.4 0h-11.7v2h11.7v-2Zm-23.4 0h-11.7v2h11.7v-2Zm-23.4 0h-11.7v2h11.7v-2Zm-23.4 0h-11.7v2h11.7v-2Zm-23.4 0H4v2h5.85v-2Z" mask="url(#a)"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="borderError" fill="none" viewBox="0 0 476 64"><path fill="currentColor" d="M4 63.5A3.5 3.5 0 0 1 .5 60h-1A4.5 4.5 0 0 0 4 64.5v-1ZM.5 60v-7h-1v7h1Zm0-21V25h-1v14h1Zm0-28V4h-1v7h1Zm0-7A3.5 3.5 0 0 1 4 .5v-1A4.5 4.5 0 0 0-.5 4h1ZM4 .5h5.85v-1H4v1Zm17.55 0h11.7v-1h-11.7v1Zm23.4 0h11.7v-1h-11.7v1Zm23.4 0h11.7v-1h-11.7v1Zm23.4 0h11.7v-1h-11.7v1Zm23.4 0h11.7v-1h-11.7v1Zm23.4 0h11.7v-1h-11.7v1Zm23.4 0h11.7v-1h-11.7v1Zm23.4 0h11.7v-1h-11.7v1Zm23.4 0h11.7v-1h-11.7v1Zm23.4 0h11.7v-1h-11.7v1Zm23.4 0h11.7v-1h-11.7v1Zm23.4 0h11.7v-1h-11.7v1Zm23.4 0h11.7v-1h-11.7v1Zm23.4 0h11.7v-1h-11.7v1Zm23.4 0h11.7v-1h-11.7v1Zm23.4 0h11.7v-1h-11.7v1Zm23.4 0h11.7v-1h-11.7v1Zm23.4 0h11.7v-1h-11.7v1Zm23.4 0h11.7v-1h-11.7v1Zm23.4 0H472v-1h-5.85v1Zm5.85 0a3.5 3.5 0 0 1 3.5 3.5h1A4.5 4.5 0 0 0 472-.5v1Zm3.5 3.5v7h1V4h-1Zm0 21v14h1V25h-1Zm0 28v7h1v-7h-1Zm0 7a3.5 3.5 0 0 1-3.5 3.5v1a4.5 4.5 0 0 0 4.5-4.5h-1Zm-3.5 3.5h-5.85v1H472v-1Zm-17.55 0h-11.7v1h11.7v-1Zm-23.4 0h-11.7v1h11.7v-1Zm-23.4 0h-11.7v1h11.7v-1Zm-23.4 0h-11.7v1h11.7v-1Zm-23.4 0h-11.7v1h11.7v-1Zm-23.4 0h-11.7v1h11.7v-1Zm-23.4 0h-11.7v1h11.7v-1Zm-23.4 0h-11.7v1h11.7v-1Zm-23.4 0h-11.7v1h11.7v-1Zm-23.4 0h-11.7v1h11.7v-1Zm-23.4 0h-11.7v1h11.7v-1Zm-23.4 0h-11.7v1h11.7v-1Zm-23.4 0h-11.7v1h11.7v-1Zm-23.4 0h-11.7v1h11.7v-1Zm-23.4 0h-11.7v1h11.7v-1Zm-23.4 0h-11.7v1h11.7v-1Zm-23.4 0h-11.7v1h11.7v-1Zm-23.4 0h-11.7v1h11.7v-1Zm-23.4 0h-11.7v1h11.7v-1Zm-23.4 0H4v1h5.85v-1ZM4 63a3 3 0 0 1-3-3h-2a5 5 0 0 0 5 5v-2Zm-3-3v-7h-2v7h2Zm0-21V25h-2v14h2Zm0-28V4h-2v7h2Zm0-7a3 3 0 0 1 3-3v-2a5 5 0 0 0-5 5h2Zm3-3h5.85v-2H4v2Zm17.55 0h11.7v-2h-11.7v2Zm23.4 0h11.7v-2h-11.7v2Zm23.4 0h11.7v-2h-11.7v2Zm23.4 0h11.7v-2h-11.7v2Zm23.4 0h11.7v-2h-11.7v2Zm23.4 0h11.7v-2h-11.7v2Zm23.4 0h11.7v-2h-11.7v2Zm23.4 0h11.7v-2h-11.7v2Zm23.4 0h11.7v-2h-11.7v2Zm23.4 0h11.7v-2h-11.7v2Zm23.4 0h11.7v-2h-11.7v2Zm23.4 0h11.7v-2h-11.7v2Zm23.4 0h11.7v-2h-11.7v2Zm23.4 0h11.7v-2h-11.7v2Zm23.4 0h11.7v-2h-11.7v2Zm23.4 0h11.7v-2h-11.7v2Zm23.4 0h11.7v-2h-11.7v2Zm23.4 0h11.7v-2h-11.7v2Zm23.4 0h11.7v-2h-11.7v2Zm23.4 0H472v-2h-5.85v2ZM472 1a3 3 0 0 1 3 3h2a5 5 0 0 0-5-5v2Zm3 3v7h2V4h-2Zm0 21v14h2V25h-2Zm0 28v7h2v-7h-2Zm0 7a3 3 0 0 1-3 3v2a5 5 0 0 0 5-5h-2Zm-3 3h-5.85v2H472v-2Zm-17.55 0h-11.7v2h11.7v-2Zm-23.4 0h-11.7v2h11.7v-2Zm-23.4 0h-11.7v2h11.7v-2Zm-23.4 0h-11.7v2h11.7v-2Zm-23.4 0h-11.7v2h11.7v-2Zm-23.4 0h-11.7v2h11.7v-2Zm-23.4 0h-11.7v2h11.7v-2Zm-23.4 0h-11.7v2h11.7v-2Zm-23.4 0h-11.7v2h11.7v-2Zm-23.4 0h-11.7v2h11.7v-2Zm-23.4 0h-11.7v2h11.7v-2Zm-23.4 0h-11.7v2h11.7v-2Zm-23.4 0h-11.7v2h11.7v-2Zm-23.4 0h-11.7v2h11.7v-2Zm-23.4 0h-11.7v2h11.7v-2Zm-23.4 0h-11.7v2h11.7v-2Zm-23.4 0h-11.7v2h11.7v-2Zm-23.4 0h-11.7v2h11.7v-2Zm-23.4 0h-11.7v2h11.7v-2Zm-23.4 0H4v2h5.85v-2Z" mask="url(#a)"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="documentFilled" fill="none" viewBox="0 0 22 28"><path fill="currentColor" fill-rule="evenodd" d="M.333 3.038A2.374 2.374 0 0 1 2.71.667h11.053c.26 0 .51.102.698.288l6.909 6.85c.188.188.297.444.297.714v16.443a2.374 2.374 0 0 1-2.377 2.371H2.71a2.374 2.374 0 0 1-2.377-2.371V3.038ZM2.71 2.67H11c.103 0 .201.04.274.108a.36.36 0 0 1 .113.261V9.89a1 1 0 0 0 .995 1.002h6.908c.214 0 .387.165.387.369v13.702a.378.378 0 0 1-.387.369H2.71a.378.378 0 0 1-.387-.37V3.039c0-.204.173-.369.387-.369Zm10.909.595a.4.4 0 0 1 .423.086l4.955 4.913a.356.356 0 0 1 .077.4.388.388 0 0 1-.356.225h-4.955a.378.378 0 0 1-.386-.369V3.606a.37.37 0 0 1 .242-.342Z" clip-rule="evenodd"/><path fill="currentColor" fill-rule="evenodd" d="M11 2.67H2.71a.378.378 0 0 0-.387.368v21.924c0 .204.173.369.387.369h16.58a.378.378 0 0 0 .387-.37V11.26a.378.378 0 0 0-.387-.37h-6.908a.998.998 0 0 1-.995-1V3.037a.36.36 0 0 0-.113-.26.397.397 0 0 0-.274-.109Zm0 9.925c-.535 0-.995.3-.995.867v4.766a.37.37 0 0 1-.242.342.4.4 0 0 1-.424-.086l-.404-.401a.99.99 0 0 0-1.397 0 1.006 1.006 0 0 0 0 1.426l2.764 2.74a.99.99 0 0 0 1.396 0l2.763-2.74a1.006 1.006 0 0 0 0-1.426.99.99 0 0 0-1.396 0l-.404.4a.4.4 0 0 1-.424.087.37.37 0 0 1-.242-.342v-4.766c0-.567-.46-.867-.995-.867Z" clip-rule="evenodd"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="documentOutline" fill="none" viewBox="0 0 22 28"><path fill="currentColor" d="M.333 3.333A2.667 2.667 0 0 1 3 .667h10.667c.353 0 .692.14.943.39l6.666 6.667c.25.25.39.589.39.943v16A2.667 2.667 0 0 1 19 27.333H3a2.667 2.667 0 0 1-2.667-2.666V3.333Zm18.115 5.334-4.781-4.781v4.78h4.78ZM11 3.333H3v21.334h16V11.333h-6.667A1.333 1.333 0 0 1 11 10V3.333Z"/><path fill="currentColor" d="M9.941 13.722c0-.597.49-1.055 1.059-1.055.57 0 1.059.458 1.059 1.055v3.735a.39.39 0 0 0 .258.361c.156.06.334.023.45-.091l.431-.423a1.06 1.06 0 0 1 1.486 0c.421.413.421 1.09 0 1.503l-2.94 2.89a1.06 1.06 0 0 1-1.487 0l-2.941-2.89a1.053 1.053 0 0 1 0-1.503 1.06 1.06 0 0 1 1.486 0l.43.423a.43.43 0 0 0 .451.091.39.39 0 0 0 .258-.36v-3.736Z"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="upload" fill="none" viewBox="0 0 23 20"><path fill="currentColor" fill-rule="evenodd" d="M11.5 2.222c-3.237 0-5.83 2.602-5.83 5.772v.103c.01.517-.334.971-.83 1.098a2.83 2.83 0 0 0-2.14 2.732c0 1.033.564 1.947 1.424 2.44.528.304.713.982.412 1.516-.3.533-.972.72-1.5.416A5.04 5.04 0 0 1 .5 11.927a5.042 5.042 0 0 1 2.998-4.608C3.842 3.206 7.31 0 11.5 0a8.03 8.03 0 0 1 7.646 5.547 6.024 6.024 0 0 1 3.354 5.396c0 1.98-.96 3.733-2.427 4.827a1.093 1.093 0 0 1-1.538-.233 1.118 1.118 0 0 1 .232-1.554 3.783 3.783 0 0 0 1.533-3.04 3.808 3.808 0 0 0-2.458-3.549 1.108 1.108 0 0 1-.677-.77c-.618-2.516-2.911-4.402-5.665-4.402ZM7.581 13.206l3.15-3.112a1.092 1.092 0 0 1 1.538 0l3.15 3.112a1.12 1.12 0 0 1 .018 1.57 1.092 1.092 0 0 1-1.556.018L12.6 13.53v5.36c0 .614-.492 1.111-1.1 1.111-.607 0-1.1-.497-1.1-1.111v-5.36l-1.281 1.265a1.092 1.092 0 0 1-1.556-.017 1.12 1.12 0 0 1 .018-1.571Z" clip-rule="evenodd"/></symbol></svg>
@@ -1 +0,0 @@
1
- <svg width="0" height="0"><symbol xmlns="http://www.w3.org/2000/svg" id="calendar" fill="none" viewBox="0 0 19 20"><path fill="currentColor" fill-rule="evenodd" d="M4.56 0a1 1 0 0 1 1 1v.543h8.19V1a1 1 0 1 1 2 0v.604c1.714.317 3 1.834 3 3.639V16.3c0 2.032-1.63 3.7-3.667 3.7H4.417C2.38 20 .75 18.332.75 16.3V5.243a3.696 3.696 0 0 1 2.81-3.599V1a1 1 0 0 1 1-1Zm-.02 3.543h-.123c-.91 0-1.667.75-1.667 1.7v.671h14v-.671c0-.95-.758-1.7-1.667-1.7H4.58a1.066 1.066 0 0 1-.04 0Zm12.21 4.371h-14V16.3c0 .95.758 1.7 1.667 1.7h10.666c.91 0 1.667-.75 1.667-1.7V7.914Z" clip-rule="evenodd"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="check" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="m4.892 13.269 4.274 4.274L18.709 8"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="close" fill="none" viewBox="0 0 24 24"><path fill="currentColor" d="M5.293 5.293a1 1 0 0 1 1.414 0L12 10.586l5.293-5.293a1 1 0 1 1 1.414 1.414L13.414 12l5.293 5.293a1 1 0 0 1-1.414 1.414L12 13.414l-5.293 5.293a1 1 0 0 1-1.414-1.414L10.586 12 5.293 6.707a1 1 0 0 1 0-1.414Z"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="edit" fill="none" viewBox="0 0 19 19"><path fill="currentColor" d="M13.293.293a1 1 0 0 1 1.414 0l4 4a1 1 0 0 1 0 1.414l-13 13A1 1 0 0 1 5 19H1a1 1 0 0 1-1-1v-4a1 1 0 0 1 .293-.707l13-13ZM14 2.414l-12 12V17h2.586l12-12L14 2.414Z"/><path fill="currentColor" fill-rule="evenodd" d="M9 18a1 1 0 0 1 1-1h8a1 1 0 1 1 0 2h-8a1 1 0 0 1-1-1Z" clip-rule="evenodd"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="hiddenEye" fill="none" viewBox="0 0 20 18"><path fill="currentColor" d="M2.707.293a1 1 0 0 0-1.414 1.414l2.424 2.424C2.287 5.207 1.04 6.685.106 8.553a1 1 0 0 0 0 .894C2.264 13.764 6.096 16 10 16c1.555 0 3.1-.355 4.53-1.055l2.763 2.762a1 1 0 0 0 1.414-1.414l-16-16Zm10.307 13.135c-.98.383-2 .572-3.014.572-2.969 0-6.002-1.62-7.87-5 .817-1.479 1.858-2.62 3.018-3.437l2.144 2.144a3 3 0 0 0 4.001 4.001l1.72 1.72Zm3.538-2.532c.483-.556.926-1.187 1.318-1.896-1.868-3.38-4.9-5-7.87-5-.112 0-.224.002-.336.007L7.879 2.223A10.215 10.215 0 0 1 10 2c3.903 0 7.736 2.236 9.894 6.553a1 1 0 0 1 0 .894 13.107 13.107 0 0 1-1.925 2.865l-1.417-1.416Z"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="menu" fill="none" viewBox="0 0 24 24"><path fill="currentColor" d="M2 5.75c0-.69.56-1.25 1.25-1.25h17.5a1.25 1.25 0 1 1 0 2.5H3.25C2.56 7 2 6.44 2 5.75ZM2 12c0-.69.56-1.25 1.25-1.25h17.5a1.25 1.25 0 1 1 0 2.5H3.25C2.56 13.25 2 12.69 2 12Zm0 6.25c0-.69.56-1.25 1.25-1.25h17.5a1.25 1.25 0 1 1 0 2.5H3.25c-.69 0-1.25-.56-1.25-1.25Z"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="plus" fill="none" viewBox="0 0 16 16"><path fill="currentColor" d="M8 0a1 1 0 0 1 1 1v6h6a1 1 0 1 1 0 2H9v6a1 1 0 1 1-2 0V9H1a1 1 0 1 1 0-2h6V1a1 1 0 0 1 1-1Z"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="reorder" fill="none" viewBox="0 0 12 18"><path fill="currentColor" d="M2.5 4a2 2 0 1 0 0-4 2 2 0 0 0 0 4Zm0 7a2 2 0 1 0 0-4 2 2 0 0 0 0 4Zm2 5a2 2 0 1 1-4 0 2 2 0 0 1 4 0Zm5-12a2 2 0 1 0 0-4 2 2 0 0 0 0 4Zm2 5a2 2 0 1 1-4 0 2 2 0 0 1 4 0Zm-2 9a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="search" fill="none" viewBox="0 0 24 24"><path fill="currentColor" d="M10 4a6 6 0 1 0 0 12 6 6 0 0 0 0-12Zm-8 6a8 8 0 1 1 14.32 4.906l5.387 5.387a1 1 0 0 1-1.414 1.414l-5.387-5.387A8 8 0 0 1 2 10Z"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="shield" fill="none" viewBox="0 0 25 24"><path fill="currentColor" d="M12.123 2.034 5.092 5.035a.967.967 0 0 0-.594.906c0 4.38.175 6.34.969 8.597 1.039 2.955 3.079 5.31 6.53 7.283.308.176.694.176 1 0 3.484-1.99 5.533-4.338 6.563-7.283.784-2.24.938-4.105.938-8.597a.973.973 0 0 0-.594-.906l-6.969-3a1.06 1.06 0 0 0-.812 0Zm.375 1.97 5.996 2.602c.087 7.175-1.32 10.32-5.987 13.181-4.79-2.979-6.061-6.158-6.012-13.173 1.363-.582 4.85-2.119 6.003-2.61Z"/><path fill="currentColor" d="M6.495 6.614c-.05 7.015 1.223 10.194 6.012 13.173l-.01-15.784c-1.152.492-4.64 2.03-6.002 2.611Z"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="showEye" fill="none" viewBox="0 0 20 14"><path fill="currentColor" d="M13 7a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"/><path fill="currentColor" d="M19.894 6.553C17.736 2.236 13.904 0 10 0 6.097 0 2.264 2.236.106 6.553a1 1 0 0 0 0 .894C2.264 11.764 6.096 14 10 14c3.903 0 7.736-2.236 9.894-6.553a1 1 0 0 0 0-.894ZM10 12c-2.969 0-6.002-1.62-7.87-5C3.998 3.62 7.03 2 10 2c2.969 0 6.002 1.62 7.87 5-1.868 3.38-4.901 5-7.87 5Z"/></symbol></svg>
@@ -1 +0,0 @@
1
- <svg width="0" height="0"><symbol xmlns="http://www.w3.org/2000/svg" id="helpCircle" fill="none" viewBox="0 0 12 12"><path fill="currentColor" fill-rule="evenodd" d="M6 .667a5.333 5.333 0 1 0 0 10.666A5.333 5.333 0 0 0 6 .667ZM5.466 6c0-.295.24-.533.534-.533.357 0 .632-.063.804-.177.133-.09.262-.245.262-.623 0-.33-.112-.535-.251-.665a.952.952 0 0 0-.607-.236c-.51-.024-.939.26-1.015.722a.533.533 0 0 1-1.053-.176c.19-1.139 1.23-1.654 2.12-1.611a2.01 2.01 0 0 1 1.284.522c.37.345.59.84.59 1.444 0 .688-.27 1.2-.737 1.51-.265.177-.567.27-.863.317v.04a.533.533 0 1 1-1.067 0V6ZM5.2 8.4a.8.8 0 1 1 1.6 0 .8.8 0 0 1-1.6 0Z" clip-rule="evenodd"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="warningCircle" fill="none" viewBox="0 0 20 20"><path fill="currentColor" d="M10 2a8 8 0 1 0 0 16 8 8 0 0 0 0-16ZM0 10C0 4.477 4.477 0 10 0s10 4.477 10 10-4.477 10-10 10S0 15.523 0 10Z"/><path fill="currentColor" d="M10 12a1 1 0 0 1-1-1V5a1 1 0 0 1 2 0v6a1 1 0 0 1-1 1Zm-1.5 2.5a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0Z"/></symbol></svg>
@@ -1 +0,0 @@
1
- <svg width="0" height="0"><symbol xmlns="http://www.w3.org/2000/svg" id="beeline" fill="none" viewBox="0 0 32 32"><rect width="32" height="32" fill="#fff" rx="16"/><g clip-path="url(#a)"><path fill="#FFC800" d="M15.998 30.663c8.098 0 14.662-6.566 14.662-14.665S24.096 1.333 15.998 1.333 1.336 7.9 1.336 15.998c0 8.1 6.564 14.665 14.662 14.665Z"/><path fill="#292929" d="M22.308 26.924c-4.98 2.874-10.38 3.39-13.83 1.668 4.417 2.632 10.087 2.86 14.853.108a14.67 14.67 0 0 0 7.335-12.92c-.234 3.849-3.379 8.27-8.358 11.144Zm-4.45-24.515c1.009 1.747-1.43 5.048-5.452 7.366-4.021 2.32-8.096 2.786-9.106 1.036a1.603 1.603 0 0 1-.11-.267c-.262-.814.05-1.867.804-2.977a14.575 14.575 0 0 1 4.672-4.27 14.59 14.59 0 0 1 6.035-1.91c1.337-.1 2.403.157 2.977.789.069.076.128.153.18.233Z"/><path fill="#292929" d="M24.091 4.301c1.763 3.053-1.794 8.405-7.943 11.956C10 19.808 3.585 20.212 1.825 17.16a3.72 3.72 0 0 1-.481-1.684 14.52 14.52 0 0 0 1.496 6.997l.02.037c.531.919 1.316 1.641 2.295 2.165 3.449 1.846 9.282 1.212 14.736-1.938 5.451-3.15 8.918-7.882 9.046-11.791.037-1.104-.194-2.143-.72-3.062A14.565 14.565 0 0 0 22.9 3.057a3.686 3.686 0 0 1 1.195 1.25L24.09 4.3Z"/><path fill="url(#b)" d="M16 30.663c8.099 0 14.663-6.566 14.663-14.665S24.1 1.333 16.001 1.333 1.339 7.9 1.339 15.998c0 8.1 6.564 14.665 14.662 14.665Z"/></g><defs><radialGradient id="b" cx="0" cy="0" r="1" gradientTransform="matrix(14.6619 0 0 14.6703 16 16)" gradientUnits="userSpaceOnUse"><stop offset=".5" stop-color="#fff" stop-opacity="0"/><stop offset="1" stop-color="#fff" stop-opacity=".35"/></radialGradient><clipPath id="a"><path fill="#fff" d="M1.334 1.333h29.333v29.333H1.334z"/></clipPath></defs></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="megafon" fill="none" viewBox="0 0 32 32"><g clip-path="url(#a)"><rect width="32" height="32" fill="#fff" rx="16"/><g fill="#00B956" clip-path="url(#b)"><path d="M17.976 1.056v15.473c0 .723-.556 1.224-1.224 1.224h-1.837c-.111 0-.167.112-.167.167v12.97c.445 0 .89.111 1.392.111 8.293 0 15.027-6.735 15.027-15.028 0-7.625-5.733-14.026-13.19-14.916Zm-.334 23.154c-1.057 0-1.836-.89-1.836-1.837 0-1.058.89-1.837 1.836-1.837 1.058 0 1.837.89 1.837 1.837.111 1.002-.78 1.837-1.837 1.837Zm4.397 0c-1.057 0-1.836-.89-1.836-1.837 0-1.058.89-1.837 1.836-1.837 1.058 0 1.837.89 1.837 1.837 0 .946-.724 1.837-1.837 1.837Zm4.453 0c-1.058 0-1.837-.89-1.837-1.837 0-1.058.89-1.837 1.837-1.837 1.057 0 1.837.89 1.837 1.837 0 .946-.78 1.837-1.837 1.837Z"/><path d="M16.14 1C7.845 1 1.111 7.735 1.111 16.028c0 7.291 5.065 13.247 11.855 14.638V17.141c0-.612.556-1.113 1.113-1.224h1.838c.111 0 .167-.112.167-.168L16.139 1Zm-2.895 12.356c-1.057 0-1.837-.89-1.837-1.836 0-1.058.891-1.837 1.837-1.837 1.058 0 1.837.89 1.837 1.837 0 .946-.835 1.836-1.837 1.836Z"/></g></g></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="mts" fill="none" viewBox="0 0 32 32"><g clip-path="url(#a)"><rect width="32" height="32" fill="#fff" rx="16"/><rect width="29.333" height="29.333" x="1.333" y="1.333" fill="#FF0032" rx="14.667"/><g mask="url(#b)"><path fill="#FF0032" d="M26.079 6H6v20.078h20.08V6Z"/><path fill="#fff" d="M19.774 7.573v.953h2.084v3.824h1.165V8.526h2.08v-.953h-5.329Zm-7.491 0-1.525 3.16-1.52-3.16H7.573v4.777h1.17V8.932l1.486 2.889h1.063l1.486-2.889v3.418h1.165V7.573h-1.66Zm11.655 15.928a.798.798 0 0 1-.23.466.991.991 0 0 1-.465.237c-.19.043-.474.068-.77.068-.31 0-.581-.038-.814-.118a.998.998 0 0 1-.525-.398c-.127-.187-.19-.458-.19-.81v-.487c0-.347.063-.618.19-.808.127-.187.3-.322.525-.398a2.46 2.46 0 0 1 .813-.12c.297 0 .58.026.77.069a.955.955 0 0 1 .467.237.798.798 0 0 1 .229.466h1.164a1.716 1.716 0 0 0-.398-1c-.212-.245-.508-.423-.877-.533-.355-.106-.826-.161-1.355-.161-.559 0-1.042.08-1.44.237-.402.16-.716.428-.932.796-.207.352-.313.826-.321 1.402v.055l.063.004-.063.004v.055c.008.576.114 1.05.321 1.402.216.369.53.636.932.796.398.157.881.238 1.44.238.53 0 1-.055 1.355-.161.369-.11.661-.288.877-.534.233-.267.369-.605.398-1h-1.165v-.004Z"/></g></g></symbol></svg>
@@ -1 +0,0 @@
1
- <svg width="0" height="0"><symbol xmlns="http://www.w3.org/2000/svg" id="classmates" fill="none" viewBox="0 0 9 15"><path fill="currentColor" fill-rule="evenodd" d="M7.982 3.811c0 1.933-1.64 3.503-3.65 3.503S.682 5.744.682 3.811C.682 1.871 2.322.3 4.332.3s3.65 1.57 3.65 3.511Zm-1.858 0c0-.958-.805-1.732-1.792-1.732-.988 0-1.793.774-1.793 1.732 0 .95.806 1.724 1.793 1.724.987 0 1.792-.774 1.792-1.724ZM1.093 9.338C.176 8.77-.227 8.437.128 7.741c.208-.395.779-.729 1.535-.155 0 0 1.021.783 2.67.783 1.648 0 2.67-.783 2.67-.783.757-.57 1.325-.24 1.536.155.349.696-.053 1.028-.97 1.6-.77.471-1.832.658-2.532.728l1.528 1.465 1.208 1.159c.785.774-.493 1.984-1.286 1.236-.529-.516-1.3-1.258-2.107-2.035l-.04-.039-2.148 2.071C1.4 14.671.122 13.45.915 12.69l2.727-2.624c-.005.005-.099.095 0 0-.692-.07-1.77-.246-2.55-.728Z" clip-rule="evenodd"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="telegram" fill="none" viewBox="0 0 15 13"><path fill="currentColor" d="M.882 5.418 13.337.616c.578-.209 1.082.141.895 1.015h.001l-2.12 9.99c-.157.708-.578.88-1.167.546l-3.23-2.38-1.557 1.5c-.172.173-.317.318-.651.318l.23-3.286 5.984-5.407c.26-.23-.058-.358-.402-.13L3.924 7.439.736 6.444c-.692-.22-.707-.692.146-1.026Z"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="vk" fill="none" viewBox="0 0 16 9"><path fill="currentColor" fill-rule="evenodd" d="M14.28 6.942c.365.373 1.16 1 1.015 1.637-.133.585-1.006.371-1.854.405-.968.041-1.542.062-2.124-.405-.274-.222-.435-.485-.698-.779-.239-.266-.54-.742-.95-.723-.736.036-.505 1.062-.767 1.762-4.092.644-5.735-1.884-7.185-4.337C1.015 3.314 0 .762 0 .762l2.894-.01s.928 1.688 1.174 2.124c.21.37.44.664.677.994.2.275.514.811.86.768.56-.072.662-2.248.314-2.978-.138-.295-.47-.398-.814-.498C5.221.43 8.351.277 8.857.845c.735.825-.509 3.123.498 3.793 1.413-.74 2.62-3.841 2.62-3.841l3.388.021s-.53 1.676-1.085 2.42c-.324.435-1.398 1.404-1.356 2.123.034.57.908 1.124 1.357 1.581Z" clip-rule="evenodd"/></symbol></svg>
@@ -1 +0,0 @@
1
- <svg width="0" height="0"><symbol xmlns="http://www.w3.org/2000/svg" id="badSmile" fill="none" viewBox="0 0 30 30"><path fill="currentColor" fill-rule="evenodd" d="M15 3.533C8.666 3.533 3.532 8.667 3.532 15s5.134 11.467 11.466 11.467c6.333 0 11.467-5.134 11.467-11.467S21.332 3.533 15 3.533ZM.865 15C.866 7.194 7.194.867 15 .867 22.805.867 29.133 7.194 29.133 15c0 7.806-6.328 14.133-14.133 14.133C7.193 29.133.865 22.806.865 15Zm8.96-3.84c0-.736.597-1.333 1.333-1.333h.128c.736 0 1.333.597 1.333 1.333v.102c0 .737-.597 1.334-1.333 1.334h-.128a1.333 1.333 0 0 1-1.333-1.334v-.102Zm7.68 0c0-.736.597-1.333 1.334-1.333h.113c.736 0 1.333.597 1.333 1.333v.102c0 .737-.597 1.334-1.333 1.334h-.113a1.333 1.333 0 0 1-1.334-1.334v-.102ZM15 19.538c-1.373 0-2.596.735-3.303 1.877a1.334 1.334 0 0 1-2.268-1.404c1.16-1.873 3.213-3.14 5.571-3.14 2.359 0 4.412 1.267 5.571 3.14a1.333 1.333 0 1 1-2.267 1.404c-.707-1.142-1.93-1.877-3.304-1.877Z" clip-rule="evenodd"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="iconMark" fill="none" viewBox="0 0 24 20"><path fill="currentColor" d="M23.552 1.003c.55.49.6 1.332.111 1.883l-14.222 16a1.333 1.333 0 0 1-1.993 0l-7.111-8A1.333 1.333 0 0 1 2.33 9.114l6.114 6.879L21.67 1.114c.49-.55 1.332-.6 1.882-.11Z"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="iconRetry" fill="none" viewBox="0 0 24 24"><path fill="currentColor" fill-rule="evenodd" d="M19.072 6.667h-1.577a1.333 1.333 0 0 0 0 2.666h5.172C23.403 9.333 24 8.736 24 8V2.667a1.333 1.333 0 0 0-2.667 0V5.25C19.24 2.094 15.705 0 11.677 0 5.189 0 0 5.412 0 12s5.19 12 11.677 12c5.203 0 9.577-3.488 11.099-8.262a1.333 1.333 0 0 0-2.541-.81c-1.194 3.744-4.594 6.405-8.558 6.405-4.938 0-9.01-4.14-9.01-9.333 0-5.194 4.072-9.333 9.01-9.333 3.048 0 5.759 1.57 7.395 4Z" clip-rule="evenodd"/></symbol><symbol xmlns="http://www.w3.org/2000/svg" id="iconUser" fill="none" viewBox="0 0 24 28"><path fill="currentColor" d="M12 3.333A5.333 5.333 0 1 0 12 14a5.333 5.333 0 0 0 0-10.667ZM4 8.667a8 8 0 1 1 16 0 8 8 0 0 1-16 0ZM6.667 22a4 4 0 0 0-4 4A1.333 1.333 0 0 1 0 26a6.667 6.667 0 0 1 6.667-6.667h10.666A6.667 6.667 0 0 1 24 26a1.333 1.333 0 0 1-2.667 0 4 4 0 0 0-4-4H6.667Z"/></symbol></svg>