@scbt-ecom/ui 0.102.1 → 0.103.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.
@@ -1,2 +1,2 @@
1
- import"react/jsx-runtime";import{TypeGuards as r}from"../../utils/typeGuards.js";import"../../ui/button/Button.js";import"../../ui/buttonIcon/ButtonIcon.js";import"../../ui/calendar/Calendar.js";import{formatDateToLocaleString as E}from"../../ui/calendar/model/utils.js";import"../../ui/accordion/Accordion.js";import"react";import"react-dom";import"../../ui/modal/ui/IframeModalContent.js";import"../../../../node_modules/react-hot-toast/dist/index.js";import"../../ui/table/ui/primitives/Primitives.js";import"../../ui/carousel/ui/CarouselContent.js";import"../../ui/slot/Slot.js";import"../../ui/formElements/uncontrolled/autocomplete/Autocomplete.js";import"../../ui/formElements/uncontrolled/checkbox/Checkbox.js";import"../../ui/formElements/uncontrolled/combobox/combobox.js";import"../../ui/formElements/uncontrolled/dayPicker/DayPicker.js";import"../../ui/formElements/uncontrolled/input/Input.js";import"../../ui/formElements/uncontrolled/inputOtp/InputOtpBase.js";import"../../ui/formElements/uncontrolled/maskInput/MaskInput.js";import"../../ui/formElements/uncontrolled/radio/RadioGroup.js";import"../../ui/formElements/uncontrolled/radio/ui/RadioItem.js";import"../../ui/formElements/uncontrolled/slider/SliderBase.js";import"../../ui/formElements/uncontrolled/switch/Switch.js";import"../../ui/formElements/uncontrolled/textarea/Textarea.js";import"../../ui/formElements/uncontrolled/uploader/UploaderBase.js";import"../../ui/formElements/controlled/editor/ui/Editor.js";import"../../ui/formElements/controlled/input/MaskInputControl.js";import"../../ui/dropdownList/ui/dropdownItem/DropdownItem.js";const f={NON_EMPTY:()=>"Поле не может быть пустым",MIN_LENGTH:t=>`Поле должно содержать минимум символов: ${t}`,MAX_LENGTH:t=>`Поле должно содержать максимум символов: ${t}`,FIX_LENGTH:t=>`Поле должно быть фиксированной длины символов: ${t}`,MIN_VALUE:t=>`Значение не может быть меньше чем ${t}`,MAX_VALUE:t=>`Значение не может быть больше чем ${t}`,PHONE_NON_EMPTY:()=>"Номер телефона должен состоять из 11 цифр",PHONE_INVALID_OPERATOR:()=>"Код города/оператора должен начинаться с цифры 3, 4, 5, 6 или 9",EMAIL_INVALID:()=>"Email введен некорректно. Пример: example@domain.ru",EMAIL_NON_EMPTY:()=>"Введите адрес электронной почты",SELECT_NON_EMPTY:()=>"Выберите один из вариантов",SELECT_MULTIPLE_MIN_LENGTH:t=>`Выберите не менее ${t} вариантов`,SELECT_MULTIPLE_MAX_LENGTH:t=>`Выберите не более ${t} вариантов`,SELECT_FIX_LENGTH:t=>`Поле должно быть фиксированного количества вариантов: ${t}`,DATE_INVALID_FORMAT:()=>"Дата указана некорректно",DATE_NON_EMPTY:()=>"Укажите дату",VALUE_OUT_OF_RANGE:t=>`Выберите один из вариантов ${t.join(", ")}`,DATE_MIN:t=>{const o=r.isString(t)?new Date(t):t;return`Выбранная дата должна быть не раньше ${E(o)}`},DATE_MAX:t=>{const o=r.isString(t)?new Date(t):t;return`Выбранная дата должна быть не позже ${E(o)}`},INVALID_REGEX_STRING:()=>"Поле не соответствует требованиям",INVALID_URL:()=>"Ссылка введена некорректно. Пример: https://example.com, example.com"};export{f as baseDefaultMessages};
1
+ import"react/jsx-runtime";import{TypeGuards as o}from"../../utils/typeGuards.js";import"../../ui/button/Button.js";import"../../ui/buttonIcon/ButtonIcon.js";import"../../ui/calendar/Calendar.js";import{formatDateToLocaleString as r}from"../../ui/calendar/model/utils.js";import"../../ui/accordion/Accordion.js";import"react";import"react-dom";import"../../ui/modal/ui/IframeModalContent.js";import"../../../../node_modules/react-hot-toast/dist/index.js";import"../../ui/table/ui/primitives/Primitives.js";import"../../ui/carousel/ui/CarouselContent.js";import"../../ui/slot/Slot.js";import"../../ui/formElements/uncontrolled/autocomplete/Autocomplete.js";import"../../ui/formElements/uncontrolled/checkbox/Checkbox.js";import"../../ui/formElements/uncontrolled/combobox/combobox.js";import"../../ui/formElements/uncontrolled/dayPicker/DayPicker.js";import"../../ui/formElements/uncontrolled/input/Input.js";import"../../ui/formElements/uncontrolled/inputOtp/InputOtpBase.js";import"../../ui/formElements/uncontrolled/maskInput/MaskInput.js";import"../../ui/formElements/uncontrolled/radio/RadioGroup.js";import"../../ui/formElements/uncontrolled/radio/ui/RadioItem.js";import"../../ui/formElements/uncontrolled/slider/SliderBase.js";import"../../ui/formElements/uncontrolled/switch/Switch.js";import"../../ui/formElements/uncontrolled/textarea/Textarea.js";import"../../ui/formElements/uncontrolled/uploader/UploaderBase.js";import"../../ui/formElements/controlled/editor/ui/Editor.js";import"../../ui/formElements/controlled/input/MaskInputControl.js";import"../../ui/dropdownList/ui/dropdownItem/DropdownItem.js";const f={NON_EMPTY:()=>"Поле не может быть пустым",MIN_LENGTH:t=>`Поле должно содержать минимум символов: ${t}`,MAX_LENGTH:t=>`Поле должно содержать максимум символов: ${t}`,FIX_LENGTH:t=>`Поле должно быть фиксированной длины символов: ${t}`,MIN_VALUE:t=>`Значение не может быть меньше чем ${t}`,MAX_VALUE:t=>`Значение не может быть больше чем ${t}`,PHONE_NON_EMPTY:()=>"Номер телефона должен состоять из 11 цифр",PHONE_INVALID_OPERATOR:()=>"Код города/оператора должен начинаться с цифры 3, 4, 5, 6 или 9",EMAIL_INVALID:()=>"Email введен некорректно. Пример: example@domain.ru",EMAIL_NON_EMPTY:()=>"Введите адрес электронной почты",SELECT_NON_EMPTY:()=>"Выберите один из вариантов",SELECT_MULTIPLE_MIN_LENGTH:t=>`Выберите не менее ${t} вариантов`,SELECT_MULTIPLE_MAX_LENGTH:t=>`Выберите не более ${t} вариантов`,SELECT_FIX_LENGTH:t=>`Поле должно быть фиксированного количества вариантов: ${t}`,DATE_INVALID_FORMAT:()=>"Дата указана некорректно",DATE_NON_EMPTY:()=>"Укажите дату",VALUE_OUT_OF_RANGE:t=>`Выберите один из вариантов ${t.join(", ")}`,DATE_MIN:t=>{const _=o.isString(t)?new Date(t):t;return`Выбранная дата должна быть не раньше ${r(_)}`},DATE_MAX:t=>{const _=o.isString(t)?new Date(t):t;return`Выбранная дата должна быть не позже ${r(_)}`},INVALID_REGEX_STRING:()=>"Поле не соответствует требованиям",INVALID_URL:()=>"Ссылка введена некорректно. Пример: https://example.com, example.com",PASSPORT_INVALID_TYPE:()=>"Паспортные данные введены некорректно",PASSPORT_NON_EMPTY:()=>"Паспортные данные не могут быть пустыми",PASSPORT_PART_OR_NUMBER_NON_EMPTY:()=>"Серия или номер паспорта не могут быть пустыми",INVALID_PASSPORT_PART:()=>"Серия паспорта введена некорректно",INVALID_PASSPORT_NUMBER:()=>"Номер паспорта введен некорректно"};export{f as baseDefaultMessages};
2
2
  //# sourceMappingURL=base.constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.constants.js","sources":["../../../../../lib/shared/validation/base/base.constants.ts"],"sourcesContent":["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"],"names":["baseDefaultMessages","min","max","length","range","date","TypeGuards","formatDateToLocaleString"],"mappings":"+kDAIO,MAAMA,EAAsB,CACjC,UAAW,IAAM,4BACjB,WAAaC,GAAgB,2CAA2CA,CAAG,GAC3E,WAAaC,GAAgB,4CAA4CA,CAAG,GAC5E,WAAaC,GAAmB,kDAAkDA,CAAM,GACxF,UAAYF,GAAgB,qCAAqCA,CAAG,GACpE,UAAYC,GAAgB,qCAAqCA,CAAG,GACpE,gBAAiB,IAAM,4CACvB,uBAAwB,IAAM,kEAC9B,cAAe,IAAM,sDACrB,gBAAiB,IAAM,kCACvB,iBAAkB,IAAM,6BACxB,2BAA6BC,GAAmB,qBAAqBA,CAAM,aAC3E,2BAA6BA,GAAmB,qBAAqBA,CAAM,aAC3E,kBAAoBA,GAAmB,yDAAyDA,CAAM,GACtG,oBAAqB,IAAM,2BAC3B,eAAgB,IAAM,eACtB,mBAA0CC,GAAe,8BAA8BA,EAAM,KAAK,IAAI,CAAC,GACvG,SAAWH,GAAuB,CAChC,MAAMI,EAAOC,EAAW,SAASL,CAAG,EAAI,IAAI,KAAKA,CAAG,EAAIA,EAExD,MAAO,wCAAwCM,EAAyBF,CAAI,CAAC,EAC/E,EACA,SAAWH,GAAuB,CAChC,MAAMG,EAAOC,EAAW,SAASJ,CAAG,EAAI,IAAI,KAAKA,CAAG,EAAIA,EAExD,MAAO,uCAAuCK,EAAyBF,CAAI,CAAC,EAC9E,EACA,qBAAsB,IAAM,oCAC5B,YAAa,IAAM,sEACrB"}
1
+ {"version":3,"file":"base.constants.js","sources":["../../../../../lib/shared/validation/base/base.constants.ts"],"sourcesContent":["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 PASSPORT_INVALID_TYPE: () => 'Паспортные данные введены некорректно',\n PASSPORT_NON_EMPTY: () => 'Паспортные данные не могут быть пустыми',\n PASSPORT_PART_OR_NUMBER_NON_EMPTY: () => 'Серия или номер паспорта не могут быть пустыми',\n INVALID_PASSPORT_PART: () => 'Серия паспорта введена некорректно',\n INVALID_PASSPORT_NUMBER: () => 'Номер паспорта введен некорректно'\n}\n"],"names":["baseDefaultMessages","min","max","length","range","date","TypeGuards","formatDateToLocaleString"],"mappings":"+kDAIO,MAAMA,EAAsB,CACjC,UAAW,IAAM,4BACjB,WAAaC,GAAgB,2CAA2CA,CAAG,GAC3E,WAAaC,GAAgB,4CAA4CA,CAAG,GAC5E,WAAaC,GAAmB,kDAAkDA,CAAM,GACxF,UAAYF,GAAgB,qCAAqCA,CAAG,GACpE,UAAYC,GAAgB,qCAAqCA,CAAG,GACpE,gBAAiB,IAAM,4CACvB,uBAAwB,IAAM,kEAC9B,cAAe,IAAM,sDACrB,gBAAiB,IAAM,kCACvB,iBAAkB,IAAM,6BACxB,2BAA6BC,GAAmB,qBAAqBA,CAAM,aAC3E,2BAA6BA,GAAmB,qBAAqBA,CAAM,aAC3E,kBAAoBA,GAAmB,yDAAyDA,CAAM,GACtG,oBAAqB,IAAM,2BAC3B,eAAgB,IAAM,eACtB,mBAA0CC,GAAe,8BAA8BA,EAAM,KAAK,IAAI,CAAC,GACvG,SAAWH,GAAuB,CAChC,MAAMI,EAAOC,EAAW,SAASL,CAAG,EAAI,IAAI,KAAKA,CAAG,EAAIA,EAExD,MAAO,wCAAwCM,EAAyBF,CAAI,CAAC,EAC/E,EACA,SAAWH,GAAuB,CAChC,MAAMG,EAAOC,EAAW,SAASJ,CAAG,EAAI,IAAI,KAAKA,CAAG,EAAIA,EAExD,MAAO,uCAAuCK,EAAyBF,CAAI,CAAC,EAC9E,EACA,qBAAsB,IAAM,oCAC5B,YAAa,IAAM,uEACnB,sBAAuB,IAAM,wCAC7B,mBAAoB,IAAM,0CAC1B,kCAAmC,IAAM,iDACzC,sBAAuB,IAAM,qCAC7B,wBAAyB,IAAM,mCACjC"}
@@ -1,2 +1,2 @@
1
- import{getBooleanSchema as m}from"./boolean.validators.js";import{getDateSchema as e}from"./date.validators.js";import{getEmailSchema as o}from"./email.validators.js";import{getNumberSchema as t}from"./number.validators.js";import{getPhoneSchema as r}from"./phone.validators.js";import{getRegexSchema as a}from"./regex.validators.js";import{getSelectSchema as i}from"./select.validators.js";import{getStringSchema as c}from"./string.validators.js";import{getUnionSchema as S}from"./union.validators.js";import{getUrlSchema as g}from"./url.validators.js";const u={getStringSchema:c,getEmailSchema:o,getSelectSchema:i,getNumberSchema:t,getPhoneSchema:r,getDateSchema:e,getUnionSchema:S,getUrlSchema:g,getRegexSchema:a,getBooleanSchema:m};export{u as baseValidationSchemas};
1
+ import{getBooleanSchema as m}from"./boolean.validators.js";import{getDateSchema as e}from"./date.validators.js";import{getEmailSchema as o}from"./email.validators.js";import{getNumberSchema as t}from"./number.validators.js";import{getPassportSchema as r}from"./passport.validators.js";import{getPhoneSchema as a}from"./phone.validators.js";import{getRegexSchema as i}from"./regex.validators.js";import{getSelectSchema as c}from"./select.validators.js";import{getStringSchema as S}from"./string.validators.js";import{getUnionSchema as g}from"./union.validators.js";import{getUrlSchema as h}from"./url.validators.js";const B={getStringSchema:S,getEmailSchema:o,getSelectSchema:c,getNumberSchema:t,getPhoneSchema:a,getDateSchema:e,getUnionSchema:g,getUrlSchema:h,getRegexSchema:i,getBooleanSchema:m,getPassportSchema:r};export{B as baseValidationSchemas};
2
2
  //# sourceMappingURL=base.validators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.validators.js","sources":["../../../../../lib/shared/validation/base/base.validators.ts"],"sourcesContent":["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"],"names":["baseValidationSchemas","getStringSchema","getEmailSchema","getSelectSchema","getNumberSchema","getPhoneSchema","getDateSchema","getUnionSchema","getUrlSchema","getRegexSchema","getBooleanSchema"],"mappings":"0iBAWO,MAAMA,EAAwB,CACnC,gBAAAC,EACA,eAAAC,EACA,gBAAAC,EACA,gBAAAC,EACA,eAAAC,EACA,cAAAC,EACA,eAAAC,EACA,aAAAC,EACA,eAAAC,EACA,iBAAAC,CACF"}
1
+ {"version":3,"file":"base.validators.js","sources":["../../../../../lib/shared/validation/base/base.validators.ts"],"sourcesContent":["import { getBooleanSchema } from './boolean.validators'\nimport { getDateSchema } from './date.validators'\nimport { getEmailSchema } from './email.validators'\nimport { getNumberSchema } from './number.validators'\nimport { getPassportSchema } from './passport.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 getPassportSchema\n}\n"],"names":["baseValidationSchemas","getStringSchema","getEmailSchema","getSelectSchema","getNumberSchema","getPhoneSchema","getDateSchema","getUnionSchema","getUrlSchema","getRegexSchema","getBooleanSchema","getPassportSchema"],"mappings":"umBAYO,MAAMA,EAAwB,CACnC,gBAAAC,EACA,eAAAC,EACA,gBAAAC,EACA,gBAAAC,EACA,eAAAC,EACA,cAAAC,EACA,eAAAC,EACA,aAAAC,EACA,eAAAC,EACA,iBAAAC,EACA,kBAAAC,CACF"}
@@ -0,0 +1,2 @@
1
+ import*as I from"../../../../node_modules/zod/v3/external.js";import{baseDefaultMessages as e}from"./base.constants.js";import{ZodIssueCode as t}from"../../../../node_modules/zod/v3/ZodError.js";const A=["01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","59","60","61","62","63","64","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","91","92","93","94","95","96","97","98","99"],R=o=>{const{defaultValue:m,message:P}=o||{},{root:d,empty:n,invalidPart:u,invalidNumber:i}=P||{},l=new Date;return I.string({message:d??e.PASSPORT_INVALID_TYPE()}).nonempty(n??e.PASSPORT_NON_EMPTY()).superRefine((_,s)=>{const[r,c]=_.replace(/_/g,"").split(" ");if(!r.length||!c.length)return s.addIssue({code:t.custom,message:n??e.PASSPORT_PART_OR_NUMBER_NON_EMPTY()});if(/^0{2,4}/.test(r))return s.addIssue({code:t.custom,message:u??e.INVALID_PASSPORT_PART()});const a=parseInt(r.slice(2,4),10),g=l.getFullYear().toString().slice(2,4);if(!(a>=97&&a<=99)&&!(a>=0&&a<=Number(g)))return s.addIssue({code:t.custom,message:u??e.INVALID_PASSPORT_PART()});if(!A.includes(r.slice(0,2)))return s.addIssue({code:t.custom,message:u??e.INVALID_PASSPORT_PART()});if(Number(c.replace(/^0+/g,""))<101)return s.addIssue({code:t.custom,message:i??e.INVALID_PASSPORT_NUMBER()})}).default(m??"")};function T(o){return R(o)}export{T as getPassportSchema};
2
+ //# sourceMappingURL=passport.validators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passport.validators.js","sources":["../../../../../lib/shared/validation/base/passport.validators.ts"],"sourcesContent":["import z, { ZodIssueCode } from 'zod'\nimport { baseDefaultMessages } from './base.constants'\n\nconst okato = [\n '01',\n '02',\n '03',\n '04',\n '05',\n '06',\n '07',\n '08',\n '09',\n '10',\n '11',\n '12',\n '13',\n '14',\n '15',\n '16',\n '17',\n '18',\n '19',\n '20',\n '21',\n '22',\n '23',\n '24',\n '25',\n '26',\n '27',\n '28',\n '29',\n '30',\n '31',\n '32',\n '33',\n '34',\n '35',\n '36',\n '37',\n '38',\n '39',\n '40',\n '41',\n '42',\n '43',\n '44',\n '45',\n '46',\n '47',\n '48',\n '49',\n '50',\n '51',\n '52',\n '53',\n '54',\n '55',\n '56',\n '57',\n '58',\n '59',\n '60',\n '61',\n '62',\n '63',\n '64',\n '65',\n '66',\n '67',\n '68',\n '69',\n '70',\n '71',\n '72',\n '73',\n '74',\n '75',\n '76',\n '77',\n '78',\n '79',\n '80',\n '81',\n '82',\n '83',\n '84',\n '85',\n '86',\n '87',\n '88',\n '89',\n '90',\n '91',\n '92',\n '93',\n '94',\n '95',\n '96',\n '97',\n '98',\n '99'\n]\n\nexport type PassportValidationOptions = {\n /**\n * значение по умолчанию\n * @default undefined\n */\n defaultValue?: string\n message?: Partial<Record<'empty' | 'root' | 'invalidPart' | 'invalidNumber', string>>\n}\n\n/**\n * Схема валидации обязательного поля паспорта\n */\nconst getPassportRequired = (props?: PassportValidationOptions) => {\n const { defaultValue, message } = props || {}\n const { root, empty, invalidPart, invalidNumber } = message || {}\n\n const currentDate = new Date()\n\n const schema = z\n .string({ message: root ?? baseDefaultMessages.PASSPORT_INVALID_TYPE() })\n .nonempty(empty ?? baseDefaultMessages.PASSPORT_NON_EMPTY())\n .superRefine((value, context) => {\n const [part, number] = value.replace(/_/g, '').split(' ')\n\n // паспорт должен содержать серию и номер\n if (!part.length || !number.length) {\n return context.addIssue({\n code: ZodIssueCode.custom,\n message: empty ?? baseDefaultMessages.PASSPORT_PART_OR_NUMBER_NON_EMPTY()\n })\n }\n\n // серия паспорта не может начинаться с нуля или иметь более 2 нулей подряд\n if (/^0{2,4}/.test(part)) {\n return context.addIssue({\n code: ZodIssueCode.custom,\n message: invalidPart ?? baseDefaultMessages.INVALID_PASSPORT_PART()\n })\n }\n\n // год выпуска паспорта должен быть в диапазоне 97-99 или 00 по настоящий год\n const year = parseInt(part.slice(2, 4), 10)\n const currentYear = currentDate.getFullYear().toString().slice(2, 4)\n if (!(year >= 97 && year <= 99) && !(year >= 0 && year <= Number(currentYear))) {\n return context.addIssue({\n code: ZodIssueCode.custom,\n message: invalidPart ?? baseDefaultMessages.INVALID_PASSPORT_PART()\n })\n }\n\n // первые 2 цифры должны содержать валидный код ОКАТО и ОКТМО\n if (!okato.includes(part.slice(0, 2))) {\n return context.addIssue({\n code: ZodIssueCode.custom,\n message: invalidPart ?? baseDefaultMessages.INVALID_PASSPORT_PART()\n })\n }\n\n // номер паспорта не может быть меньше 000101\n if (Number(number.replace(/^0+/g, '')) < 101) {\n return context.addIssue({\n code: ZodIssueCode.custom,\n message: invalidNumber ?? baseDefaultMessages.INVALID_PASSPORT_NUMBER()\n })\n }\n })\n\n return schema.default(defaultValue ?? '')\n}\ntype PassportRequiredSchema = ReturnType<typeof getPassportRequired>\n\n/**\n * Схема валидации обязательного поля паспорта\n * @param {PassportValidationOptions} props настройки схемы\n * @typeParam `message` - `{ [root]: string }`\n * @returns схема валидации поля в соответствии с настройками\n *\n * @example with required min value\n * z.object({\n * field: zodValidators.base.getPassportSchema()\n * })\n * // will return z.string()\n */\nexport function getPassportSchema(props?: PassportValidationOptions): PassportRequiredSchema {\n return getPassportRequired(props)\n}\n"],"names":["okato","getPassportRequired","props","defaultValue","message","root","empty","invalidPart","invalidNumber","currentDate","z","baseDefaultMessages","value","context","part","number","ZodIssueCode","year","currentYear","getPassportSchema"],"mappings":"mMAGA,MAAMA,EAAQ,CACZ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACF,EAcMC,EAAuBC,GAAsC,CACjE,KAAM,CAAE,aAAAC,EAAc,QAAAC,CAAA,EAAYF,GAAS,CAAA,EACrC,CAAE,KAAAG,EAAM,MAAAC,EAAO,YAAAC,EAAa,cAAAC,CAAA,EAAkBJ,GAAW,CAAA,EAEzDK,MAAkB,KAmDxB,OAjDeC,EACZ,OAAO,CAAE,QAASL,GAAQM,EAAoB,uBAAsB,CAAG,EACvE,SAASL,GAASK,EAAoB,mBAAA,CAAoB,EAC1D,YAAY,CAACC,EAAOC,IAAY,CAC/B,KAAM,CAACC,EAAMC,CAAM,EAAIH,EAAM,QAAQ,KAAM,EAAE,EAAE,MAAM,GAAG,EAGxD,GAAI,CAACE,EAAK,QAAU,CAACC,EAAO,OAC1B,OAAOF,EAAQ,SAAS,CACtB,KAAMG,EAAa,OACnB,QAASV,GAASK,EAAoB,kCAAA,CAAkC,CACzE,EAIH,GAAI,UAAU,KAAKG,CAAI,EACrB,OAAOD,EAAQ,SAAS,CACtB,KAAMG,EAAa,OACnB,QAAST,GAAeI,EAAoB,sBAAA,CAAsB,CACnE,EAIH,MAAMM,EAAO,SAASH,EAAK,MAAM,EAAG,CAAC,EAAG,EAAE,EACpCI,EAAcT,EAAY,YAAA,EAAc,WAAW,MAAM,EAAG,CAAC,EACnE,GAAI,EAAEQ,GAAQ,IAAMA,GAAQ,KAAO,EAAEA,GAAQ,GAAKA,GAAQ,OAAOC,CAAW,GAC1E,OAAOL,EAAQ,SAAS,CACtB,KAAMG,EAAa,OACnB,QAAST,GAAeI,EAAoB,sBAAA,CAAsB,CACnE,EAIH,GAAI,CAACX,EAAM,SAASc,EAAK,MAAM,EAAG,CAAC,CAAC,EAClC,OAAOD,EAAQ,SAAS,CACtB,KAAMG,EAAa,OACnB,QAAST,GAAeI,EAAoB,sBAAA,CAAsB,CACnE,EAIH,GAAI,OAAOI,EAAO,QAAQ,OAAQ,EAAE,CAAC,EAAI,IACvC,OAAOF,EAAQ,SAAS,CACtB,KAAMG,EAAa,OACnB,QAASR,GAAiBG,EAAoB,wBAAA,CAAwB,CACvE,CAEL,CAAC,EAEW,QAAQR,GAAgB,EAAE,CAC1C,EAeO,SAASgB,EAAkBjB,EAA2D,CAC3F,OAAOD,EAAoBC,CAAK,CAClC"}