@scbt-ecom/ui 0.139.0 → 0.139.2

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 +1 @@
1
- {"version":3,"file":"DynamicFormDialog.js","sources":["../../../../lib/widgets/dynamicFormDialog/DynamicFormDialog.tsx"],"sourcesContent":["'use client'\nimport { useState } from 'react'\nimport type { Control, FieldValues, SubmitHandler } from 'react-hook-form'\nimport { type TypeOf } from 'zod'\nimport { AuthProvider } from '../authProvider'\nimport { type Auth, type AuthMode } from '../dynamicForm/model'\nimport { HTMLRenderer } from '../htmlParser'\nimport type { Approvement, ApprovementType } from './model'\nimport { type FieldValidation, getDynamicSchema } from '@/shared/utils'\nimport { useControlledForm } from '$/shared/hooks'\nimport { Button, type ButtonProps, CheckboxBase, type CheckedState, Dialog } from '$/shared/ui'\nimport { cn, TypeGuards } from '$/shared/utils'\nimport { ZodUtils } from '$/shared/validation'\nimport { type FieldElement, FieldMapper } from '$/widgets/fieldMapper'\nimport { QueryClientProvider } from '$/widgets/queryClientProvider'\n\ntype SubmitProps = {\n submitCallback: <T extends FieldValues>(values: T) => void\n}\n\ntype ApprovementClasses = {\n checkbox?: React.ComponentProps<typeof CheckboxBase>['classes']\n content?: string\n}\n\ntype DynamicFormDialogClasses = {\n root?: string\n title?: string\n fields?: string\n form?: string\n approvement?: ApprovementClasses\n submit?: string\n}\n\nexport type DynamicFormDialogProps<\n AType extends ApprovementType,\n AuthType extends AuthMode\n> = React.DialogHTMLAttributes<HTMLDialogElement> & {\n fields: FieldElement<any, any, { validation: FieldValidation }>[]\n title: string\n approvement: Approvement<AType>\n dialogId: string\n submitProps?: SubmitProps\n classes?: DynamicFormDialogClasses\n buttonGroup: ButtonProps[]\n auth: Auth<AuthType>\n ssoAuthorizationTop?: boolean\n}\n\nconst withApprovement = <Type extends ApprovementType>(\n approvement: Approvement<Type>,\n checked: CheckedState,\n onCheckedChange: (checked: CheckedState) => void,\n classes?: ApprovementClasses\n) => {\n if (approvement.type === 'off') return null\n\n if (approvement.type === 'text') {\n return <HTMLRenderer html={approvement.message} as='div' className={classes?.content} />\n }\n\n return (\n <label\n className={cn(\n 'mob-body-regular-s text-color-dark',\n 'desktop:desk-body-regular-m desktop:gap-x-4',\n 'flex items-center justify-items-start gap-x-3'\n )}\n >\n <CheckboxBase classes={classes?.checkbox} checked={checked} onCheckedChange={onCheckedChange} />\n <HTMLRenderer html={approvement.content} as='div' className={classes?.content} />\n </label>\n )\n}\n\nconst withAuthProvider = <Mode extends AuthMode>(auth: Auth<Mode>) => {\n switch (auth.mode) {\n case 'esia':\n return <AuthProvider {...auth} mode={auth.mode} />\n case 'mobileId':\n return <AuthProvider {...auth} mode={auth.mode} />\n case 'combine':\n return <AuthProvider {...auth} mode={auth.mode} />\n case 'off':\n return null\n }\n}\n\nexport const DynamicFormDialog = <AType extends ApprovementType, AuthType extends AuthMode>({\n fields,\n title,\n approvement,\n submitProps,\n dialogId,\n classes,\n auth,\n buttonGroup,\n ssoAuthorizationTop = false,\n ...props\n}: DynamicFormDialogProps<AType, AuthType>) => {\n const { submitCallback } = submitProps ?? {}\n\n const [checked, onCheckedChange] = useState<CheckedState>(false)\n\n const schema = getDynamicSchema(fields)\n const defaultValues = ZodUtils.getZodDefaults(schema)\n\n const { control, handleSubmit } = useControlledForm({\n schema,\n defaultValues,\n mode: 'onBlur'\n })\n\n const onSubmit: SubmitHandler<TypeOf<typeof schema>> = (values) => {\n if (submitCallback) submitCallback({ ...values, agree: checked })\n }\n\n return (\n <QueryClientProvider>\n <Dialog id={dialogId} title={title} {...props}>\n <form onSubmit={handleSubmit(onSubmit)} className='flex flex-col gap-6'>\n {ssoAuthorizationTop && withAuthProvider(auth)}\n <FieldMapper control={control as unknown as Control} fields={fields} />\n {withApprovement(approvement, checked, onCheckedChange, classes?.approvement)}\n {TypeGuards.isArrayFilled(buttonGroup) && (\n <div className='flex flex-col gap-4'>\n {buttonGroup?.map((button, index) => {\n const disabled = button.type === 'submit' && approvement.type === 'checkbox' ? !checked : false\n\n return (\n <Button\n {...button}\n size='lg'\n key={index}\n disabled={disabled}\n className={cn(\n 'w-full whitespace-nowrap',\n {\n 'w-full': Boolean(approvement)\n },\n classes?.submit\n )}\n />\n )\n })}\n </div>\n )}\n {/*<Button {...buttonProps} type='submit' disabled={approvement.type === 'checkbox' ? !checked : false} className='w-full'>*/}\n {/* {children ?? 'Отправить форму'}*/}\n {/*</Button>*/}\n {!ssoAuthorizationTop && withAuthProvider(auth)}\n </form>\n </Dialog>\n </QueryClientProvider>\n )\n}\n\nexport default DynamicFormDialog\n"],"names":["withApprovement","approvement","checked","onCheckedChange","classes","jsx","HTMLRenderer","jsxs","cn","CheckboxBase","withAuthProvider","auth","AuthProvider","DynamicFormDialog","fields","title","submitProps","dialogId","buttonGroup","ssoAuthorizationTop","props","submitCallback","useState","schema","getDynamicSchema","defaultValues","ZodUtils","control","handleSubmit","useControlledForm","QueryClientProvider","Dialog","values","FieldMapper","TypeGuards","button","index","disabled","createElement","Button"],"mappings":"6wFAiDA,MAAMA,EAAkB,CACtBC,EACAC,EACAC,EACAC,IAEIH,EAAY,OAAS,MAAc,KAEnCA,EAAY,OAAS,OAChBI,EAACC,GAAa,KAAML,EAAY,QAAS,GAAG,MAAM,UAAWG,GAAA,YAAAA,EAAS,OAAA,CAAS,EAItFG,EAAC,QAAA,CACC,UAAWC,EACT,qCACA,8CACA,+CAAA,EAGF,SAAA,CAAAH,EAACI,EAAA,CAAa,QAASL,GAAA,YAAAA,EAAS,SAAU,QAAAF,EAAkB,gBAAAC,EAAkC,EAC9FE,EAACC,GAAa,KAAML,EAAY,QAAS,GAAG,MAAM,UAAWG,GAAA,YAAAA,EAAS,OAAA,CAAS,CAAA,CAAA,CAAA,EAK/EM,EAA2CC,GAAqB,CACpE,OAAQA,EAAK,KAAA,CACX,IAAK,OACH,SAAQC,EAAA,CAAc,GAAGD,EAAM,KAAMA,EAAK,KAAM,EAClD,IAAK,WACH,SAAQC,EAAA,CAAc,GAAGD,EAAM,KAAMA,EAAK,KAAM,EAClD,IAAK,UACH,SAAQC,EAAA,CAAc,GAAGD,EAAM,KAAMA,EAAK,KAAM,EAClD,IAAK,MACH,OAAO,IAAA,CAEb,EAEaE,GAAoB,CAA2D,CAC1F,OAAAC,EACA,MAAAC,EACA,YAAAd,EACA,YAAAe,EACA,SAAAC,EACA,QAAAb,EACA,KAAAO,EACA,YAAAO,EACA,oBAAAC,EAAsB,GACtB,GAAGC,CACL,IAA+C,CAC7C,KAAM,CAAE,eAAAC,GAAmBL,GAAe,CAAA,EAEpC,CAACd,EAASC,CAAe,EAAImB,EAAuB,EAAK,EAEzDC,EAASC,EAAiBV,CAAM,EAChCW,EAAgBC,EAAS,eAAeH,CAAM,EAE9C,CAAE,QAAAI,EAAS,aAAAC,CAAA,EAAiBC,EAAkB,CAClD,OAAAN,EACA,cAAAE,EACA,KAAM,QAAA,CACP,EAMD,SACGK,EAAA,CACC,SAAAzB,EAAC0B,EAAA,CAAO,GAAId,EAAU,MAAAF,EAAe,GAAGK,EACtC,SAAAb,EAAC,QAAK,SAAUqB,EAPkCI,GAAW,CAC7DX,GAAgBA,EAAe,CAAE,GAAGW,EAAQ,MAAO9B,EAAS,CAClE,CAK2C,EAAG,UAAU,sBAC/C,SAAA,CAAAiB,GAAuBT,EAAiBC,CAAI,EAC7CN,EAAC4B,EAAA,CAAY,QAAAN,EAAwC,OAAAb,CAAA,CAAgB,EACpEd,EAAgBC,EAAaC,EAASC,EAAiBC,GAAA,YAAAA,EAAS,WAAW,EAC3E8B,EAAW,cAAchB,CAAW,GACnCb,EAAC,MAAA,CAAI,UAAU,sBACZ,SAAAa,GAAA,YAAAA,EAAa,IAAI,CAACiB,EAAQC,IAAU,CACnC,MAAMC,EAAWF,EAAO,OAAS,UAAYlC,EAAY,OAAS,WAAa,CAACC,EAAU,GAE1F,OACEoC,EAACC,EAAA,CACE,GAAGJ,EACJ,KAAK,KACL,IAAKC,EACL,SAAAC,EACA,UAAW7B,EACT,2BACA,CACE,SAAU,EAAQP,CAAW,EAE/BG,GAAA,YAAAA,EAAS,MAAA,CACX,CAAA,CAGN,EAAC,CACH,EAKD,CAACe,GAAuBT,EAAiBC,CAAI,CAAA,CAAA,CAChD,EACF,EACF,CAEJ"}
1
+ {"version":3,"file":"DynamicFormDialog.js","sources":["../../../../lib/widgets/dynamicFormDialog/DynamicFormDialog.tsx"],"sourcesContent":["'use client'\nimport { useState } from 'react'\nimport type { Control, FieldValues, SubmitHandler } from 'react-hook-form'\nimport { type TypeOf } from 'zod'\nimport { AuthProvider } from '../authProvider'\nimport { type Auth, type AuthMode } from '../dynamicForm/model'\nimport { HTMLRenderer } from '../htmlParser'\nimport type { Approvement, ApprovementType } from './model'\nimport { type FieldValidation, getDynamicSchema } from '@/shared/utils'\nimport { useControlledForm } from '$/shared/hooks'\nimport { Button, type ButtonProps, CheckboxBase, type CheckedState, Dialog } from '$/shared/ui'\nimport { cn, TypeGuards } from '$/shared/utils'\nimport { ZodUtils } from '$/shared/validation'\nimport { type FieldElement, FieldMapper } from '$/widgets/fieldMapper'\nimport { QueryClientProvider } from '$/widgets/queryClientProvider'\n\ntype SubmitProps = {\n submitCallback: <T extends FieldValues>(values: T) => void\n onErrorCallback?: <T extends FieldValues>(error: T) => void\n}\n\ntype ApprovementClasses = {\n checkbox?: React.ComponentProps<typeof CheckboxBase>['classes']\n content?: string\n}\n\ntype DynamicFormDialogClasses = {\n root?: string\n title?: string\n fields?: string\n form?: string\n approvement?: ApprovementClasses\n submit?: string\n}\n\nexport type DynamicFormDialogProps<\n AType extends ApprovementType,\n AuthType extends AuthMode\n> = React.DialogHTMLAttributes<HTMLDialogElement> & {\n fields: FieldElement<any, any, { validation: FieldValidation }>[]\n title: string\n approvement: Approvement<AType>\n dialogId: string\n submitProps?: SubmitProps\n classes?: DynamicFormDialogClasses\n buttonGroup: ButtonProps[]\n auth: Auth<AuthType>\n ssoAuthorizationTop?: boolean\n}\n\nconst withApprovement = <Type extends ApprovementType>(\n approvement: Approvement<Type>,\n checked: CheckedState,\n onCheckedChange: (checked: CheckedState) => void,\n classes?: ApprovementClasses\n) => {\n if (approvement.type === 'off') return null\n\n if (approvement.type === 'text') {\n return <HTMLRenderer html={approvement.message} as='div' className={classes?.content} />\n }\n\n return (\n <label\n className={cn(\n 'mob-body-regular-s text-color-dark',\n 'desktop:desk-body-regular-m desktop:gap-x-4',\n 'flex items-center justify-items-start gap-x-3'\n )}\n >\n <CheckboxBase classes={classes?.checkbox} checked={checked} onCheckedChange={onCheckedChange} />\n <HTMLRenderer html={approvement.content} as='div' className={classes?.content} />\n </label>\n )\n}\n\nconst withAuthProvider = <Mode extends AuthMode>(auth: Auth<Mode>) => {\n switch (auth.mode) {\n case 'esia':\n return <AuthProvider {...auth} mode={auth.mode} />\n case 'mobileId':\n return <AuthProvider {...auth} mode={auth.mode} />\n case 'combine':\n return <AuthProvider {...auth} mode={auth.mode} />\n case 'off':\n return null\n }\n}\n\nexport const DynamicFormDialog = <AType extends ApprovementType, AuthType extends AuthMode>({\n fields,\n title,\n approvement,\n submitProps,\n dialogId,\n classes,\n auth,\n buttonGroup,\n ssoAuthorizationTop = false,\n ...props\n}: DynamicFormDialogProps<AType, AuthType>) => {\n const { submitCallback, onErrorCallback } = submitProps ?? {}\n\n const [checked, onCheckedChange] = useState<CheckedState>(false)\n\n const schema = getDynamicSchema(fields)\n const defaultValues = ZodUtils.getZodDefaults(schema)\n\n const { control, handleSubmit } = useControlledForm({\n schema,\n defaultValues,\n mode: 'onBlur'\n })\n\n const onSubmit: SubmitHandler<TypeOf<typeof schema>> = (values) => {\n if (submitCallback) submitCallback({ ...values, agree: checked })\n }\n\n return (\n <QueryClientProvider>\n <Dialog id={dialogId} title={title} {...props}>\n <form onSubmit={handleSubmit(onSubmit, (error) => onErrorCallback?.(error))} className='flex flex-col gap-6'>\n {ssoAuthorizationTop && withAuthProvider(auth)}\n <FieldMapper control={control as unknown as Control} fields={fields} />\n {withApprovement(approvement, checked, onCheckedChange, classes?.approvement)}\n {TypeGuards.isArrayFilled(buttonGroup) && (\n <div className='flex flex-col gap-4'>\n {buttonGroup?.map((button, index) => {\n const disabled = button.type === 'submit' && approvement.type === 'checkbox' ? !checked : false\n\n return (\n <Button\n {...button}\n size='lg'\n key={index}\n disabled={disabled}\n className={cn(\n 'w-full whitespace-nowrap',\n {\n 'w-full': Boolean(approvement)\n },\n classes?.submit\n )}\n />\n )\n })}\n </div>\n )}\n {/*<Button {...buttonProps} type='submit' disabled={approvement.type === 'checkbox' ? !checked : false} className='w-full'>*/}\n {/* {children ?? 'Отправить форму'}*/}\n {/*</Button>*/}\n {!ssoAuthorizationTop && withAuthProvider(auth)}\n </form>\n </Dialog>\n </QueryClientProvider>\n )\n}\n\nexport default DynamicFormDialog\n"],"names":["withApprovement","approvement","checked","onCheckedChange","classes","jsx","HTMLRenderer","jsxs","cn","CheckboxBase","withAuthProvider","auth","AuthProvider","DynamicFormDialog","fields","title","submitProps","dialogId","buttonGroup","ssoAuthorizationTop","props","submitCallback","onErrorCallback","useState","schema","getDynamicSchema","defaultValues","ZodUtils","control","handleSubmit","useControlledForm","QueryClientProvider","Dialog","values","error","FieldMapper","TypeGuards","button","index","disabled","createElement","Button"],"mappings":"6wFAkDA,MAAMA,EAAkB,CACtBC,EACAC,EACAC,EACAC,IAEIH,EAAY,OAAS,MAAc,KAEnCA,EAAY,OAAS,OAChBI,EAACC,GAAa,KAAML,EAAY,QAAS,GAAG,MAAM,UAAWG,GAAA,YAAAA,EAAS,OAAA,CAAS,EAItFG,EAAC,QAAA,CACC,UAAWC,EACT,qCACA,8CACA,+CAAA,EAGF,SAAA,CAAAH,EAACI,EAAA,CAAa,QAASL,GAAA,YAAAA,EAAS,SAAU,QAAAF,EAAkB,gBAAAC,EAAkC,EAC9FE,EAACC,GAAa,KAAML,EAAY,QAAS,GAAG,MAAM,UAAWG,GAAA,YAAAA,EAAS,OAAA,CAAS,CAAA,CAAA,CAAA,EAK/EM,EAA2CC,GAAqB,CACpE,OAAQA,EAAK,KAAA,CACX,IAAK,OACH,SAAQC,EAAA,CAAc,GAAGD,EAAM,KAAMA,EAAK,KAAM,EAClD,IAAK,WACH,SAAQC,EAAA,CAAc,GAAGD,EAAM,KAAMA,EAAK,KAAM,EAClD,IAAK,UACH,SAAQC,EAAA,CAAc,GAAGD,EAAM,KAAMA,EAAK,KAAM,EAClD,IAAK,MACH,OAAO,IAAA,CAEb,EAEaE,GAAoB,CAA2D,CAC1F,OAAAC,EACA,MAAAC,EACA,YAAAd,EACA,YAAAe,EACA,SAAAC,EACA,QAAAb,EACA,KAAAO,EACA,YAAAO,EACA,oBAAAC,EAAsB,GACtB,GAAGC,CACL,IAA+C,CAC7C,KAAM,CAAE,eAAAC,EAAgB,gBAAAC,CAAA,EAAoBN,GAAe,CAAA,EAErD,CAACd,EAASC,CAAe,EAAIoB,EAAuB,EAAK,EAEzDC,EAASC,EAAiBX,CAAM,EAChCY,EAAgBC,EAAS,eAAeH,CAAM,EAE9C,CAAE,QAAAI,EAAS,aAAAC,CAAA,EAAiBC,EAAkB,CAClD,OAAAN,EACA,cAAAE,EACA,KAAM,QAAA,CACP,EAMD,OACErB,EAAC0B,GACC,SAAA1B,EAAC2B,EAAA,CAAO,GAAIf,EAAU,MAAAF,EAAe,GAAGK,EACtC,SAAAb,EAAC,QAAK,SAAUsB,EAPkCI,GAAW,CAC7DZ,GAAgBA,EAAe,CAAE,GAAGY,EAAQ,MAAO/B,EAAS,CAClE,EAK8CgC,GAAUZ,GAAA,YAAAA,EAAkBY,EAAM,EAAG,UAAU,sBACpF,SAAA,CAAAf,GAAuBT,EAAiBC,CAAI,EAC7CN,EAAC8B,EAAA,CAAY,QAAAP,EAAwC,OAAAd,CAAA,CAAgB,EACpEd,EAAgBC,EAAaC,EAASC,EAAiBC,GAAA,YAAAA,EAAS,WAAW,EAC3EgC,EAAW,cAAclB,CAAW,GACnCb,EAAC,MAAA,CAAI,UAAU,sBACZ,SAAAa,GAAA,YAAAA,EAAa,IAAI,CAACmB,EAAQC,IAAU,CACnC,MAAMC,EAAWF,EAAO,OAAS,UAAYpC,EAAY,OAAS,WAAa,CAACC,EAAU,GAE1F,OACEsC,EAACC,EAAA,CACE,GAAGJ,EACJ,KAAK,KACL,IAAKC,EACL,SAAAC,EACA,UAAW/B,EACT,2BACA,CACE,SAAU,EAAQP,CAAW,EAE/BG,GAAA,YAAAA,EAAS,MAAA,CACX,CAAA,CAGN,EAAC,CACH,EAKD,CAACe,GAAuBT,EAAiBC,CAAI,CAAA,CAAA,CAChD,EACF,EACF,CAEJ"}
@@ -1,2 +1,2 @@
1
- import{jsx as t,jsxs as g}from"react/jsx-runtime";import{useState as v,useMemo as I}from"react";import{widgetIds as e}from"../model/helpers.js";import{Tabs as y}from"./ui/Tabs.js";import{RenderEntity as T}from"./ui/RenderEntity.js";import{ResponsiveContainer as j}from"../../shared/ui/responsiveContainer/ResponsiveContainer.js";import"../../shared/ui/button/Button.js";import"../../shared/ui/buttonIcon/ButtonIcon.js";import{cn as i}from"../../shared/utils/cn.js";import"../../shared/ui/calendar/Calendar.js";import"../../shared/ui/calendar/model/utils.js";import"../../shared/ui/accordion/Accordion.js";import"react-hook-form";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{Heading as C}from"../../shared/ui/heading/Heading.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"../../../src/configs/api.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 po=({headline:d,tabs:r,classes:o,accordionsConfig:u})=>{var n,f;const[p,h]=v(0),x=I(()=>(r==null?void 0:r.map(m=>({tabName:m.tabName,dataLayers:m.dataLayers})))??[],[r]);return!r||(r==null?void 0:r.length)===0?null:t("section",{id:e.usefulInfo,"data-test-id":e.usefulInfo,className:i(o==null?void 0:o.root),children:g(j,{className:i(o==null?void 0:o.container),children:[t(C,{className:i(o==null?void 0:o.headline),as:"h2",children:d}),t("div",{className:i("mt-6 flex flex-col gap-2 desktop:mt-12",o==null?void 0:o.tabsWrapper),children:t(y,{tabsShortInfo:x,activeTab:p,setActiveTab:h,classes:o==null?void 0:o.tabs})}),t("div",{className:i("mt-6 flex flex-col gap-8",o==null?void 0:o.contentWrapper),children:(f=(n=r==null?void 0:r[p])==null?void 0:n.contents)==null?void 0:f.map((m,N)=>t(T,{accordionsConfig:u,...m,classes:o==null?void 0:o.entityClasses},N))})]})})};export{po as UsefulInfo,po as default};
1
+ import{jsx as t,jsxs as g}from"react/jsx-runtime";import{useState as v,useMemo as I}from"react";import{widgetIds as f}from"../model/helpers.js";import{Tabs as y}from"./ui/Tabs.js";import{RenderEntity as T}from"./ui/RenderEntity.js";import{ResponsiveContainer as j}from"../../shared/ui/responsiveContainer/ResponsiveContainer.js";import"../../shared/ui/button/Button.js";import"../../shared/ui/buttonIcon/ButtonIcon.js";import{cn as i}from"../../shared/utils/cn.js";import"../../shared/ui/calendar/Calendar.js";import"../../shared/ui/calendar/model/utils.js";import"../../shared/ui/accordion/Accordion.js";import"react-hook-form";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{Heading as k}from"../../shared/ui/heading/Heading.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"../../../src/configs/api.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 po=({headline:d,tabs:r,classes:o,accordionsConfig:u})=>{var n,e;const[p,h]=v(0),x=I(()=>(r==null?void 0:r.map(m=>({tabName:m.tabName,dataLayers:m.dataLayers})))??[],[r]);return!r||(r==null?void 0:r.length)===0?null:t("section",{id:f.usefulInfo,"data-test-id":f.usefulInfo,className:i(o==null?void 0:o.root),children:g(j,{className:i(o==null?void 0:o.container),children:[t(k,{className:i("text-color-dark",o==null?void 0:o.headline),as:"h2",children:d}),t("div",{className:i("mt-6 flex flex-col gap-2 desktop:mt-12",o==null?void 0:o.tabsWrapper),children:t(y,{tabsShortInfo:x,activeTab:p,setActiveTab:h,classes:o==null?void 0:o.tabs})}),t("div",{className:i("mt-6 flex flex-col gap-8",o==null?void 0:o.contentWrapper),children:(e=(n=r==null?void 0:r[p])==null?void 0:n.contents)==null?void 0:e.map((m,N)=>t(T,{accordionsConfig:u,...m,classes:o==null?void 0:o.entityClasses},N))})]})})};export{po as UsefulInfo,po as default};
2
2
  //# sourceMappingURL=UsefulInfo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UsefulInfo.js","sources":["../../../../lib/widgets/usefulInfo/UsefulInfo.tsx"],"sourcesContent":["import { useMemo, useState } from 'react'\nimport { widgetIds } from '../model'\nimport type { EntitiesAccordionsConfig, Tab } from './model'\nimport { type EntityClasses, RenderEntity, Tabs, type TabsClasses } from './ui'\nimport { Heading, ResponsiveContainer } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type UsefulInfoClasses = {\n root?: string\n container?: string\n tabsWrapper?: string\n tabs?: TabsClasses\n headline?: string\n contentWrapper?: string\n entityClasses?: EntityClasses\n}\n\nexport type UsefulInfoProps = {\n headline: string\n tabs: Tab[]\n classes?: UsefulInfoClasses\n accordionsConfig?: EntitiesAccordionsConfig\n}\n\nexport const UsefulInfo = ({ headline, tabs, classes, accordionsConfig }: UsefulInfoProps) => {\n const [activeTab, setActiveTab] = useState(0)\n\n const tabsShortInfo = useMemo(\n () =>\n tabs?.map((tab) => ({\n tabName: tab.tabName,\n dataLayers: tab.dataLayers\n })) ?? [],\n [tabs]\n )\n\n if (!tabs || tabs?.length === 0) return null\n\n return (\n <section id={widgetIds.usefulInfo} data-test-id={widgetIds.usefulInfo} className={cn(classes?.root)}>\n <ResponsiveContainer className={cn(classes?.container)}>\n <Heading className={cn(classes?.headline)} as='h2'>\n {headline}\n </Heading>\n <div className={cn('mt-6 flex flex-col gap-2 desktop:mt-12', classes?.tabsWrapper)}>\n <Tabs tabsShortInfo={tabsShortInfo} activeTab={activeTab} setActiveTab={setActiveTab} classes={classes?.tabs} />\n </div>\n <div className={cn('mt-6 flex flex-col gap-8', classes?.contentWrapper)}>\n {tabs?.[activeTab]?.contents?.map((entity, index) => (\n <RenderEntity accordionsConfig={accordionsConfig} key={index} {...entity} classes={classes?.entityClasses} />\n ))}\n </div>\n </ResponsiveContainer>\n </section>\n )\n}\n\nexport default UsefulInfo\n"],"names":["UsefulInfo","headline","tabs","classes","accordionsConfig","activeTab","setActiveTab","useState","tabsShortInfo","useMemo","tab","widgetIds","cn","jsxs","ResponsiveContainer","jsx","Heading","Tabs","_b","_a","entity","index","RenderEntity"],"mappings":"0rEAwBO,MAAMA,GAAa,CAAC,CAAE,SAAAC,EAAU,KAAAC,EAAM,QAAAC,EAAS,iBAAAC,KAAwC,SAC5F,KAAM,CAACC,EAAWC,CAAY,EAAIC,EAAS,CAAC,EAEtCC,EAAgBC,EACpB,KACEP,GAAA,YAAAA,EAAM,IAAKQ,IAAS,CAClB,QAASA,EAAI,QACb,WAAYA,EAAI,UAAA,MACX,CAAA,EACT,CAACR,CAAI,CAAA,EAGP,MAAI,CAACA,IAAQA,GAAA,YAAAA,EAAM,UAAW,EAAU,OAGrC,UAAA,CAAQ,GAAIS,EAAU,WAAY,eAAcA,EAAU,WAAY,UAAWC,EAAGT,GAAA,YAAAA,EAAS,IAAI,EAChG,SAAAU,EAACC,EAAA,CAAoB,UAAWF,EAAGT,GAAA,YAAAA,EAAS,SAAS,EACnD,SAAA,CAAAY,EAACC,EAAA,CAAQ,UAAWJ,EAAGT,GAAA,YAAAA,EAAS,QAAQ,EAAG,GAAG,KAC3C,SAAAF,CAAA,CACH,IACC,MAAA,CAAI,UAAWW,EAAG,yCAA0CT,GAAA,YAAAA,EAAS,WAAW,EAC/E,SAAAY,EAACE,EAAA,CAAK,cAAAT,EAA8B,UAAAH,EAAsB,aAAAC,EAA4B,QAASH,GAAA,YAAAA,EAAS,KAAM,EAChH,EACAY,EAAC,MAAA,CAAI,UAAWH,EAAG,2BAA4BT,GAAA,YAAAA,EAAS,cAAc,EACnE,UAAAe,GAAAC,EAAAjB,GAAA,YAAAA,EAAOG,KAAP,YAAAc,EAAmB,WAAnB,YAAAD,EAA6B,IAAI,CAACE,EAAQC,IACzCN,EAACO,EAAA,CAAa,iBAAAlB,EAAiD,GAAGgB,EAAQ,QAASjB,GAAA,YAAAA,EAAS,eAArCkB,CAAoD,EAC5G,CACH,CAAA,CAAA,CACF,CAAA,CACF,CAEJ"}
1
+ {"version":3,"file":"UsefulInfo.js","sources":["../../../../lib/widgets/usefulInfo/UsefulInfo.tsx"],"sourcesContent":["import { useMemo, useState } from 'react'\nimport { widgetIds } from '../model'\nimport type { EntitiesAccordionsConfig, Tab } from './model'\nimport { type EntityClasses, RenderEntity, Tabs, type TabsClasses } from './ui'\nimport { Heading, ResponsiveContainer } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type UsefulInfoClasses = {\n root?: string\n container?: string\n tabsWrapper?: string\n tabs?: TabsClasses\n headline?: string\n contentWrapper?: string\n entityClasses?: EntityClasses\n}\n\nexport type UsefulInfoProps = {\n headline: string\n tabs: Tab[]\n classes?: UsefulInfoClasses\n accordionsConfig?: EntitiesAccordionsConfig\n}\n\nexport const UsefulInfo = ({ headline, tabs, classes, accordionsConfig }: UsefulInfoProps) => {\n const [activeTab, setActiveTab] = useState(0)\n\n const tabsShortInfo = useMemo(\n () =>\n tabs?.map((tab) => ({\n tabName: tab.tabName,\n dataLayers: tab.dataLayers\n })) ?? [],\n [tabs]\n )\n\n if (!tabs || tabs?.length === 0) return null\n\n return (\n <section id={widgetIds.usefulInfo} data-test-id={widgetIds.usefulInfo} className={cn(classes?.root)}>\n <ResponsiveContainer className={cn(classes?.container)}>\n <Heading className={cn('text-color-dark', classes?.headline)} as='h2'>\n {headline}\n </Heading>\n <div className={cn('mt-6 flex flex-col gap-2 desktop:mt-12', classes?.tabsWrapper)}>\n <Tabs tabsShortInfo={tabsShortInfo} activeTab={activeTab} setActiveTab={setActiveTab} classes={classes?.tabs} />\n </div>\n <div className={cn('mt-6 flex flex-col gap-8', classes?.contentWrapper)}>\n {tabs?.[activeTab]?.contents?.map((entity, index) => (\n <RenderEntity accordionsConfig={accordionsConfig} key={index} {...entity} classes={classes?.entityClasses} />\n ))}\n </div>\n </ResponsiveContainer>\n </section>\n )\n}\n\nexport default UsefulInfo\n"],"names":["UsefulInfo","headline","tabs","classes","accordionsConfig","activeTab","setActiveTab","useState","tabsShortInfo","useMemo","tab","widgetIds","cn","jsxs","ResponsiveContainer","jsx","Heading","Tabs","_b","_a","entity","index","RenderEntity"],"mappings":"0rEAwBO,MAAMA,GAAa,CAAC,CAAE,SAAAC,EAAU,KAAAC,EAAM,QAAAC,EAAS,iBAAAC,KAAwC,SAC5F,KAAM,CAACC,EAAWC,CAAY,EAAIC,EAAS,CAAC,EAEtCC,EAAgBC,EACpB,KACEP,GAAA,YAAAA,EAAM,IAAKQ,IAAS,CAClB,QAASA,EAAI,QACb,WAAYA,EAAI,UAAA,MACX,CAAA,EACT,CAACR,CAAI,CAAA,EAGP,MAAI,CAACA,IAAQA,GAAA,YAAAA,EAAM,UAAW,EAAU,OAGrC,UAAA,CAAQ,GAAIS,EAAU,WAAY,eAAcA,EAAU,WAAY,UAAWC,EAAGT,GAAA,YAAAA,EAAS,IAAI,EAChG,SAAAU,EAACC,EAAA,CAAoB,UAAWF,EAAGT,GAAA,YAAAA,EAAS,SAAS,EACnD,SAAA,CAAAY,EAACC,EAAA,CAAQ,UAAWJ,EAAG,kBAAmBT,GAAA,YAAAA,EAAS,QAAQ,EAAG,GAAG,KAC9D,SAAAF,CAAA,CACH,IACC,MAAA,CAAI,UAAWW,EAAG,yCAA0CT,GAAA,YAAAA,EAAS,WAAW,EAC/E,SAAAY,EAACE,EAAA,CAAK,cAAAT,EAA8B,UAAAH,EAAsB,aAAAC,EAA4B,QAASH,GAAA,YAAAA,EAAS,KAAM,EAChH,EACAY,EAAC,MAAA,CAAI,UAAWH,EAAG,2BAA4BT,GAAA,YAAAA,EAAS,cAAc,EACnE,UAAAe,GAAAC,EAAAjB,GAAA,YAAAA,EAAOG,KAAP,YAAAc,EAAmB,WAAnB,YAAAD,EAA6B,IAAI,CAACE,EAAQC,IACzCN,EAACO,EAAA,CAAa,iBAAAlB,EAAiD,GAAGgB,EAAQ,QAASjB,GAAA,YAAAA,EAAS,eAArCkB,CAAoD,EAC5G,CACH,CAAA,CAAA,CACF,CAAA,CACF,CAEJ"}