@scbt-ecom/ui 0.103.0 → 0.104.1

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{jsx as l}from"react/jsx-runtime";import"../../../Calendar.js";import{formatDateToYearString as h,formatDateToMonthString as f}from"../../../model/utils.js";import{cn as i}from"../../../../../utils/cn.js";import{motion as n}from"../../../../../../../node_modules/framer-motion/dist/es/render/components/motion/proxy.js";const v=({dates:c,selected:e,onSelect:p,className:s,mode:r,...m})=>l(n.ul,{...m,layout:!0,initial:{opacity:0,translateY:-20},animate:{opacity:1,translateY:8},exit:{opacity:0},className:i("customScrollbar-y absolute left-0 top-[50px] z-10 max-h-[280px] w-full translate-y-2 list-none overflow-y-scroll bg-color-white pr-1.5",s),children:c.map((t,u)=>{const o=new Date;r==="year"?o.setFullYear(t):o.setMonth(t);const y=r==="year"?h(o):f(o);return l(n.li,{initial:{opacity:0},animate:{opacity:1},children:l("button",{type:"button",onClick:()=>{const a=new Date(e.getTime());r==="year"?a.setFullYear(t):a.setMonth(t),p(a)},className:i("desk-body-regular-l h-10 w-full rounded-sm bg-color-white px-2 text-start","capitalize hover:bg-color-primary-tr-hover hover:text-color-primary-default",{"bg-color-primary-tr-hover text-color-primary-default":r==="month"?e.getMonth()===t:e.getFullYear()===t}),children:y})},u)})});export{v as SelectList};
1
+ import{jsx as l}from"react/jsx-runtime";import"../../../Calendar.js";import{formatDateToYearString as h,formatDateToMonthString as f}from"../../../model/utils.js";import{cn as i}from"../../../../../utils/cn.js";import{motion as n}from"../../../../../../../node_modules/framer-motion/dist/es/render/components/motion/proxy.js";const Y=({dates:c,selected:e,onSelect:s,className:p,mode:o,...m})=>l(n.ul,{...m,layout:!0,initial:{opacity:0,translateY:-20},animate:{opacity:1,translateY:8},exit:{opacity:0},className:i("customScrollbar-y absolute left-0 top-[50px] z-10 max-h-[280px] w-full translate-y-2 list-none overflow-y-scroll bg-color-white pr-1.5",p),children:c.map((t,u)=>{const r=new Date;r.setDate(1),o==="year"?r.setFullYear(t):r.setMonth(t);const y=o==="year"?h(r):f(r);return l(n.li,{initial:{opacity:0},animate:{opacity:1},children:l("button",{type:"button",onClick:()=>{const a=new Date(e.getTime());o==="year"?a.setFullYear(t):a.setMonth(t),s(a)},className:i("desk-body-regular-l h-10 w-full rounded-sm bg-color-white px-2 text-start","capitalize hover:bg-color-primary-tr-hover hover:text-color-primary-default",{"bg-color-primary-tr-hover text-color-primary-default":o==="month"?e.getMonth()===t:e.getFullYear()===t}),children:y})},u)})});export{Y as SelectList};
2
2
  //# sourceMappingURL=SelectList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectList.js","sources":["../../../../../../../../lib/shared/ui/calendar/ui/selectDate/ui/SelectList.tsx"],"sourcesContent":["import { type ComponentPropsWithoutRef } from 'react'\nimport { motion } from 'framer-motion'\nimport { formatDateToMonthString, formatDateToYearString } from '$/shared/ui/calendar'\nimport { cn } from '$/shared/utils'\n\ntype SelectListProps = Omit<ComponentPropsWithoutRef<typeof motion.ul>, 'onSelect'> & {\n dates: number[]\n selected: Date\n onSelect: (date: Date) => void\n mode: 'month' | 'year'\n}\n\nexport const SelectList = ({ dates, selected, onSelect, className, mode, ...props }: SelectListProps) => {\n return (\n <motion.ul\n {...props}\n layout\n initial={{ opacity: 0, translateY: -20 }}\n animate={{ opacity: 1, translateY: 8 }}\n exit={{ opacity: 0 }}\n className={cn(\n 'customScrollbar-y absolute left-0 top-[50px] z-10 max-h-[280px] w-full translate-y-2 list-none overflow-y-scroll bg-color-white pr-1.5',\n className\n )}\n >\n {dates.map((date, index) => {\n const d = new Date()\n\n if (mode === 'year') {\n d.setFullYear(date)\n } else {\n d.setMonth(date)\n }\n\n const label = mode === 'year' ? formatDateToYearString(d) : formatDateToMonthString(d)\n\n return (\n <motion.li key={index} initial={{ opacity: 0 }} animate={{ opacity: 1 }}>\n <button\n type='button'\n onClick={() => {\n const updatedDate = new Date(selected.getTime())\n\n if (mode === 'year') {\n updatedDate.setFullYear(date)\n } else {\n updatedDate.setMonth(date)\n }\n\n onSelect(updatedDate)\n }}\n className={cn(\n 'desk-body-regular-l h-10 w-full rounded-sm bg-color-white px-2 text-start',\n 'capitalize hover:bg-color-primary-tr-hover hover:text-color-primary-default',\n {\n 'bg-color-primary-tr-hover text-color-primary-default':\n mode === 'month' ? selected.getMonth() === date : selected.getFullYear() === date\n }\n )}\n >\n {label}\n </button>\n </motion.li>\n )\n })}\n </motion.ul>\n )\n}\n"],"names":["SelectList","dates","selected","onSelect","className","mode","props","jsx","motion","cn","date","index","d","label","formatDateToYearString","formatDateToMonthString","updatedDate"],"mappings":"sUAYO,MAAMA,EAAa,CAAC,CAAE,MAAAC,EAAO,SAAAC,EAAU,SAAAC,EAAU,UAAAC,EAAW,KAAAC,EAAM,GAAGC,KAExEC,EAACC,EAAO,GAAP,CACE,GAAGF,EACJ,OAAM,GACN,QAAS,CAAE,QAAS,EAAG,WAAY,GAAA,EACnC,QAAS,CAAE,QAAS,EAAG,WAAY,CAAA,EACnC,KAAM,CAAE,QAAS,CAAA,EACjB,UAAWG,EACT,yIACAL,CAAA,EAGD,SAAAH,EAAM,IAAI,CAACS,EAAMC,IAAU,CAC1B,MAAMC,MAAQ,KAEVP,IAAS,OACXO,EAAE,YAAYF,CAAI,EAElBE,EAAE,SAASF,CAAI,EAGjB,MAAMG,EAAQR,IAAS,OAASS,EAAuBF,CAAC,EAAIG,EAAwBH,CAAC,EAErF,OACEL,EAACC,EAAO,GAAP,CAAsB,QAAS,CAAE,QAAS,CAAA,EAAK,QAAS,CAAE,QAAS,GAClE,SAAAD,EAAC,SAAA,CACC,KAAK,SACL,QAAS,IAAM,CACb,MAAMS,EAAc,IAAI,KAAKd,EAAS,SAAS,EAE3CG,IAAS,OACXW,EAAY,YAAYN,CAAI,EAE5BM,EAAY,SAASN,CAAI,EAG3BP,EAASa,CAAW,CACtB,EACA,UAAWP,EACT,4EACA,8EACA,CACE,uDACEJ,IAAS,QAAUH,EAAS,aAAeQ,EAAOR,EAAS,gBAAkBQ,CAAA,CACjF,EAGD,SAAAG,CAAA,CAAA,GAvBWF,CAyBhB,CAEJ,CAAC,CAAA,CAAA"}
1
+ {"version":3,"file":"SelectList.js","sources":["../../../../../../../../lib/shared/ui/calendar/ui/selectDate/ui/SelectList.tsx"],"sourcesContent":["import { type ComponentPropsWithoutRef } from 'react'\nimport { motion } from 'framer-motion'\nimport { formatDateToMonthString, formatDateToYearString } from '$/shared/ui/calendar'\nimport { cn } from '$/shared/utils'\n\ntype SelectListProps = Omit<ComponentPropsWithoutRef<typeof motion.ul>, 'onSelect'> & {\n dates: number[]\n selected: Date\n onSelect: (date: Date) => void\n mode: 'month' | 'year'\n}\n\nexport const SelectList = ({ dates, selected, onSelect, className, mode, ...props }: SelectListProps) => {\n return (\n <motion.ul\n {...props}\n layout\n initial={{ opacity: 0, translateY: -20 }}\n animate={{ opacity: 1, translateY: 8 }}\n exit={{ opacity: 0 }}\n className={cn(\n 'customScrollbar-y absolute left-0 top-[50px] z-10 max-h-[280px] w-full translate-y-2 list-none overflow-y-scroll bg-color-white pr-1.5',\n className\n )}\n >\n {dates.map((date, index) => {\n const d = new Date()\n d.setDate(1)\n\n if (mode === 'year') {\n d.setFullYear(date)\n } else {\n d.setMonth(date)\n }\n\n const label = mode === 'year' ? formatDateToYearString(d) : formatDateToMonthString(d)\n\n return (\n <motion.li key={index} initial={{ opacity: 0 }} animate={{ opacity: 1 }}>\n <button\n type='button'\n onClick={() => {\n const updatedDate = new Date(selected.getTime())\n\n if (mode === 'year') {\n updatedDate.setFullYear(date)\n } else {\n updatedDate.setMonth(date)\n }\n\n onSelect(updatedDate)\n }}\n className={cn(\n 'desk-body-regular-l h-10 w-full rounded-sm bg-color-white px-2 text-start',\n 'capitalize hover:bg-color-primary-tr-hover hover:text-color-primary-default',\n {\n 'bg-color-primary-tr-hover text-color-primary-default':\n mode === 'month' ? selected.getMonth() === date : selected.getFullYear() === date\n }\n )}\n >\n {label}\n </button>\n </motion.li>\n )\n })}\n </motion.ul>\n )\n}\n"],"names":["SelectList","dates","selected","onSelect","className","mode","props","jsx","motion","cn","date","index","d","label","formatDateToYearString","formatDateToMonthString","updatedDate"],"mappings":"sUAYO,MAAMA,EAAa,CAAC,CAAE,MAAAC,EAAO,SAAAC,EAAU,SAAAC,EAAU,UAAAC,EAAW,KAAAC,EAAM,GAAGC,KAExEC,EAACC,EAAO,GAAP,CACE,GAAGF,EACJ,OAAM,GACN,QAAS,CAAE,QAAS,EAAG,WAAY,GAAA,EACnC,QAAS,CAAE,QAAS,EAAG,WAAY,CAAA,EACnC,KAAM,CAAE,QAAS,CAAA,EACjB,UAAWG,EACT,yIACAL,CAAA,EAGD,SAAAH,EAAM,IAAI,CAACS,EAAMC,IAAU,CAC1B,MAAMC,MAAQ,KACdA,EAAE,QAAQ,CAAC,EAEPP,IAAS,OACXO,EAAE,YAAYF,CAAI,EAElBE,EAAE,SAASF,CAAI,EAGjB,MAAMG,EAAQR,IAAS,OAASS,EAAuBF,CAAC,EAAIG,EAAwBH,CAAC,EAErF,OACEL,EAACC,EAAO,GAAP,CAAsB,QAAS,CAAE,QAAS,CAAA,EAAK,QAAS,CAAE,QAAS,GAClE,SAAAD,EAAC,SAAA,CACC,KAAK,SACL,QAAS,IAAM,CACb,MAAMS,EAAc,IAAI,KAAKd,EAAS,SAAS,EAE3CG,IAAS,OACXW,EAAY,YAAYN,CAAI,EAE5BM,EAAY,SAASN,CAAI,EAG3BP,EAASa,CAAW,CACtB,EACA,UAAWP,EACT,4EACA,8EACA,CACE,uDACEJ,IAAS,QAAUH,EAAS,aAAeQ,EAAOR,EAAS,gBAAkBQ,CAAA,CACjF,EAGD,SAAAG,CAAA,CAAA,GAvBWF,CAyBhB,CAEJ,CAAC,CAAA,CAAA"}
@@ -1,2 +1,2 @@
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};
1
+ import"react/jsx-runtime";import{TypeGuards as E}from"../../utils/typeGuards.js";import"../../ui/button/Button.js";import"../../ui/buttonIcon/ButtonIcon.js";import"../../ui/calendar/Calendar.js";import{formatDateToLocaleString as o}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:_=>`Поле должно содержать минимум символов: ${_}`,MAX_LENGTH:_=>`Поле должно содержать максимум символов: ${_}`,FIX_LENGTH:_=>`Поле должно быть фиксированной длины символов: ${_}`,MIN_VALUE:_=>`Значение не может быть меньше чем ${_}`,MAX_VALUE:_=>`Значение не может быть больше чем ${_}`,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:_=>`Выберите не менее ${_} вариантов`,SELECT_MULTIPLE_MAX_LENGTH:_=>`Выберите не более ${_} вариантов`,SELECT_FIX_LENGTH:_=>`Поле должно быть фиксированного количества вариантов: ${_}`,DATE_INVALID_FORMAT:()=>"Дата указана некорректно",DATE_NON_EMPTY:()=>"Укажите дату",VALUE_OUT_OF_RANGE:_=>`Выберите один из вариантов ${_.join(", ")}`,DATE_MIN:_=>{const t=E.isString(_)?new Date(_):_;return`Выбранная дата должна быть не раньше ${o(t)}`},DATE_MAX:_=>{const t=E.isString(_)?new Date(_):_;return`Выбранная дата должна быть не позже ${o(t)}`},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:()=>"Номер паспорта введен некорректно",DEPARTMENT_NON_EMPTY:()=>"Поле обязательно для заполнения",INVALID_DEPARTMENT:()=>"Код подразделения введён некорректно"};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 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
+ {"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\n PHONE_NON_EMPTY: () => 'Номер телефона должен состоять из 11 цифр',\n PHONE_INVALID_OPERATOR: () => 'Код города/оператора должен начинаться с цифры 3, 4, 5, 6 или 9',\n\n EMAIL_INVALID: () => 'Email введен некорректно. Пример: example@domain.ru',\n EMAIL_NON_EMPTY: () => 'Введите адрес электронной почты',\n\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\n DATE_INVALID_FORMAT: () => 'Дата указана некорректно',\n DATE_NON_EMPTY: () => 'Укажите дату',\n VALUE_OUT_OF_RANGE: <T extends Primitive>(range: T[]) => `Выберите один из вариантов ${range.join(', ')}`,\n\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\n INVALID_REGEX_STRING: () => 'Поле не соответствует требованиям',\n\n INVALID_URL: () => 'Ссылка введена некорректно. Пример: https://example.com, example.com',\n\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 DEPARTMENT_NON_EMPTY: () => 'Поле обязательно для заполнения',\n INVALID_DEPARTMENT: () => 'Код подразделения введён некорректно'\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,GAEpE,gBAAiB,IAAM,4CACvB,uBAAwB,IAAM,kEAE9B,cAAe,IAAM,sDACrB,gBAAiB,IAAM,kCAEvB,iBAAkB,IAAM,6BACxB,2BAA6BC,GAAmB,qBAAqBA,CAAM,aAC3E,2BAA6BA,GAAmB,qBAAqBA,CAAM,aAC3E,kBAAoBA,GAAmB,yDAAyDA,CAAM,GAEtG,oBAAqB,IAAM,2BAC3B,eAAgB,IAAM,eACtB,mBAA0CC,GAAe,8BAA8BA,EAAM,KAAK,IAAI,CAAC,GAEvG,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,EAEA,qBAAsB,IAAM,oCAE5B,YAAa,IAAM,uEAEnB,sBAAuB,IAAM,wCAC7B,mBAAoB,IAAM,kCAC1B,kCAAmC,IAAM,iDACzC,sBAAuB,IAAM,qCAC7B,wBAAyB,IAAM,oCAE/B,qBAAsB,IAAM,kCAC5B,mBAAoB,IAAM,sCAC5B"}
@@ -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{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};
1
+ import{getBooleanSchema as m}from"./boolean.validators.js";import{getDateSchema as e}from"./date.validators.js";import{getEmailSchema as t}from"./email.validators.js";import{getNumberSchema as o}from"./number.validators.js";import{getPassportSchema as r}from"./passport.validators.js";import{getPassportDepartmentSchema as a}from"./passportDepartment.validators.js";import{getPhoneSchema as i}from"./phone.validators.js";import{getRegexSchema as p}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 E={getStringSchema:S,getEmailSchema:t,getSelectSchema:c,getNumberSchema:o,getPhoneSchema:i,getDateSchema:e,getUnionSchema:g,getUrlSchema:h,getRegexSchema:p,getBooleanSchema:m,getPassportDepartmentSchema:a,getPassportSchema:r};export{E 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 { 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"}
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 { getPassportDepartmentSchema } from './passportDepartment.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 getPassportDepartmentSchema,\n getPassportSchema\n}\n"],"names":["baseValidationSchemas","getStringSchema","getEmailSchema","getSelectSchema","getNumberSchema","getPhoneSchema","getDateSchema","getUnionSchema","getUrlSchema","getRegexSchema","getBooleanSchema","getPassportDepartmentSchema","getPassportSchema"],"mappings":"wrBAaO,MAAMA,EAAwB,CACnC,gBAAAC,EACA,eAAAC,EACA,gBAAAC,EACA,gBAAAC,EACA,eAAAC,EACA,cAAAC,EACA,eAAAC,EACA,aAAAC,EACA,eAAAC,EACA,iBAAAC,EACA,4BAAAC,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 r}from"../../../../node_modules/zod/v3/ZodError.js";const l=["0","1","2","3"],p=a=>{const{defaultValue:u,message:d}=a||{},{root:c,empty:o,invalidDepartment:n}=d||{};return i.string({message:c??e.DEPARTMENT_NON_EMPTY()}).nonempty(o??e.DEPARTMENT_NON_EMPTY()).superRefine((g,s)=>{const[t,m]=g.replace(/_/g,"").split("-");if(!t.length||!m.length)return s.addIssue({code:r.custom,message:o??e.DEPARTMENT_NON_EMPTY()});if(/^0{2,3}/.test(t))return s.addIssue({code:r.custom,message:n??e.INVALID_DEPARTMENT()});if(!l.includes(t[t.length-1]))return s.addIssue({code:r.custom,message:n??e.INVALID_DEPARTMENT()});if(!m.replace(/^0+/g,"").length)return s.addIssue({code:r.custom,message:n??e.INVALID_DEPARTMENT()})}).default(u??"")};function f(a){return p(a)}export{f as getPassportDepartmentSchema};
2
+ //# sourceMappingURL=passportDepartment.validators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passportDepartment.validators.js","sources":["../../../../../lib/shared/validation/base/passportDepartment.validators.ts"],"sourcesContent":["import z, { ZodIssueCode } from 'zod'\nimport { baseDefaultMessages } from './base.constants'\n\nconst departmentLevels = ['0', '1', '2', '3']\n\nexport type PassportDepartmentValidationOptions = {\n /**\n * значение по умолчанию\n * @default undefined\n */\n defaultValue?: string\n message?: Partial<Record<'empty' | 'root' | 'invalidDepartment', string>>\n}\n\n/**\n * Схема валидации обязательного поля паспорта\n */\nconst getPassportDepartmentRequired = (props?: PassportDepartmentValidationOptions) => {\n const { defaultValue, message } = props || {}\n const { root, empty, invalidDepartment } = message || {}\n\n const schema = z\n .string({ message: root ?? baseDefaultMessages.DEPARTMENT_NON_EMPTY() })\n .nonempty(empty ?? baseDefaultMessages.DEPARTMENT_NON_EMPTY())\n .superRefine((value, context) => {\n const [left, right] = value.replace(/_/g, '').split('-')\n\n if (!left.length || !right.length) {\n return context.addIssue({\n code: ZodIssueCode.custom,\n message: empty ?? baseDefaultMessages.DEPARTMENT_NON_EMPTY()\n })\n }\n\n if (/^0{2,3}/.test(left)) {\n return context.addIssue({\n code: ZodIssueCode.custom,\n message: invalidDepartment ?? baseDefaultMessages.INVALID_DEPARTMENT()\n })\n }\n\n if (!departmentLevels.includes(left[left.length - 1])) {\n return context.addIssue({\n code: ZodIssueCode.custom,\n message: invalidDepartment ?? baseDefaultMessages.INVALID_DEPARTMENT()\n })\n }\n\n if (!right.replace(/^0+/g, '').length) {\n return context.addIssue({\n code: ZodIssueCode.custom,\n message: invalidDepartment ?? baseDefaultMessages.INVALID_DEPARTMENT()\n })\n }\n })\n\n return schema.default(defaultValue ?? '')\n}\ntype PassportDepartmentRequiredSchema = ReturnType<typeof getPassportDepartmentRequired>\n\n/**\n * Схема валидации обязательного поля кода подразделения паспорта\n * @param {PassportDepartmentValidationOptions} props настройки схемы\n * @typeParam `message` - `{ ['empty' | 'root' | 'invalidDepartment']: string }`\n * @returns схема валидации поля в соответствии с настройками\n *\n * @example with required value\n * z.object({\n * field: zodValidators.base.getPassportDepartmentSchema()\n * })\n * // will return z.string()\n */\nexport function getPassportDepartmentSchema(props?: PassportDepartmentValidationOptions): PassportDepartmentRequiredSchema {\n return getPassportDepartmentRequired(props)\n}\n"],"names":["departmentLevels","getPassportDepartmentRequired","props","defaultValue","message","root","empty","invalidDepartment","z","baseDefaultMessages","value","context","left","right","ZodIssueCode","getPassportDepartmentSchema"],"mappings":"mMAGA,MAAMA,EAAmB,CAAC,IAAK,IAAK,IAAK,GAAG,EActCC,EAAiCC,GAAgD,CACrF,KAAM,CAAE,aAAAC,EAAc,QAAAC,CAAA,EAAYF,GAAS,CAAA,EACrC,CAAE,KAAAG,EAAM,MAAAC,EAAO,kBAAAC,CAAA,EAAsBH,GAAW,CAAA,EAqCtD,OAnCeI,EACZ,OAAO,CAAE,QAASH,GAAQI,EAAoB,sBAAqB,CAAG,EACtE,SAASH,GAASG,EAAoB,qBAAA,CAAsB,EAC5D,YAAY,CAACC,EAAOC,IAAY,CAC/B,KAAM,CAACC,EAAMC,CAAK,EAAIH,EAAM,QAAQ,KAAM,EAAE,EAAE,MAAM,GAAG,EAEvD,GAAI,CAACE,EAAK,QAAU,CAACC,EAAM,OACzB,OAAOF,EAAQ,SAAS,CACtB,KAAMG,EAAa,OACnB,QAASR,GAASG,EAAoB,qBAAA,CAAqB,CAC5D,EAGH,GAAI,UAAU,KAAKG,CAAI,EACrB,OAAOD,EAAQ,SAAS,CACtB,KAAMG,EAAa,OACnB,QAASP,GAAqBE,EAAoB,mBAAA,CAAmB,CACtE,EAGH,GAAI,CAACT,EAAiB,SAASY,EAAKA,EAAK,OAAS,CAAC,CAAC,EAClD,OAAOD,EAAQ,SAAS,CACtB,KAAMG,EAAa,OACnB,QAASP,GAAqBE,EAAoB,mBAAA,CAAmB,CACtE,EAGH,GAAI,CAACI,EAAM,QAAQ,OAAQ,EAAE,EAAE,OAC7B,OAAOF,EAAQ,SAAS,CACtB,KAAMG,EAAa,OACnB,QAASP,GAAqBE,EAAoB,mBAAA,CAAmB,CACtE,CAEL,CAAC,EAEW,QAAQN,GAAgB,EAAE,CAC1C,EAeO,SAASY,EAA4Bb,EAA+E,CACzH,OAAOD,EAA8BC,CAAK,CAC5C"}