@scbt-ecom/ui 0.113.0 → 0.114.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.
- package/dist/_virtual/index.js +1 -1
- package/dist/_virtual/index2.js +1 -1
- package/dist/lib/exports/widget.js +1 -1
- package/dist/lib/shared/hooks/useClickOutside.js +1 -1
- package/dist/lib/shared/hooks/useClickOutside.js.map +1 -1
- package/dist/lib/shared/ui/brandLogos/BrandLogos.js +1 -1
- package/dist/lib/shared/ui/brandLogos/BrandLogos.js.map +1 -1
- package/dist/lib/shared/ui/carousel/model/helpers.js +1 -1
- package/dist/lib/shared/ui/carousel/model/helpers.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/combobox/hooks/useComboboxControl.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/combobox/hooks/useComboboxControl.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/dayPickerControl/model/utils.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/dayPickerControl/model/utils.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/editor/model/helper.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/editor/model/helper.js.map +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.js +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.js.map +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/combobox/hooks/useCombobox.js +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/combobox/hooks/useCombobox.js.map +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/index.js +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/index.js.map +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/maskInput/MaskInput.js +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/maskInput/MaskInput.js.map +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/uploader/model/hooks/useUploader.js +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/uploader/model/hooks/useUploader.js.map +1 -1
- package/dist/lib/shared/ui/slot/ui/SlotClone.js +1 -1
- package/dist/lib/shared/ui/slot/ui/SlotClone.js.map +1 -1
- package/dist/lib/shared/ui/table/Table.js +1 -1
- package/dist/lib/shared/ui/table/Table.js.map +1 -1
- package/dist/lib/shared/ui/table/model/TableUtils.js +1 -1
- package/dist/lib/shared/ui/table/model/TableUtils.js.map +1 -1
- package/dist/lib/shared/utils/cn.js +1 -1
- package/dist/lib/shared/utils/cn.js.map +1 -1
- package/dist/lib/shared/validation/base/base.constants.js +1 -1
- package/dist/lib/shared/validation/base/base.constants.js.map +1 -1
- package/dist/lib/shared/validation/base/currency.validators.js +1 -1
- package/dist/lib/shared/validation/base/currency.validators.js.map +1 -1
- package/dist/lib/shared/validation/base/date.validators.js +1 -1
- package/dist/lib/shared/validation/base/date.validators.js.map +1 -1
- package/dist/lib/shared/validation/base/email.validators.js +1 -1
- package/dist/lib/shared/validation/base/email.validators.js.map +1 -1
- package/dist/lib/shared/validation/base/phone.validators.js +1 -1
- package/dist/lib/shared/validation/base/phone.validators.js.map +1 -1
- package/dist/lib/shared/validation/base/regex.validators.js +1 -1
- package/dist/lib/shared/validation/base/regex.validators.js.map +1 -1
- package/dist/lib/shared/validation/base/url.validators.js +1 -1
- package/dist/lib/shared/validation/base/url.validators.js.map +1 -1
- package/dist/lib/widgets/banner/index.js +1 -1
- package/dist/lib/widgets/buttonWithHandlers/model/useButtonHandler.js +1 -1
- package/dist/lib/widgets/buttonWithHandlers/model/useButtonHandler.js.map +1 -1
- package/dist/lib/widgets/calculator/model/helpers.js +1 -1
- package/dist/lib/widgets/calculator/model/helpers.js.map +1 -1
- package/dist/lib/widgets/calculator/ui/calculatorFields/hooks/useAdditionalSlider.js +1 -1
- package/dist/lib/widgets/calculator/ui/calculatorFields/hooks/useAdditionalSlider.js.map +1 -1
- package/dist/lib/widgets/fallbacksView/model/helpers.js +1 -1
- package/dist/lib/widgets/fallbacksView/model/helpers.js.map +1 -1
- package/dist/lib/widgets/fieldMapper/FieldMapper.js +1 -1
- package/dist/lib/widgets/fieldMapper/FieldMapper.js.map +1 -1
- package/dist/lib/widgets/header/model/helpers.js +1 -1
- package/dist/lib/widgets/header/model/helpers.js.map +1 -1
- package/dist/lib/widgets/index.js +1 -1
- package/dist/lib/widgets/model/helpers.js +2 -2
- package/dist/lib/widgets/model/helpers.js.map +1 -1
- package/dist/lib/widgets/seoHeader/ui/desktop/CategoriesDesktop.js +1 -1
- package/dist/lib/widgets/seoHeader/ui/desktop/CategoriesDesktop.js.map +1 -1
- package/dist/lib/widgets/seoHeader/ui/desktop/CategoryTabs.js +1 -1
- package/dist/lib/widgets/seoHeader/ui/desktop/CategoryTabs.js.map +1 -1
- package/dist/lib/widgets/seoHeader/ui/mobile/CategoriesMobile.js +1 -1
- package/dist/lib/widgets/seoHeader/ui/mobile/CategoriesMobile.js.map +1 -1
- package/dist/lib/widgets/stepper/ui/StepperCarousel.js +1 -1
- package/dist/lib/widgets/stepper/ui/StepperCarousel.js.map +1 -1
- package/dist/lib/widgets/table/model/utils.js +1 -1
- package/dist/lib/widgets/table/model/utils.js.map +1 -1
- package/dist/node_modules/classnames/index.js +1 -1
- package/dist/node_modules/prop-types/index.js +1 -1
- package/dist/node_modules/prop-types/index.js.map +1 -1
- package/dist/src/shared/utils/getDynamicSchema.js +1 -1
- package/dist/src/shared/utils/getDynamicSchema.js.map +1 -1
- package/dist/stats.html +1 -1
- package/dist/types/lib/shared/utils/cn.d.ts +2 -2
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"mappings":";iGACA,MAAMA,EAASC,EAAK,UAAM,OAAO,qBAAkB,2xGAAC,EAC9CC,EAAaD,EAAK,UAAM,OAAO,6BAA0B,q8GAAC,EAC1DE,EAAcF,EAAK,UAAM,OAAO,+BAA4B
|
|
1
|
+
{"version":3,"mappings":";iGACA,MAAMA,EAASC,EAAK,UAAM,OAAO,qBAAkB,2xGAAC,EAC9CC,EAAaD,EAAK,UAAM,OAAO,6BAA0B,q8GAAC,EAC1DE,EAAcF,EAAK,UAAM,OAAO,+BAA4B,85GAAC,EAC7DG,EAAoBH,EAAK,UAAM,OAAO,2CAAwC,k5GAAC,EAC/EI,EAASJ,EAAK,UAAM,OAAO,qBAAkB,0lGAAC,EAC9CK,EAASL,EAAK,UAAM,OAAO,qBAAkB,qkGAAC,EAC9CM,EAAeN,EAAK,UAAM,OAAO,iCAA8B,skGAAC,EAChEO,EAAaP,EAAK,UAAM,OAAO,6BAA0B,qkGAAC,EAC1DQ,EAAYR,EAAK,UAAM,OAAO,2BAAwB,0nGAAC,EACvDS,EAAUT,EAAK,UAAM,OAAO,uBAAoB,0nGAAC,EACjDU,EAAaV,EAAK,UAAM,OAAO,6BAA0B,8mGAAC,EAC1DW,EAAUX,EAAK,UAAM,OAAO,uBAAoB,2jGAAC,EACjDY,EAAYZ,EAAK,UAAM,OAAO,2BAAwB,4kGAAC,EACvDa,EAAeb,EAAK,UAAM,OAAO,iCAA8B,0rGAAC,EAIzDc,EAAkB,CAC7B,OAAQT,EACR,UAAWG,EACX,OAAQT,EACR,WAAYE,EACZ,KAAMC,EACN,WAAYC,EACZ,QAASM,EACT,QAASE,EACT,WAAYJ,EACZ,WAAYG,EACZ,aAAcJ,EACd,OAAQF,EACR,UAAWQ,EACX,aAAcC,CAChB,EAEaE,EAAsB,OAAO,KAAKD,CAAe,EAEjDE,EAAYD,EAAoB,OAC3C,CAACE,EAAKC,KACJD,EAAIC,CAAM,EAAIA,EACPD,GAET,EACF","names":["Banner","lazy","Calculator","DynamicForm","DynamicFormDialog","Footer","Header","InterLinking","LongBanner","SeoHeader","Stepper","UsefulInfo","Benefit","InfoBlock","UserFeedback","WIDGET_LIST_MAP","KEYS_OF_WIDGET_LIST","widgetIds","acc","widget"],"ignoreList":[],"sources":["../../../../lib/widgets/model/helpers.ts"],"sourcesContent":["import { lazy } from 'react'\nconst Banner = lazy(() => import('../banner/Banner'))\nconst Calculator = lazy(() => import('../calculator/Calculator'))\nconst DynamicForm = lazy(() => import('../dynamicForm/DynamicForm'))\nconst DynamicFormDialog = lazy(() => import('../dynamicFormDialog/DynamicFormDialog'))\nconst Footer = lazy(() => import('../footer/Footer'))\nconst Header = lazy(() => import('../header/Header'))\nconst InterLinking = lazy(() => import('../interLinking/InterLinking'))\nconst LongBanner = lazy(() => import('../longBanner/LongBanner'))\nconst SeoHeader = lazy(() => import('../seoHeader/SeoHeader'))\nconst Stepper = lazy(() => import('../stepper/Stepper'))\nconst UsefulInfo = lazy(() => import('../usefulInfo/UsefulInfo'))\nconst Benefit = lazy(() => import('../benefit/Benefit'))\nconst InfoBlock = lazy(() => import('../infoBlock/InfoBlock'))\nconst UserFeedback = lazy(() => import('../userFeedback/UserFeedback'))\n\nexport type AllowedWidgets = keyof typeof WIDGET_LIST_MAP\n\nexport const WIDGET_LIST_MAP = {\n header: Header,\n seoHeader: SeoHeader,\n banner: Banner,\n calculator: Calculator,\n form: DynamicForm,\n formDialog: DynamicFormDialog,\n stepper: Stepper,\n benefit: Benefit,\n longBanner: LongBanner,\n usefulInfo: UsefulInfo,\n interLinking: InterLinking,\n footer: Footer,\n infoBlock: InfoBlock,\n userFeedback: UserFeedback\n} as const\n\nexport const KEYS_OF_WIDGET_LIST = Object.keys(WIDGET_LIST_MAP) as readonly AllowedWidgets[]\n\nexport const widgetIds = KEYS_OF_WIDGET_LIST.reduce(\n (acc, widget) => {\n acc[widget] = widget\n return acc\n },\n {} as Record<AllowedWidgets, AllowedWidgets>\n)\n"],"file":"lib/widgets/model/helpers.js"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as m,jsx as o}from"react/jsx-runtime";import{useCategoryReducer as s}from"../../hooks/useCategoryReducer/useCategoryReducer.js";import{rootCategoryAction as d,currentCategoryAction as x}from"../../hooks/useCategoryReducer/actions.js";import{CategoryTabs as u}from"./CategoryTabs.js";import{RootTab as g}from"./rootTab/RootTab.js";import{createPhoneNumber as b}from"../../../../shared/utils/createPhoneNumber.js";import"../../../../shared/ui/button/Button.js";import"../../../../shared/ui/buttonIcon/ButtonIcon.js";import"../../../../shared/ui/calendar/Calendar.js";import"../../../../shared/ui/calendar/model/utils.js";import"../../../../shared/ui/accordion/Accordion.js";import"react";import"react-dom";import"../../../../shared/ui/modal/ui/IframeModalContent.js";import"../../../../../node_modules/react-hot-toast/dist/index.js";import{Icon as n}from"../../../../shared/ui/icon/Icon.js";import"../../../../shared/ui/table/ui/primitives/Primitives.js";import"../../../../shared/ui/carousel/ui/CarouselContent.js";import"../../../../shared/ui/slot/Slot.js";import"../../../../shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.js";import"../../../../shared/ui/formElements/uncontrolled/checkbox/Checkbox.js";import"../../../../shared/ui/formElements/uncontrolled/combobox/combobox.js";import"../../../../shared/ui/formElements/uncontrolled/dayPicker/DayPicker.js";import"../../../../shared/ui/formElements/uncontrolled/input/Input.js";import"../../../../shared/ui/formElements/uncontrolled/inputOtp/InputOtpBase.js";import"../../../../shared/ui/formElements/uncontrolled/maskInput/MaskInput.js";import"../../../../shared/ui/formElements/uncontrolled/radio/RadioGroup.js";import"../../../../shared/ui/formElements/uncontrolled/radio/ui/RadioItem.js";import"../../../../shared/ui/formElements/uncontrolled/slider/SliderBase.js";import"../../../../shared/ui/formElements/uncontrolled/switch/Switch.js";import"../../../../shared/ui/formElements/uncontrolled/textarea/Textarea.js";import"../../../../shared/ui/formElements/uncontrolled/uploader/UploaderBase.js";import"../../../../shared/ui/formElements/uncontrolled/inputCurrency/InputCurrency.js";import"../../../../shared/ui/formElements/controlled/editor/ui/Editor.js";import"../../../../shared/ui/formElements/controlled/input/MaskInputControl.js";import"../../../../shared/ui/dropdownList/ui/dropdownItem/DropdownItem.js";const
|
|
1
|
+
import{jsxs as m,jsx as o}from"react/jsx-runtime";import{useCategoryReducer as s}from"../../hooks/useCategoryReducer/useCategoryReducer.js";import{rootCategoryAction as d,currentCategoryAction as x}from"../../hooks/useCategoryReducer/actions.js";import{CategoryTabs as u}from"./CategoryTabs.js";import{RootTab as g}from"./rootTab/RootTab.js";import{createPhoneNumber as b}from"../../../../shared/utils/createPhoneNumber.js";import"../../../../../node_modules/classnames/index.js";import"../../../../shared/ui/button/Button.js";import"../../../../shared/ui/buttonIcon/ButtonIcon.js";import"../../../../shared/ui/calendar/Calendar.js";import"../../../../shared/ui/calendar/model/utils.js";import"../../../../shared/ui/accordion/Accordion.js";import"react";import"react-dom";import"../../../../shared/ui/modal/ui/IframeModalContent.js";import"../../../../../node_modules/react-hot-toast/dist/index.js";import{Icon as n}from"../../../../shared/ui/icon/Icon.js";import"../../../../shared/ui/table/ui/primitives/Primitives.js";import"../../../../shared/ui/carousel/ui/CarouselContent.js";import"../../../../shared/ui/slot/Slot.js";import"../../../../shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.js";import"../../../../shared/ui/formElements/uncontrolled/checkbox/Checkbox.js";import"../../../../shared/ui/formElements/uncontrolled/combobox/combobox.js";import"../../../../shared/ui/formElements/uncontrolled/dayPicker/DayPicker.js";import"../../../../shared/ui/formElements/uncontrolled/input/Input.js";import"../../../../shared/ui/formElements/uncontrolled/inputOtp/InputOtpBase.js";import"../../../../shared/ui/formElements/uncontrolled/maskInput/MaskInput.js";import"../../../../shared/ui/formElements/uncontrolled/radio/RadioGroup.js";import"../../../../shared/ui/formElements/uncontrolled/radio/ui/RadioItem.js";import"../../../../shared/ui/formElements/uncontrolled/slider/SliderBase.js";import"../../../../shared/ui/formElements/uncontrolled/switch/Switch.js";import"../../../../shared/ui/formElements/uncontrolled/textarea/Textarea.js";import"../../../../shared/ui/formElements/uncontrolled/uploader/UploaderBase.js";import"../../../../shared/ui/formElements/uncontrolled/inputCurrency/InputCurrency.js";import"../../../../shared/ui/formElements/controlled/editor/ui/Editor.js";import"../../../../shared/ui/formElements/controlled/input/MaskInputControl.js";import"../../../../shared/ui/dropdownList/ui/dropdownItem/DropdownItem.js";const rr=({categories:t,helpers:c,phone:a})=>{const[e,p]=s({root:t[0].children[0],current:t[0].children[0]});return m("div",{className:"mobile:hidden",children:[m("div",{className:"flex w-full items-center justify-between gap-x-4 border-b border-b-[rgba(234,237,241)] py-4",children:[o(n,{name:"brandLogos/logoMain",className:"mr-auto w-[130px]"}),t.map(r=>{const l=e.root.title===r.title;return o(g,{category:r,selectedCategory:e.current,onCurrentCategoryChange:i=>p(x(i)),onRootCategoryChange:i=>p(d(i)),active:l},r.title)}),o("div",{className:"h-3.5 w-[1px] rounded-sm bg-color-blue-grey-500"}),c.map(r=>m("a",{href:r.link.href,className:"desk-body-regular-m flex items-center gap-x-1 text-color-tetriary duration-100 hover:text-color-dark",children:[r.link.icon&&o(n,{name:r.link.icon,className:"size-4"}),r.title]},r.title)),o("div",{className:"h-3.5 w-[1px] rounded-sm bg-color-blue-grey-500"}),o("a",{href:`tel:${a}`,className:"desk-body-regular-m flex items-center gap-x-1 text-color-tetriary duration-100 hover:text-color-dark",children:b(a,"x xxx xxx xx xx")})]}),o(u,{categories:e.current.children})]})};export{rr as CategoriesDesktop};
|
|
2
2
|
//# sourceMappingURL=CategoriesDesktop.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CategoriesDesktop.js","sources":["../../../../../../lib/widgets/seoHeader/ui/desktop/CategoriesDesktop.tsx"],"sourcesContent":["import { currentCategoryAction, rootCategoryAction, useCategoryReducer } from '../../hooks'\nimport type { Category, SeoHeaderHelpers } from '../../model'\nimport { CategoryTabs } from './CategoryTabs'\nimport { RootTab } from './rootTab'\nimport { Icon } from '$/shared/ui'\nimport { createPhoneNumber } from '$/shared/utils'\n\ntype DesktopCategoriesProps = {\n categories: Category[]\n helpers: SeoHeaderHelpers[]\n phone: string\n}\n\nexport const CategoriesDesktop = ({ categories, helpers, phone }: DesktopCategoriesProps) => {\n const [store, dispatch] = useCategoryReducer({ root: categories[0].children[0], current: categories[0].children[0] })\n\n return (\n <div className='mobile:hidden'>\n <div className='flex w-full items-center justify-between gap-x-4 border-b border-b-[rgba(234,237,241)] py-4'>\n <Icon name='brandLogos/logoMain' className='mr-auto w-[130px]' />\n {categories.map((category) => {\n const active = store.root.title === category.title\n\n return (\n <RootTab\n key={category.title}\n category={category}\n selectedCategory={store.current}\n onCurrentCategoryChange={(cat) => dispatch(currentCategoryAction(cat))}\n onRootCategoryChange={(cat) => dispatch(rootCategoryAction(cat))}\n active={active}\n />\n )\n })}\n <div className='h-3.5 w-[1px] rounded-sm bg-color-blue-grey-500' />\n {helpers.map((helper) => (\n <a\n key={helper.title}\n href={helper.link.href}\n className='desk-body-regular-m flex items-center gap-x-1 text-color-tetriary duration-100 hover:text-color-dark'\n >\n {helper.link.icon && <Icon name={helper.link.icon} className='size-4' />}\n {helper.title}\n </a>\n ))}\n <div className='h-3.5 w-[1px] rounded-sm bg-color-blue-grey-500' />\n <a\n href={`tel:${phone}`}\n className='desk-body-regular-m flex items-center gap-x-1 text-color-tetriary duration-100 hover:text-color-dark'\n >\n {createPhoneNumber(phone, 'x xxx xxx xx xx')}\n </a>\n </div>\n <CategoryTabs categories={store.current.children} />\n </div>\n )\n}\n"],"names":["CategoriesDesktop","categories","helpers","phone","store","dispatch","useCategoryReducer","jsxs","jsx","Icon","category","active","RootTab","cat","currentCategoryAction","rootCategoryAction","helper","createPhoneNumber","CategoryTabs"],"mappings":"
|
|
1
|
+
{"version":3,"file":"CategoriesDesktop.js","sources":["../../../../../../lib/widgets/seoHeader/ui/desktop/CategoriesDesktop.tsx"],"sourcesContent":["import { currentCategoryAction, rootCategoryAction, useCategoryReducer } from '../../hooks'\nimport type { Category, SeoHeaderHelpers } from '../../model'\nimport { CategoryTabs } from './CategoryTabs'\nimport { RootTab } from './rootTab'\nimport { Icon } from '$/shared/ui'\nimport { createPhoneNumber } from '$/shared/utils'\n\ntype DesktopCategoriesProps = {\n categories: Category[]\n helpers: SeoHeaderHelpers[]\n phone: string\n}\n\nexport const CategoriesDesktop = ({ categories, helpers, phone }: DesktopCategoriesProps) => {\n const [store, dispatch] = useCategoryReducer({ root: categories[0].children[0], current: categories[0].children[0] })\n\n return (\n <div className='mobile:hidden'>\n <div className='flex w-full items-center justify-between gap-x-4 border-b border-b-[rgba(234,237,241)] py-4'>\n <Icon name='brandLogos/logoMain' className='mr-auto w-[130px]' />\n {categories.map((category) => {\n const active = store.root.title === category.title\n\n return (\n <RootTab\n key={category.title}\n category={category}\n selectedCategory={store.current}\n onCurrentCategoryChange={(cat) => dispatch(currentCategoryAction(cat))}\n onRootCategoryChange={(cat) => dispatch(rootCategoryAction(cat))}\n active={active}\n />\n )\n })}\n <div className='h-3.5 w-[1px] rounded-sm bg-color-blue-grey-500' />\n {helpers.map((helper) => (\n <a\n key={helper.title}\n href={helper.link.href}\n className='desk-body-regular-m flex items-center gap-x-1 text-color-tetriary duration-100 hover:text-color-dark'\n >\n {helper.link.icon && <Icon name={helper.link.icon} className='size-4' />}\n {helper.title}\n </a>\n ))}\n <div className='h-3.5 w-[1px] rounded-sm bg-color-blue-grey-500' />\n <a\n href={`tel:${phone}`}\n className='desk-body-regular-m flex items-center gap-x-1 text-color-tetriary duration-100 hover:text-color-dark'\n >\n {createPhoneNumber(phone, 'x xxx xxx xx xx')}\n </a>\n </div>\n <CategoryTabs categories={store.current.children} />\n </div>\n )\n}\n"],"names":["CategoriesDesktop","categories","helpers","phone","store","dispatch","useCategoryReducer","jsxs","jsx","Icon","category","active","RootTab","cat","currentCategoryAction","rootCategoryAction","helper","createPhoneNumber","CategoryTabs"],"mappings":"o5EAaO,MAAMA,GAAoB,CAAC,CAAE,WAAAC,EAAY,QAAAC,EAAS,MAAAC,KAAoC,CAC3F,KAAM,CAACC,EAAOC,CAAQ,EAAIC,EAAmB,CAAE,KAAML,EAAW,CAAC,EAAE,SAAS,CAAC,EAAG,QAASA,EAAW,CAAC,EAAE,SAAS,CAAC,EAAG,EAEpH,OACEM,EAAC,MAAA,CAAI,UAAU,gBACb,SAAA,CAAAA,EAAC,MAAA,CAAI,UAAU,8FACb,SAAA,CAAAC,EAACC,EAAA,CAAK,KAAK,sBAAsB,UAAU,oBAAoB,EAC9DR,EAAW,IAAKS,GAAa,CAC5B,MAAMC,EAASP,EAAM,KAAK,QAAUM,EAAS,MAE7C,OACEF,EAACI,EAAA,CAEC,SAAAF,EACA,iBAAkBN,EAAM,QACxB,wBAA0BS,GAAQR,EAASS,EAAsBD,CAAG,CAAC,EACrE,qBAAuBA,GAAQR,EAASU,EAAmBF,CAAG,CAAC,EAC/D,OAAAF,CAAA,EALKD,EAAS,KAAA,CAQpB,CAAC,EACDF,EAAC,MAAA,CAAI,UAAU,iDAAA,CAAkD,EAChEN,EAAQ,IAAKc,GACZT,EAAC,IAAA,CAEC,KAAMS,EAAO,KAAK,KAClB,UAAU,uGAET,SAAA,CAAAA,EAAO,KAAK,MAAQR,EAACC,EAAA,CAAK,KAAMO,EAAO,KAAK,KAAM,UAAU,QAAA,CAAS,EACrEA,EAAO,KAAA,CAAA,EALHA,EAAO,KAAA,CAOf,EACDR,EAAC,MAAA,CAAI,UAAU,iDAAA,CAAkD,EACjEA,EAAC,IAAA,CACC,KAAM,OAAOL,CAAK,GAClB,UAAU,uGAET,SAAAc,EAAkBd,EAAO,iBAAiB,CAAA,CAAA,CAC7C,EACF,EACAK,EAACU,EAAA,CAAa,WAAYd,EAAM,QAAQ,QAAA,CAAU,CAAA,EACpD,CAEJ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as t,jsxs as n}from"react/jsx-runtime";import{memo as l,useState as a,useCallback as s,useRef as c}from"react";import"../../../../shared/ui/button/Button.js";import"../../../../shared/ui/buttonIcon/ButtonIcon.js";import"../../../../shared/ui/calendar/Calendar.js";import"../../../../shared/ui/calendar/model/utils.js";import"../../../../shared/ui/accordion/Accordion.js";import"react-dom";import"../../../../shared/ui/modal/ui/IframeModalContent.js";import"../../../../../node_modules/react-hot-toast/dist/index.js";import"../../../../shared/ui/table/ui/primitives/Primitives.js";import"../../../../shared/ui/carousel/ui/CarouselContent.js";import{CustomLink as b}from"../../../../shared/ui/customLink/CustomLink.js";import"../../../../shared/ui/slot/Slot.js";import"../../../../shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.js";import"../../../../shared/ui/formElements/uncontrolled/checkbox/Checkbox.js";import"../../../../shared/ui/formElements/uncontrolled/combobox/combobox.js";import"../../../../shared/ui/formElements/uncontrolled/dayPicker/DayPicker.js";import"../../../../shared/ui/formElements/uncontrolled/input/Input.js";import"../../../../shared/ui/formElements/uncontrolled/inputOtp/InputOtpBase.js";import"../../../../shared/ui/formElements/uncontrolled/maskInput/MaskInput.js";import"../../../../shared/ui/formElements/uncontrolled/radio/RadioGroup.js";import"../../../../shared/ui/formElements/uncontrolled/radio/ui/RadioItem.js";import"../../../../shared/ui/formElements/uncontrolled/slider/SliderBase.js";import"../../../../shared/ui/formElements/uncontrolled/switch/Switch.js";import"../../../../shared/ui/formElements/uncontrolled/textarea/Textarea.js";import"../../../../shared/ui/formElements/uncontrolled/uploader/UploaderBase.js";import"../../../../shared/ui/formElements/uncontrolled/inputCurrency/InputCurrency.js";import"../../../../shared/ui/formElements/controlled/editor/ui/Editor.js";import"../../../../shared/ui/formElements/controlled/input/MaskInputControl.js";import"../../../../shared/ui/dropdownList/ui/dropdownItem/DropdownItem.js";import{Tab as f}from"./tab/Tab.js";import{AnimatePresence as u}from"../../../../../node_modules/framer-motion/dist/es/components/AnimatePresence/index.js";const d=({categories:e})=>{const[i,m]=a(null),p=s(r=>{m(r)},[]),o=c(null);return t(u,{mode:"sync",children:n("div",{ref:o,id:"tabs",className:"relative flex w-full items-center justify-between gap-x-4 border-b border-b-[rgba(234,237,241)]",children:[e.map(r=>t(f,{ref:o,category:r,active:i===r.title,onActiveTabChange:p},r.title)),t(b,{icon:"general/loginFilled",href:"https://halvacard.ru/lk2/",target:"_blank",classes:{link:"ml-auto cursor-pointer desk-body-regular-m gap-2 hover:no-underline"},rel:"noreferrer",children:"Войти"})]})})},
|
|
1
|
+
import{jsx as t,jsxs as n}from"react/jsx-runtime";import{memo as l,useState as a,useCallback as s,useRef as c}from"react";import"../../../../../node_modules/classnames/index.js";import"../../../../shared/ui/button/Button.js";import"../../../../shared/ui/buttonIcon/ButtonIcon.js";import"../../../../shared/ui/calendar/Calendar.js";import"../../../../shared/ui/calendar/model/utils.js";import"../../../../shared/ui/accordion/Accordion.js";import"react-dom";import"../../../../shared/ui/modal/ui/IframeModalContent.js";import"../../../../../node_modules/react-hot-toast/dist/index.js";import"../../../../shared/ui/table/ui/primitives/Primitives.js";import"../../../../shared/ui/carousel/ui/CarouselContent.js";import{CustomLink as b}from"../../../../shared/ui/customLink/CustomLink.js";import"../../../../shared/ui/slot/Slot.js";import"../../../../shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.js";import"../../../../shared/ui/formElements/uncontrolled/checkbox/Checkbox.js";import"../../../../shared/ui/formElements/uncontrolled/combobox/combobox.js";import"../../../../shared/ui/formElements/uncontrolled/dayPicker/DayPicker.js";import"../../../../shared/ui/formElements/uncontrolled/input/Input.js";import"../../../../shared/ui/formElements/uncontrolled/inputOtp/InputOtpBase.js";import"../../../../shared/ui/formElements/uncontrolled/maskInput/MaskInput.js";import"../../../../shared/ui/formElements/uncontrolled/radio/RadioGroup.js";import"../../../../shared/ui/formElements/uncontrolled/radio/ui/RadioItem.js";import"../../../../shared/ui/formElements/uncontrolled/slider/SliderBase.js";import"../../../../shared/ui/formElements/uncontrolled/switch/Switch.js";import"../../../../shared/ui/formElements/uncontrolled/textarea/Textarea.js";import"../../../../shared/ui/formElements/uncontrolled/uploader/UploaderBase.js";import"../../../../shared/ui/formElements/uncontrolled/inputCurrency/InputCurrency.js";import"../../../../shared/ui/formElements/controlled/editor/ui/Editor.js";import"../../../../shared/ui/formElements/controlled/input/MaskInputControl.js";import"../../../../shared/ui/dropdownList/ui/dropdownItem/DropdownItem.js";import{Tab as f}from"./tab/Tab.js";import{AnimatePresence as u}from"../../../../../node_modules/framer-motion/dist/es/components/AnimatePresence/index.js";const d=({categories:e})=>{const[i,m]=a(null),p=s(r=>{m(r)},[]),o=c(null);return t(u,{mode:"sync",children:n("div",{ref:o,id:"tabs",className:"relative flex w-full items-center justify-between gap-x-4 border-b border-b-[rgba(234,237,241)]",children:[e.map(r=>t(f,{ref:o,category:r,active:i===r.title,onActiveTabChange:p},r.title)),t(b,{icon:"general/loginFilled",href:"https://halvacard.ru/lk2/",target:"_blank",classes:{link:"ml-auto cursor-pointer desk-body-regular-m gap-2 hover:no-underline"},rel:"noreferrer",children:"Войти"})]})})},X=l(d);export{X as CategoryTabs};
|
|
2
2
|
//# sourceMappingURL=CategoryTabs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CategoryTabs.js","sources":["../../../../../../lib/widgets/seoHeader/ui/desktop/CategoryTabs.tsx"],"sourcesContent":["import { memo, useCallback, useRef, useState } from 'react'\nimport { AnimatePresence } from 'framer-motion'\nimport { CustomLink } from '../../../../shared/ui'\nimport type { Category } from '../../model'\nimport { Tab } from './tab'\n\ntype CategoryTabsProps = {\n categories: Category[]\n}\n\nconst InnerComponent = ({ categories }: CategoryTabsProps) => {\n const [activeTab, setActiveTab] = useState<string | null>(null)\n\n const onActiveTabChange = useCallback((active: string | null) => {\n setActiveTab(active)\n }, [])\n\n const triggerRef = useRef<HTMLDivElement>(null)\n\n return (\n <AnimatePresence mode='sync'>\n <div\n ref={triggerRef}\n id='tabs'\n className='relative flex w-full items-center justify-between gap-x-4 border-b border-b-[rgba(234,237,241)]'\n >\n {categories.map((category) => (\n <Tab\n key={category.title}\n ref={triggerRef}\n category={category}\n active={activeTab === category.title}\n onActiveTabChange={onActiveTabChange}\n />\n ))}\n <CustomLink\n icon='general/loginFilled'\n href='https://halvacard.ru/lk2/'\n target='_blank'\n classes={{\n link: 'ml-auto cursor-pointer desk-body-regular-m gap-2 hover:no-underline'\n }}\n rel='noreferrer'\n >\n Войти\n </CustomLink>\n </div>\n </AnimatePresence>\n )\n}\n\nexport const CategoryTabs = memo(InnerComponent) as typeof InnerComponent\n"],"names":["InnerComponent","categories","activeTab","setActiveTab","useState","onActiveTabChange","useCallback","active","triggerRef","useRef","jsx","AnimatePresence","jsxs","category","Tab","CustomLink","CategoryTabs","memo"],"mappings":"
|
|
1
|
+
{"version":3,"file":"CategoryTabs.js","sources":["../../../../../../lib/widgets/seoHeader/ui/desktop/CategoryTabs.tsx"],"sourcesContent":["import { memo, useCallback, useRef, useState } from 'react'\nimport { AnimatePresence } from 'framer-motion'\nimport { CustomLink } from '../../../../shared/ui'\nimport type { Category } from '../../model'\nimport { Tab } from './tab'\n\ntype CategoryTabsProps = {\n categories: Category[]\n}\n\nconst InnerComponent = ({ categories }: CategoryTabsProps) => {\n const [activeTab, setActiveTab] = useState<string | null>(null)\n\n const onActiveTabChange = useCallback((active: string | null) => {\n setActiveTab(active)\n }, [])\n\n const triggerRef = useRef<HTMLDivElement>(null)\n\n return (\n <AnimatePresence mode='sync'>\n <div\n ref={triggerRef}\n id='tabs'\n className='relative flex w-full items-center justify-between gap-x-4 border-b border-b-[rgba(234,237,241)]'\n >\n {categories.map((category) => (\n <Tab\n key={category.title}\n ref={triggerRef}\n category={category}\n active={activeTab === category.title}\n onActiveTabChange={onActiveTabChange}\n />\n ))}\n <CustomLink\n icon='general/loginFilled'\n href='https://halvacard.ru/lk2/'\n target='_blank'\n classes={{\n link: 'ml-auto cursor-pointer desk-body-regular-m gap-2 hover:no-underline'\n }}\n rel='noreferrer'\n >\n Войти\n </CustomLink>\n </div>\n </AnimatePresence>\n )\n}\n\nexport const CategoryTabs = memo(InnerComponent) as typeof InnerComponent\n"],"names":["InnerComponent","categories","activeTab","setActiveTab","useState","onActiveTabChange","useCallback","active","triggerRef","useRef","jsx","AnimatePresence","jsxs","category","Tab","CustomLink","CategoryTabs","memo"],"mappings":"qwEAUA,MAAMA,EAAiB,CAAC,CAAE,WAAAC,KAAoC,CAC5D,KAAM,CAACC,EAAWC,CAAY,EAAIC,EAAwB,IAAI,EAExDC,EAAoBC,EAAaC,GAA0B,CAC/DJ,EAAaI,CAAM,CACrB,EAAG,CAAA,CAAE,EAECC,EAAaC,EAAuB,IAAI,EAE9C,OACEC,EAACC,EAAA,CAAgB,KAAK,OACpB,SAAAC,EAAC,MAAA,CACC,IAAKJ,EACL,GAAG,OACH,UAAU,kGAET,SAAA,CAAAP,EAAW,IAAKY,GACfH,EAACI,EAAA,CAEC,IAAKN,EACL,SAAAK,EACA,OAAQX,IAAcW,EAAS,MAC/B,kBAAAR,CAAA,EAJKQ,EAAS,KAAA,CAMjB,EACDH,EAACK,EAAA,CACC,KAAK,sBACL,KAAK,4BACL,OAAO,SACP,QAAS,CACP,KAAM,qEAAA,EAER,IAAI,aACL,SAAA,OAAA,CAAA,CAED,CAAA,CAAA,EAEJ,CAEJ,EAEaC,EAAeC,EAAKjB,CAAc"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as u,jsx as o}from"react/jsx-runtime";import{useRef as d,useState as b}from"react";import{createPortal as f}from"react-dom";import{Menu as g}from"./menu/Menu.js";import"../../../../shared/ui/button/Button.js";import"../../../../shared/ui/buttonIcon/ButtonIcon.js";import"../../../../shared/ui/calendar/Calendar.js";import"../../../../shared/ui/calendar/model/utils.js";import"../../../../shared/ui/accordion/Accordion.js";import"../../../../shared/ui/modal/ui/IframeModalContent.js";import"../../../../../node_modules/react-hot-toast/dist/index.js";import{Icon as
|
|
1
|
+
import{jsxs as u,jsx as o}from"react/jsx-runtime";import{useRef as d,useState as b}from"react";import{createPortal as f}from"react-dom";import{Menu as g}from"./menu/Menu.js";import"../../../../../node_modules/classnames/index.js";import"../../../../shared/ui/button/Button.js";import"../../../../shared/ui/buttonIcon/ButtonIcon.js";import"../../../../shared/ui/calendar/Calendar.js";import"../../../../shared/ui/calendar/model/utils.js";import"../../../../shared/ui/accordion/Accordion.js";import"../../../../shared/ui/modal/ui/IframeModalContent.js";import"../../../../../node_modules/react-hot-toast/dist/index.js";import{Icon as n}from"../../../../shared/ui/icon/Icon.js";import"../../../../shared/ui/table/ui/primitives/Primitives.js";import"../../../../shared/ui/carousel/ui/CarouselContent.js";import"../../../../shared/ui/slot/Slot.js";import"../../../../shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.js";import"../../../../shared/ui/formElements/uncontrolled/checkbox/Checkbox.js";import"../../../../shared/ui/formElements/uncontrolled/combobox/combobox.js";import"../../../../shared/ui/formElements/uncontrolled/dayPicker/DayPicker.js";import"../../../../shared/ui/formElements/uncontrolled/input/Input.js";import"../../../../shared/ui/formElements/uncontrolled/inputOtp/InputOtpBase.js";import"../../../../shared/ui/formElements/uncontrolled/maskInput/MaskInput.js";import"../../../../shared/ui/formElements/uncontrolled/radio/RadioGroup.js";import"../../../../shared/ui/formElements/uncontrolled/radio/ui/RadioItem.js";import"../../../../shared/ui/formElements/uncontrolled/slider/SliderBase.js";import"../../../../shared/ui/formElements/uncontrolled/switch/Switch.js";import"../../../../shared/ui/formElements/uncontrolled/textarea/Textarea.js";import"../../../../shared/ui/formElements/uncontrolled/uploader/UploaderBase.js";import"../../../../shared/ui/formElements/uncontrolled/inputCurrency/InputCurrency.js";import"../../../../shared/ui/formElements/controlled/editor/ui/Editor.js";import"../../../../shared/ui/formElements/controlled/input/MaskInputControl.js";import"../../../../shared/ui/dropdownList/ui/dropdownItem/DropdownItem.js";const Z=({categories:l,helpers:a,phone:s})=>{var i,m,p;const r=d(null),t=(i=r.current)==null?void 0:i.getBoundingClientRect(),[e,c]=b(!1);return u("div",{ref:r,className:"relative flex w-full items-center justify-between border-b border-b-blue-grey-500 py-4 desktop:hidden",children:[o(n,{name:"brandLogos/logoMain",className:"w-[130px]"}),o("button",{"aria-label":"Open menu",type:"button",onClick:()=>c(!e),className:"h-max w-max",children:o(n,{name:e?"general/close":"general/menu",className:"size-6 text-color-primary-default"})}),e&&f(o(g,{categories:l,helpers:a,phone:s,style:{top:t?t.top+t.height:0}}),((p=(m=document.body.querySelector("#modal-preview"))==null?void 0:m.contentDocument)==null?void 0:p.body)??document.body)]})};export{Z as CategoriesMobile};
|
|
2
2
|
//# sourceMappingURL=CategoriesMobile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CategoriesMobile.js","sources":["../../../../../../lib/widgets/seoHeader/ui/mobile/CategoriesMobile.tsx"],"sourcesContent":["import { useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\nimport type { Category, SeoHeaderHelpers } from '../../model'\nimport { Menu } from './menu'\nimport { Icon } from '$/shared/ui'\n\ntype CategoriesMobileProps = {\n categories: Category[]\n helpers: SeoHeaderHelpers[]\n phone: string\n}\n\nexport const CategoriesMobile = ({ categories, helpers, phone }: CategoriesMobileProps) => {\n const containerRef = useRef<HTMLDivElement>(null)\n const containerClientRect = containerRef.current?.getBoundingClientRect()\n\n const [open, setOpen] = useState<boolean>(false)\n\n const onOpenToggle = () => setOpen(!open)\n\n return (\n <div\n ref={containerRef}\n className='relative flex w-full items-center justify-between border-b border-b-blue-grey-500 py-4 desktop:hidden'\n >\n <Icon name='brandLogos/logoMain' className='w-[130px]' />\n <button aria-label='Open menu' type='button' onClick={onOpenToggle} className='h-max w-max'>\n <Icon name={open ? 'general/close' : 'general/menu'} className='size-6 text-color-primary-default' />\n </button>\n\n {open &&\n createPortal(\n <Menu\n categories={categories}\n helpers={helpers}\n phone={phone}\n style={{ top: containerClientRect ? containerClientRect.top + containerClientRect.height : 0 }}\n />,\n /**\n * Нужно для preview, чтобы категории рендерились в iframe\n */\n document.body.querySelector<HTMLIFrameElement>('#modal-preview')?.contentDocument?.body ?? document.body\n )}\n </div>\n )\n}\n"],"names":["CategoriesMobile","categories","helpers","phone","containerRef","useRef","containerClientRect","_a","open","setOpen","useState","jsxs","jsx","Icon","createPortal","Menu","_c","_b"],"mappings":"
|
|
1
|
+
{"version":3,"file":"CategoriesMobile.js","sources":["../../../../../../lib/widgets/seoHeader/ui/mobile/CategoriesMobile.tsx"],"sourcesContent":["import { useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\nimport type { Category, SeoHeaderHelpers } from '../../model'\nimport { Menu } from './menu'\nimport { Icon } from '$/shared/ui'\n\ntype CategoriesMobileProps = {\n categories: Category[]\n helpers: SeoHeaderHelpers[]\n phone: string\n}\n\nexport const CategoriesMobile = ({ categories, helpers, phone }: CategoriesMobileProps) => {\n const containerRef = useRef<HTMLDivElement>(null)\n const containerClientRect = containerRef.current?.getBoundingClientRect()\n\n const [open, setOpen] = useState<boolean>(false)\n\n const onOpenToggle = () => setOpen(!open)\n\n return (\n <div\n ref={containerRef}\n className='relative flex w-full items-center justify-between border-b border-b-blue-grey-500 py-4 desktop:hidden'\n >\n <Icon name='brandLogos/logoMain' className='w-[130px]' />\n <button aria-label='Open menu' type='button' onClick={onOpenToggle} className='h-max w-max'>\n <Icon name={open ? 'general/close' : 'general/menu'} className='size-6 text-color-primary-default' />\n </button>\n\n {open &&\n createPortal(\n <Menu\n categories={categories}\n helpers={helpers}\n phone={phone}\n style={{ top: containerClientRect ? containerClientRect.top + containerClientRect.height : 0 }}\n />,\n /**\n * Нужно для preview, чтобы категории рендерились в iframe\n */\n document.body.querySelector<HTMLIFrameElement>('#modal-preview')?.contentDocument?.body ?? document.body\n )}\n </div>\n )\n}\n"],"names":["CategoriesMobile","categories","helpers","phone","containerRef","useRef","containerClientRect","_a","open","setOpen","useState","jsxs","jsx","Icon","createPortal","Menu","_c","_b"],"mappings":"0nEAYO,MAAMA,EAAmB,CAAC,CAAE,WAAAC,EAAY,QAAAC,EAAS,MAAAC,KAAmC,WACzF,MAAMC,EAAeC,EAAuB,IAAI,EAC1CC,GAAsBC,EAAAH,EAAa,UAAb,YAAAG,EAAsB,wBAE5C,CAACC,EAAMC,CAAO,EAAIC,EAAkB,EAAK,EAI/C,OACEC,EAAC,MAAA,CACC,IAAKP,EACL,UAAU,wGAEV,SAAA,CAAAQ,EAACC,EAAA,CAAK,KAAK,sBAAsB,UAAU,YAAY,IACtD,SAAA,CAAO,aAAW,YAAY,KAAK,SAAS,QAR5B,IAAMJ,EAAQ,CAACD,CAAI,EAQgC,UAAU,cAC5E,SAAAI,EAACC,GAAK,KAAML,EAAO,gBAAkB,eAAgB,UAAU,oCAAoC,EACrG,EAECA,GACCM,EACEF,EAACG,EAAA,CACC,WAAAd,EACA,QAAAC,EACA,MAAAC,EACA,MAAO,CAAE,IAAKG,EAAsBA,EAAoB,IAAMA,EAAoB,OAAS,CAAA,CAAE,CAAA,IAK/FU,GAAAC,EAAA,SAAS,KAAK,cAAiC,gBAAgB,IAA/D,YAAAA,EAAkE,kBAAlE,YAAAD,EAAmF,OAAQ,SAAS,IAAA,CACtG,CAAA,CAAA,CAGR"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as r}from"react/jsx-runtime";import{useState as l}from"react";import"../../../shared/ui/button/Button.js";import"../../../shared/ui/buttonIcon/ButtonIcon.js";import"../../../shared/ui/calendar/Calendar.js";import"../../../shared/ui/calendar/model/utils.js";import"../../../shared/ui/accordion/Accordion.js";import"react-dom";import"../../../shared/ui/modal/ui/IframeModalContent.js";import"../../../../node_modules/react-hot-toast/dist/index.js";import"../../../shared/ui/table/ui/primitives/Primitives.js";import{CarouselBase as n}from"../../../shared/ui/carousel/CarouselBase.js";import{CarouselSlide as c}from"../../../shared/ui/carousel/ui/CarouselSlide.js";import"../../../shared/ui/carousel/ui/CarouselContent.js";import"../../../shared/ui/slot/Slot.js";import"../../../shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.js";import"../../../shared/ui/formElements/uncontrolled/checkbox/Checkbox.js";import"../../../shared/ui/formElements/uncontrolled/combobox/combobox.js";import"../../../shared/ui/formElements/uncontrolled/dayPicker/DayPicker.js";import"../../../shared/ui/formElements/uncontrolled/input/Input.js";import"../../../shared/ui/formElements/uncontrolled/inputOtp/InputOtpBase.js";import"../../../shared/ui/formElements/uncontrolled/maskInput/MaskInput.js";import"../../../shared/ui/formElements/uncontrolled/radio/RadioGroup.js";import"../../../shared/ui/formElements/uncontrolled/radio/ui/RadioItem.js";import"../../../shared/ui/formElements/uncontrolled/slider/SliderBase.js";import"../../../shared/ui/formElements/uncontrolled/switch/Switch.js";import"../../../shared/ui/formElements/uncontrolled/textarea/Textarea.js";import"../../../shared/ui/formElements/uncontrolled/uploader/UploaderBase.js";import"../../../shared/ui/formElements/uncontrolled/inputCurrency/InputCurrency.js";import"../../../shared/ui/formElements/controlled/editor/ui/Editor.js";import"../../../shared/ui/formElements/controlled/input/MaskInputControl.js";import"../../../shared/ui/dropdownList/ui/dropdownItem/DropdownItem.js";const
|
|
1
|
+
import{jsx as r}from"react/jsx-runtime";import{useState as l}from"react";import"../../../../node_modules/classnames/index.js";import"../../../shared/ui/button/Button.js";import"../../../shared/ui/buttonIcon/ButtonIcon.js";import"../../../shared/ui/calendar/Calendar.js";import"../../../shared/ui/calendar/model/utils.js";import"../../../shared/ui/accordion/Accordion.js";import"react-dom";import"../../../shared/ui/modal/ui/IframeModalContent.js";import"../../../../node_modules/react-hot-toast/dist/index.js";import"../../../shared/ui/table/ui/primitives/Primitives.js";import{CarouselBase as n}from"../../../shared/ui/carousel/CarouselBase.js";import{CarouselSlide as c}from"../../../shared/ui/carousel/ui/CarouselSlide.js";import"../../../shared/ui/carousel/ui/CarouselContent.js";import"../../../shared/ui/slot/Slot.js";import"../../../shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.js";import"../../../shared/ui/formElements/uncontrolled/checkbox/Checkbox.js";import"../../../shared/ui/formElements/uncontrolled/combobox/combobox.js";import"../../../shared/ui/formElements/uncontrolled/dayPicker/DayPicker.js";import"../../../shared/ui/formElements/uncontrolled/input/Input.js";import"../../../shared/ui/formElements/uncontrolled/inputOtp/InputOtpBase.js";import"../../../shared/ui/formElements/uncontrolled/maskInput/MaskInput.js";import"../../../shared/ui/formElements/uncontrolled/radio/RadioGroup.js";import"../../../shared/ui/formElements/uncontrolled/radio/ui/RadioItem.js";import"../../../shared/ui/formElements/uncontrolled/slider/SliderBase.js";import"../../../shared/ui/formElements/uncontrolled/switch/Switch.js";import"../../../shared/ui/formElements/uncontrolled/textarea/Textarea.js";import"../../../shared/ui/formElements/uncontrolled/uploader/UploaderBase.js";import"../../../shared/ui/formElements/uncontrolled/inputCurrency/InputCurrency.js";import"../../../shared/ui/formElements/controlled/editor/ui/Editor.js";import"../../../shared/ui/formElements/controlled/input/MaskInputControl.js";import"../../../shared/ui/dropdownList/ui/dropdownItem/DropdownItem.js";const Q=({currentStepper:t,classes:i})=>{const[p,e]=l(0),{carouselClasses:s,carouselSlideClasses:m}=i||{};return r(n,{carouselOptions:{dragFree:!1},visibleIndex:p,setVisibleIndex:e,autoPlayOptions:{active:!1},classes:{containerWithNavClasses:{wrapper:"gap-4"},root:"desktop:hidden",carouselContentClasses:{slidesOverlay:"max-w-full w-full"},...s},children:t.details.map((a,o)=>r(c,{variant:"fullScreen",slideIndex:o,...a,classes:{slide:"mobile:w-[328px] desktop:w-[1140px]",...m}},o))})};export{Q as StepperCarousel};
|
|
2
2
|
//# sourceMappingURL=StepperCarousel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StepperCarousel.js","sources":["../../../../../lib/widgets/stepper/ui/StepperCarousel.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { type SingleStepper } from '../model/types'\nimport { CarouselBase, type CarouselClasses, CarouselSlide, type CarouselSlideClasses } from '$/shared/ui'\n\nexport type StepperCarouselClasses = {\n carouselClasses?: CarouselClasses\n carouselSlideClasses?: CarouselSlideClasses\n}\n\ninterface SingleStepMobileProps<Enabled extends boolean> {\n currentStepper: SingleStepper<Enabled>\n classes?: StepperCarouselClasses\n}\n\nexport const StepperCarousel = <Enabled extends boolean>({ currentStepper, classes }: SingleStepMobileProps<Enabled>) => {\n const [visibleIndex, setVisibleIndex] = useState(0)\n\n const { carouselClasses, carouselSlideClasses } = classes || {}\n\n return (\n <CarouselBase\n carouselOptions={{\n dragFree: false\n }}\n visibleIndex={visibleIndex}\n setVisibleIndex={setVisibleIndex}\n autoPlayOptions={{\n active: false\n }}\n classes={{\n containerWithNavClasses: {\n wrapper: 'gap-4'\n },\n root: 'desktop:hidden',\n carouselContentClasses: {\n slidesOverlay: 'max-w-full w-full'\n },\n ...carouselClasses\n }}\n >\n {currentStepper.details.map((slide, slideIndex) => (\n <CarouselSlide\n key={slideIndex}\n variant='fullScreen'\n slideIndex={slideIndex}\n {...slide}\n classes={{\n slide: 'mobile:w-[328px] desktop:w-[1140px]',\n ...carouselSlideClasses\n }}\n />\n ))}\n </CarouselBase>\n )\n}\n"],"names":["StepperCarousel","currentStepper","classes","visibleIndex","setVisibleIndex","useState","carouselClasses","carouselSlideClasses","jsx","CarouselBase","slide","slideIndex","CarouselSlide"],"mappings":"
|
|
1
|
+
{"version":3,"file":"StepperCarousel.js","sources":["../../../../../lib/widgets/stepper/ui/StepperCarousel.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { type SingleStepper } from '../model/types'\nimport { CarouselBase, type CarouselClasses, CarouselSlide, type CarouselSlideClasses } from '$/shared/ui'\n\nexport type StepperCarouselClasses = {\n carouselClasses?: CarouselClasses\n carouselSlideClasses?: CarouselSlideClasses\n}\n\ninterface SingleStepMobileProps<Enabled extends boolean> {\n currentStepper: SingleStepper<Enabled>\n classes?: StepperCarouselClasses\n}\n\nexport const StepperCarousel = <Enabled extends boolean>({ currentStepper, classes }: SingleStepMobileProps<Enabled>) => {\n const [visibleIndex, setVisibleIndex] = useState(0)\n\n const { carouselClasses, carouselSlideClasses } = classes || {}\n\n return (\n <CarouselBase\n carouselOptions={{\n dragFree: false\n }}\n visibleIndex={visibleIndex}\n setVisibleIndex={setVisibleIndex}\n autoPlayOptions={{\n active: false\n }}\n classes={{\n containerWithNavClasses: {\n wrapper: 'gap-4'\n },\n root: 'desktop:hidden',\n carouselContentClasses: {\n slidesOverlay: 'max-w-full w-full'\n },\n ...carouselClasses\n }}\n >\n {currentStepper.details.map((slide, slideIndex) => (\n <CarouselSlide\n key={slideIndex}\n variant='fullScreen'\n slideIndex={slideIndex}\n {...slide}\n classes={{\n slide: 'mobile:w-[328px] desktop:w-[1140px]',\n ...carouselSlideClasses\n }}\n />\n ))}\n </CarouselBase>\n )\n}\n"],"names":["StepperCarousel","currentStepper","classes","visibleIndex","setVisibleIndex","useState","carouselClasses","carouselSlideClasses","jsx","CarouselBase","slide","slideIndex","CarouselSlide"],"mappings":"ojEAcO,MAAMA,EAAkB,CAA0B,CAAE,eAAAC,EAAgB,QAAAC,KAA8C,CACvH,KAAM,CAACC,EAAcC,CAAe,EAAIC,EAAS,CAAC,EAE5C,CAAE,gBAAAC,EAAiB,qBAAAC,CAAA,EAAyBL,GAAW,CAAA,EAE7D,OACEM,EAACC,EAAA,CACC,gBAAiB,CACf,SAAU,EAAA,EAEZ,aAAAN,EACA,gBAAAC,EACA,gBAAiB,CACf,OAAQ,EAAA,EAEV,QAAS,CACP,wBAAyB,CACvB,QAAS,OAAA,EAEX,KAAM,iBACN,uBAAwB,CACtB,cAAe,mBAAA,EAEjB,GAAGE,CAAA,EAGJ,SAAAL,EAAe,QAAQ,IAAI,CAACS,EAAOC,IAClCH,EAACI,EAAA,CAEC,QAAQ,aACR,WAAAD,EACC,GAAGD,EACJ,QAAS,CACP,MAAO,uCACP,GAAGH,CAAA,CACL,EAPKI,CAAA,CASR,CAAA,CAAA,CAGP"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{TypeGuards as n}from"../../../shared/utils/typeGuards.js";const
|
|
1
|
+
import"../../../../node_modules/classnames/index.js";import{TypeGuards as n}from"../../../shared/utils/typeGuards.js";const c=r=>{const s={},t=[],i={};for(const e of r)s[e.title]=()=>e.visibleTitle&&!n.isStringEmpty(e.visibleTitle)?e.visibleTitle:e.title,i[e.title]=e.sortingFn,e.enableSorting&&t.push(e.title);return{accessors:s,sortingColumns:t,sortingFn:i}},u=r=>{if(r.type==="true")return!0;if(r.type==="false")return!1;const{condition:s,operand:t}=r;switch(s){case"<":return t.left<t.right;case"<=":return t.left<=t.right;case"===":return t.left===t.right;case"!==":return t.left!==t.right;case">":return t.left>t.right;case">=":return t.left>=t.right}};export{c as getHeaderAccessors,u as isHorizontalTable};
|
|
2
2
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../../lib/widgets/table/model/utils.ts"],"sourcesContent":["import { type HeaderContext, type SortingFnOption } from '@tanstack/react-table'\nimport type { ColumnDefinition, OrientationOptions } from './types'\nimport { TypeGuards } from '$/shared/utils'\n\nexport const getHeaderAccessors = <Key extends string, TData extends Record<Key, unknown>>(columns: ColumnDefinition<Key>[]) => {\n const accessors = {} as Record<\n keyof TData,\n (key: keyof TData, headerContext: HeaderContext<TData, TData[keyof TData]>) => React.ReactNode\n >\n const sortingColumns: Key[] = []\n const sortingFn: Partial<Record<keyof TData, SortingFnOption<TData>>> = {}\n\n for (const column of columns) {\n accessors[column.title] = () =>\n column.visibleTitle && !TypeGuards.isStringEmpty(column.visibleTitle) ? column.visibleTitle : column.title\n sortingFn[column.title] = column.sortingFn\n\n if (column.enableSorting) sortingColumns.push(column.title)\n }\n\n return { accessors, sortingColumns, sortingFn }\n}\n\nexport const isHorizontalTable = (orientation: OrientationOptions) => {\n if (orientation.type === 'true') return true\n if (orientation.type === 'false') return false\n\n const { condition, operand } = orientation\n\n switch (condition) {\n case '<':\n return operand.left < operand.right\n case '<=':\n return operand.left <= operand.right\n case '===':\n return operand.left === operand.right\n case '!==':\n return operand.left !== operand.right\n case '>':\n return operand.left > operand.right\n case '>=':\n return operand.left >= operand.right\n }\n}\n"],"names":["getHeaderAccessors","columns","accessors","sortingColumns","sortingFn","column","TypeGuards","isHorizontalTable","orientation","condition","operand"],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../../lib/widgets/table/model/utils.ts"],"sourcesContent":["import { type HeaderContext, type SortingFnOption } from '@tanstack/react-table'\nimport type { ColumnDefinition, OrientationOptions } from './types'\nimport { TypeGuards } from '$/shared/utils'\n\nexport const getHeaderAccessors = <Key extends string, TData extends Record<Key, unknown>>(columns: ColumnDefinition<Key>[]) => {\n const accessors = {} as Record<\n keyof TData,\n (key: keyof TData, headerContext: HeaderContext<TData, TData[keyof TData]>) => React.ReactNode\n >\n const sortingColumns: Key[] = []\n const sortingFn: Partial<Record<keyof TData, SortingFnOption<TData>>> = {}\n\n for (const column of columns) {\n accessors[column.title] = () =>\n column.visibleTitle && !TypeGuards.isStringEmpty(column.visibleTitle) ? column.visibleTitle : column.title\n sortingFn[column.title] = column.sortingFn\n\n if (column.enableSorting) sortingColumns.push(column.title)\n }\n\n return { accessors, sortingColumns, sortingFn }\n}\n\nexport const isHorizontalTable = (orientation: OrientationOptions) => {\n if (orientation.type === 'true') return true\n if (orientation.type === 'false') return false\n\n const { condition, operand } = orientation\n\n switch (condition) {\n case '<':\n return operand.left < operand.right\n case '<=':\n return operand.left <= operand.right\n case '===':\n return operand.left === operand.right\n case '!==':\n return operand.left !== operand.right\n case '>':\n return operand.left > operand.right\n case '>=':\n return operand.left >= operand.right\n }\n}\n"],"names":["getHeaderAccessors","columns","accessors","sortingColumns","sortingFn","column","TypeGuards","isHorizontalTable","orientation","condition","operand"],"mappings":"sHAIO,MAAMA,EAA8EC,GAAqC,CAC9H,MAAMC,EAAY,CAAA,EAIZC,EAAwB,CAAA,EACxBC,EAAkE,CAAA,EAExE,UAAWC,KAAUJ,EACnBC,EAAUG,EAAO,KAAK,EAAI,IACxBA,EAAO,cAAgB,CAACC,EAAW,cAAcD,EAAO,YAAY,EAAIA,EAAO,aAAeA,EAAO,MACvGD,EAAUC,EAAO,KAAK,EAAIA,EAAO,UAE7BA,EAAO,eAAeF,EAAe,KAAKE,EAAO,KAAK,EAG5D,MAAO,CAAE,UAAAH,EAAW,eAAAC,EAAgB,UAAAC,CAAA,CACtC,EAEaG,EAAqBC,GAAoC,CACpE,GAAIA,EAAY,OAAS,OAAQ,MAAO,GACxC,GAAIA,EAAY,OAAS,QAAS,MAAO,GAEzC,KAAM,CAAE,UAAAC,EAAW,QAAAC,CAAA,EAAYF,EAE/B,OAAQC,EAAA,CACN,IAAK,IACH,OAAOC,EAAQ,KAAOA,EAAQ,MAChC,IAAK,KACH,OAAOA,EAAQ,MAAQA,EAAQ,MACjC,IAAK,MACH,OAAOA,EAAQ,OAASA,EAAQ,MAClC,IAAK,MACH,OAAOA,EAAQ,OAASA,EAAQ,MAClC,IAAK,IACH,OAAOA,EAAQ,KAAOA,EAAQ,MAChC,IAAK,KACH,OAAOA,EAAQ,MAAQA,EAAQ,KAAA,CAErC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{getDefaultExportFromCjs as p}from"../../_virtual/_commonjsHelpers.js";import{__module as i}from"../../_virtual/
|
|
1
|
+
import{getDefaultExportFromCjs as p}from"../../_virtual/_commonjsHelpers.js";import{__module as i}from"../../_virtual/index.js";/*!
|
|
2
2
|
Copyright (c) 2018 Jed Watson.
|
|
3
3
|
Licensed under the MIT License (MIT), see
|
|
4
4
|
http://jedwatson.github.io/classnames
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{getDefaultExportFromCjs as r}from"../../_virtual/_commonjsHelpers.js";import{__module as o}from"../../_virtual/
|
|
1
|
+
import{getDefaultExportFromCjs as r}from"../../_virtual/_commonjsHelpers.js";import{__module as o}from"../../_virtual/index2.js";import{f as p}from"./factoryWithThrowingShims.js";o.exports=p();var t=o.exports;const a=r(t);export{a as default};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../node_modules/prop-types/index.js"],"sourcesContent":["/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n"],"names":["propTypesModule","require$$0"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../node_modules/prop-types/index.js"],"sourcesContent":["/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n"],"names":["propTypesModule","require$$0"],"mappings":"mLAiBEA,EAAA,QAAiBC,EAAoC","x_google_ignoreList":[0]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{TypeGuards as e}from"../../../lib/shared/utils/typeGuards.js";import{zodValidators as i}from"../../../lib/shared/validation/index.js";import{object as
|
|
1
|
+
import"../../../node_modules/classnames/index.js";import{TypeGuards as e}from"../../../lib/shared/utils/typeGuards.js";import{zodValidators as i}from"../../../lib/shared/validation/index.js";import{object as m}from"../../../node_modules/zod/v3/types.js";const d=["getFioSchema"],c=(a,o,r)=>{const t=a[o];if(e.isNil(t))throw new Error(`validation for type ${String(o)} not found`);if(!e.isFunction(t))throw new Error(`Cannot generate ${String(o)} because is not a function`);return t(r)},u=(a,o)=>c(i.base,a,o),p=(a,o)=>c(i.dadata,a,o),S=a=>{const r=((a==null?void 0:a.map(t=>({name:t.args.name,validation:t.args.validation})))??[]).reduce((t,n)=>{const s=d.includes(n.validation.type)?p(n.validation.type,n.validation.args):u(n.validation.type,n.validation.args);return t[n.name]=s,t},{});return m(r)};export{S as getDynamicSchema};
|
|
2
2
|
//# sourceMappingURL=getDynamicSchema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDynamicSchema.js","sources":["../../../../src/shared/utils/getDynamicSchema.ts"],"sourcesContent":["import { type FieldValues } from 'react-hook-form'\nimport { object, type ZodObject, type ZodRawShape, type ZodTypeAny } from 'zod'\nimport { TypeGuards } from '$/shared/utils'\nimport { zodValidators } from '$/shared/validation'\nimport { type FieldElement } from '$/widgets'\n\nexport type FieldValidation = {\n type: string\n args: Record<string, any>\n}\n\ntype ValidationSchema = {\n [key: string]: (...args: any[]) => ZodTypeAny\n}\n\ntype ValidationConfig<T extends ValidationSchema> = {\n [K in keyof T]: Parameters<T[K]>[0]\n}\n\ntype ValidationReturn<T extends ValidationSchema> = {\n [K in keyof T]: ReturnType<T[K]>\n}\n\ntype BaseValidationKey = keyof typeof zodValidators.base\ntype BaseValidationSchema = typeof zodValidators.base\ntype BaseValidationConfig = ValidationConfig<BaseValidationSchema>\ntype BaseValidationReturn = ValidationReturn<BaseValidationSchema>\n\ntype DadataValidationKey = keyof typeof zodValidators.dadata\ntype DadataValidationSchema = typeof zodValidators.dadata\ntype DadataValidationConfig = ValidationConfig<DadataValidationSchema>\ntype DadataValidationReturn = ValidationReturn<DadataValidationSchema>\n\nconst existDadataSchemas = ['getFioSchema']\n\nconst createFieldSchema = <Schema extends ValidationSchema, Type extends keyof Schema>(\n schema: Schema,\n type: Type,\n props: ValidationConfig<Schema>[Type]\n): ValidationReturn<Schema>[Type] => {\n const validator = schema[type]\n\n if (TypeGuards.isNil(validator)) {\n throw new Error(`validation for type ${String(type)} not found`)\n }\n\n if (!TypeGuards.isFunction(validator)) {\n throw new Error(`Cannot generate ${String(type)} because is not a function`)\n }\n\n return validator(props) as ValidationReturn<Schema>[Type]\n}\n\nconst createBaseFieldSchema = <Type extends BaseValidationKey>(\n type: Type,\n props: BaseValidationConfig[Type]\n): BaseValidationReturn[Type] => {\n return createFieldSchema(zodValidators.base, type, props)\n}\n\nconst createDadataFieldSchema = <Type extends DadataValidationKey>(\n type: Type,\n props: DadataValidationConfig[Type]\n): DadataValidationReturn[Type] => {\n return createFieldSchema(zodValidators.dadata, type, props)\n}\n\nexport const getDynamicSchema = <TFieldValues extends FieldValues>(\n fields: FieldElement<TFieldValues, any, { validation: FieldValidation }>[] | undefined\n): ZodObject<ZodRawShape> => {\n const fieldValidation = fields?.map((field) => ({ name: field.args.name, validation: field.args.validation })) ?? []\n\n const shape = fieldValidation.reduce<ZodRawShape>((acc, field) => {\n const validation = existDadataSchemas.includes(field.validation.type)\n ? createDadataFieldSchema(\n field.validation.type as DadataValidationKey,\n field.validation.args as DadataValidationConfig[DadataValidationKey]\n )\n : createBaseFieldSchema(\n field.validation.type as BaseValidationKey,\n field.validation.args as BaseValidationConfig[BaseValidationKey]\n )\n\n acc[field.name] = validation\n\n return acc\n }, {})\n\n return object(shape)\n}\n"],"names":["existDadataSchemas","createFieldSchema","schema","type","props","validator","TypeGuards","createBaseFieldSchema","zodValidators","createDadataFieldSchema","getDynamicSchema","fields","shape","field","acc","validation","object"],"mappings":"
|
|
1
|
+
{"version":3,"file":"getDynamicSchema.js","sources":["../../../../src/shared/utils/getDynamicSchema.ts"],"sourcesContent":["import { type FieldValues } from 'react-hook-form'\nimport { object, type ZodObject, type ZodRawShape, type ZodTypeAny } from 'zod'\nimport { TypeGuards } from '$/shared/utils'\nimport { zodValidators } from '$/shared/validation'\nimport { type FieldElement } from '$/widgets'\n\nexport type FieldValidation = {\n type: string\n args: Record<string, any>\n}\n\ntype ValidationSchema = {\n [key: string]: (...args: any[]) => ZodTypeAny\n}\n\ntype ValidationConfig<T extends ValidationSchema> = {\n [K in keyof T]: Parameters<T[K]>[0]\n}\n\ntype ValidationReturn<T extends ValidationSchema> = {\n [K in keyof T]: ReturnType<T[K]>\n}\n\ntype BaseValidationKey = keyof typeof zodValidators.base\ntype BaseValidationSchema = typeof zodValidators.base\ntype BaseValidationConfig = ValidationConfig<BaseValidationSchema>\ntype BaseValidationReturn = ValidationReturn<BaseValidationSchema>\n\ntype DadataValidationKey = keyof typeof zodValidators.dadata\ntype DadataValidationSchema = typeof zodValidators.dadata\ntype DadataValidationConfig = ValidationConfig<DadataValidationSchema>\ntype DadataValidationReturn = ValidationReturn<DadataValidationSchema>\n\nconst existDadataSchemas = ['getFioSchema']\n\nconst createFieldSchema = <Schema extends ValidationSchema, Type extends keyof Schema>(\n schema: Schema,\n type: Type,\n props: ValidationConfig<Schema>[Type]\n): ValidationReturn<Schema>[Type] => {\n const validator = schema[type]\n\n if (TypeGuards.isNil(validator)) {\n throw new Error(`validation for type ${String(type)} not found`)\n }\n\n if (!TypeGuards.isFunction(validator)) {\n throw new Error(`Cannot generate ${String(type)} because is not a function`)\n }\n\n return validator(props) as ValidationReturn<Schema>[Type]\n}\n\nconst createBaseFieldSchema = <Type extends BaseValidationKey>(\n type: Type,\n props: BaseValidationConfig[Type]\n): BaseValidationReturn[Type] => {\n return createFieldSchema(zodValidators.base, type, props)\n}\n\nconst createDadataFieldSchema = <Type extends DadataValidationKey>(\n type: Type,\n props: DadataValidationConfig[Type]\n): DadataValidationReturn[Type] => {\n return createFieldSchema(zodValidators.dadata, type, props)\n}\n\nexport const getDynamicSchema = <TFieldValues extends FieldValues>(\n fields: FieldElement<TFieldValues, any, { validation: FieldValidation }>[] | undefined\n): ZodObject<ZodRawShape> => {\n const fieldValidation = fields?.map((field) => ({ name: field.args.name, validation: field.args.validation })) ?? []\n\n const shape = fieldValidation.reduce<ZodRawShape>((acc, field) => {\n const validation = existDadataSchemas.includes(field.validation.type)\n ? createDadataFieldSchema(\n field.validation.type as DadataValidationKey,\n field.validation.args as DadataValidationConfig[DadataValidationKey]\n )\n : createBaseFieldSchema(\n field.validation.type as BaseValidationKey,\n field.validation.args as BaseValidationConfig[BaseValidationKey]\n )\n\n acc[field.name] = validation\n\n return acc\n }, {})\n\n return object(shape)\n}\n"],"names":["existDadataSchemas","createFieldSchema","schema","type","props","validator","TypeGuards","createBaseFieldSchema","zodValidators","createDadataFieldSchema","getDynamicSchema","fields","shape","field","acc","validation","object"],"mappings":"8PAiCA,MAAMA,EAAqB,CAAC,cAAc,EAEpCC,EAAoB,CACxBC,EACAC,EACAC,IACmC,CACnC,MAAMC,EAAYH,EAAOC,CAAI,EAE7B,GAAIG,EAAW,MAAMD,CAAS,EAC5B,MAAM,IAAI,MAAM,uBAAuB,OAAOF,CAAI,CAAC,YAAY,EAGjE,GAAI,CAACG,EAAW,WAAWD,CAAS,EAClC,MAAM,IAAI,MAAM,mBAAmB,OAAOF,CAAI,CAAC,4BAA4B,EAG7E,OAAOE,EAAUD,CAAK,CACxB,EAEMG,EAAwB,CAC5BJ,EACAC,IAEOH,EAAkBO,EAAc,KAAML,EAAMC,CAAK,EAGpDK,EAA0B,CAC9BN,EACAC,IAEOH,EAAkBO,EAAc,OAAQL,EAAMC,CAAK,EAG/CM,EACXC,GAC2B,CAG3B,MAAMC,IAFkBD,GAAA,YAAAA,EAAQ,IAAKE,IAAW,CAAE,KAAMA,EAAM,KAAK,KAAM,WAAYA,EAAM,KAAK,UAAA,MAAkB,CAAA,GAEpF,OAAoB,CAACC,EAAKD,IAAU,CAChE,MAAME,EAAaf,EAAmB,SAASa,EAAM,WAAW,IAAI,EAChEJ,EACEI,EAAM,WAAW,KACjBA,EAAM,WAAW,IAAA,EAEnBN,EACEM,EAAM,WAAW,KACjBA,EAAM,WAAW,IAAA,EAGvB,OAAAC,EAAID,EAAM,IAAI,EAAIE,EAEXD,CACT,EAAG,CAAA,CAAE,EAEL,OAAOE,EAAOJ,CAAK,CACrB"}
|