@scbt-ecom/ui 0.122.3 → 0.123.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.
Files changed (31) hide show
  1. package/dist/lib/shared/ui/formElements/controlled/editor/EditorControl.js +1 -1
  2. package/dist/lib/shared/ui/formElements/controlled/editor/EditorControl.js.map +1 -1
  3. package/dist/lib/shared/ui/formElements/controlled/editor/ui/EditorModal.js +1 -1
  4. package/dist/lib/shared/ui/formElements/controlled/editor/ui/EditorModal.js.map +1 -1
  5. package/dist/lib/widgets/authProvider/AuthProvider.js +1 -1
  6. package/dist/lib/widgets/authProvider/AuthProvider.js.map +1 -1
  7. package/dist/lib/widgets/authProvider/ui/Esia.js +1 -1
  8. package/dist/lib/widgets/authProvider/ui/Esia.js.map +1 -1
  9. package/dist/lib/widgets/dynamicForm/DynamicForm.js +1 -1
  10. package/dist/lib/widgets/dynamicForm/DynamicForm.js.map +1 -1
  11. package/dist/lib/widgets/dynamicFormDialog/DynamicFormDialog.js +1 -1
  12. package/dist/lib/widgets/dynamicFormDialog/DynamicFormDialog.js.map +1 -1
  13. package/dist/lib/widgets/longBanner/LongBanner.js +1 -1
  14. package/dist/lib/widgets/longBanner/LongBanner.js.map +1 -1
  15. package/dist/lib/widgets/model/helpers.js +1 -1
  16. package/dist/lib/widgets/model/helpers.js.map +1 -1
  17. package/dist/lib/widgets/stepper/Stepper.js +1 -1
  18. package/dist/lib/widgets/stepper/Stepper.js.map +1 -1
  19. package/dist/lib/widgets/stepper/ui/StepperTabs.js +1 -1
  20. package/dist/lib/widgets/stepper/ui/StepperTabs.js.map +1 -1
  21. package/dist/node_modules/prosemirror-view/dist/index.js +3 -3
  22. package/dist/node_modules/prosemirror-view/dist/index.js.map +1 -1
  23. package/dist/stats.html +1 -1
  24. package/dist/types/lib/shared/ui/formElements/controlled/editor/ui/EditorModal.d.ts +5 -3
  25. package/dist/types/lib/widgets/authProvider/model/types.d.ts +1 -1
  26. package/dist/types/lib/widgets/dynamicFormDialog/DynamicFormDialog.d.ts +4 -2
  27. package/dist/types/lib/widgets/model/helpers.d.ts +2 -2
  28. package/dist/types/lib/widgets/stepper/Stepper.d.ts +3 -2
  29. package/dist/types/lib/widgets/stepper/model/types.d.ts +2 -2
  30. package/dist/types/lib/widgets/stepper/ui/StepperTabs.d.ts +1 -1
  31. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- import{jsx as n}from"react/jsx-runtime";import{useController as l}from"../../../../../../node_modules/react-hook-form/dist/index.esm.js";import{Editor as x}from"./ui/Editor.js";import{EditorModal as M}from"./ui/EditorModal.js";const s=({control:d,label:r,helperText:o,editable:t=!0,classes:i,defaultValue:u,disabled:e,rules:E,shouldUnregister:p,name:C,small:c,...m})=>{const{field:f,fieldState:{error:j}}=l({control:d,defaultValue:u,disabled:e,rules:E,shouldUnregister:p,name:C});return c?n(M,{...f,editable:t,helperText:o,label:r,classes:i,...m}):n(x,{...f,editable:t,error:j,helperText:o,label:r,classes:i,...m})};export{s as EditorControl};
1
+ import{jsx as d}from"react/jsx-runtime";import{useController as l}from"../../../../../../node_modules/react-hook-form/dist/index.esm.js";import{Editor as x}from"./ui/Editor.js";import{EditorModal as M}from"./ui/EditorModal.js";const s=({control:u,label:r,helperText:o,editable:t=!0,classes:i,defaultValue:e,disabled:E,rules:p,shouldUnregister:C,name:c,small:j,...m})=>{const{field:f,fieldState:{error:n}}=l({control:u,defaultValue:e,disabled:E,rules:p,shouldUnregister:C,name:c});return j?d(M,{error:n,field:f,editable:t,helperText:o,label:r,classes:i,...m}):d(x,{...f,editable:t,error:n,helperText:o,label:r,classes:i,...m})};export{s as EditorControl};
2
2
  //# sourceMappingURL=EditorControl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EditorControl.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/editor/EditorControl.tsx"],"sourcesContent":["import { type ReactElement } from 'react'\nimport { type FieldValues, type Path, useController, type UseControllerProps } from 'react-hook-form'\nimport { Editor } from './ui/Editor'\nimport { EditorModal } from './ui/EditorModal'\n\nexport type EditorControlClasses = {\n root?: string\n editor?: string\n wrapper?: string\n message?: string\n label?: string\n}\n\nexport type EditorControlProps<\n TFieldValues extends FieldValues,\n TName extends Path<TFieldValues> = Path<TFieldValues>\n> = UseControllerProps<TFieldValues, TName> & {\n editable?: boolean\n classes?: EditorControlClasses\n helperText?: string | ReactElement\n label: string\n limit?: number\n small?: boolean\n}\n\nexport const EditorControl = <T extends FieldValues>({\n control,\n label,\n helperText,\n editable = true,\n classes,\n defaultValue,\n disabled,\n rules,\n shouldUnregister,\n name,\n small,\n ...props\n}: EditorControlProps<T>) => {\n const {\n field,\n fieldState: { error }\n } = useController({\n control,\n defaultValue,\n disabled,\n rules,\n shouldUnregister,\n name\n })\n\n if (small) {\n return <EditorModal {...field} editable={editable} helperText={helperText} label={label} classes={classes} {...props} />\n }\n return (\n <Editor {...field} editable={editable} error={error} helperText={helperText} label={label} classes={classes} {...props} />\n )\n}\n"],"names":["EditorControl","control","label","helperText","editable","classes","defaultValue","disabled","rules","shouldUnregister","name","small","props","field","error","useController","jsx","EditorModal","Editor"],"mappings":"mOAyBO,MAAMA,EAAgB,CAAwB,CACnD,QAAAC,EACA,MAAAC,EACA,WAAAC,EACA,SAAAC,EAAW,GACX,QAAAC,EACA,aAAAC,EACA,SAAAC,EACA,MAAAC,EACA,iBAAAC,EACA,KAAAC,EACA,MAAAC,EACA,GAAGC,CACL,IAA6B,CAC3B,KAAM,CACJ,MAAAC,EACA,WAAY,CAAE,MAAAC,CAAA,CAAM,EAClBC,EAAc,CAChB,QAAAd,EACA,aAAAK,EACA,SAAAC,EACA,MAAAC,EACA,iBAAAC,EACA,KAAAC,CAAA,CACD,EAED,OAAIC,EACKK,EAACC,GAAa,GAAGJ,EAAO,SAAAT,EAAoB,WAAAD,EAAwB,MAAAD,EAAc,QAAAG,EAAmB,GAAGO,EAAO,EAGtHI,EAACE,EAAA,CAAQ,GAAGL,EAAO,SAAAT,EAAoB,MAAAU,EAAc,WAAAX,EAAwB,MAAAD,EAAc,QAAAG,EAAmB,GAAGO,CAAA,CAAO,CAE5H"}
1
+ {"version":3,"file":"EditorControl.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/editor/EditorControl.tsx"],"sourcesContent":["import { type ReactElement } from 'react'\nimport { type FieldValues, type Path, useController, type UseControllerProps } from 'react-hook-form'\nimport { Editor } from './ui/Editor'\nimport { EditorModal } from './ui/EditorModal'\n\nexport type EditorControlClasses = {\n root?: string\n editor?: string\n wrapper?: string\n message?: string\n label?: string\n}\n\nexport type EditorControlProps<\n TFieldValues extends FieldValues,\n TName extends Path<TFieldValues> = Path<TFieldValues>\n> = UseControllerProps<TFieldValues, TName> & {\n editable?: boolean\n classes?: EditorControlClasses\n helperText?: string | ReactElement\n label: string\n limit?: number\n small?: boolean\n}\n\nexport const EditorControl = <T extends FieldValues>({\n control,\n label,\n helperText,\n editable = true,\n classes,\n defaultValue,\n disabled,\n rules,\n shouldUnregister,\n name,\n small,\n ...props\n}: EditorControlProps<T>) => {\n const {\n field,\n fieldState: { error }\n } = useController({\n control,\n defaultValue,\n disabled,\n rules,\n shouldUnregister,\n name\n })\n\n if (small) {\n return (\n <EditorModal\n error={error}\n field={field}\n editable={editable}\n helperText={helperText}\n label={label}\n classes={classes}\n {...props}\n />\n )\n }\n return (\n <Editor {...field} editable={editable} error={error} helperText={helperText} label={label} classes={classes} {...props} />\n )\n}\n"],"names":["EditorControl","control","label","helperText","editable","classes","defaultValue","disabled","rules","shouldUnregister","name","small","props","field","error","useController","jsx","EditorModal","Editor"],"mappings":"mOAyBO,MAAMA,EAAgB,CAAwB,CACnD,QAAAC,EACA,MAAAC,EACA,WAAAC,EACA,SAAAC,EAAW,GACX,QAAAC,EACA,aAAAC,EACA,SAAAC,EACA,MAAAC,EACA,iBAAAC,EACA,KAAAC,EACA,MAAAC,EACA,GAAGC,CACL,IAA6B,CAC3B,KAAM,CACJ,MAAAC,EACA,WAAY,CAAE,MAAAC,CAAA,CAAM,EAClBC,EAAc,CAChB,QAAAd,EACA,aAAAK,EACA,SAAAC,EACA,MAAAC,EACA,iBAAAC,EACA,KAAAC,CAAA,CACD,EAED,OAAIC,EAEAK,EAACC,EAAA,CACC,MAAAH,EACA,MAAAD,EACA,SAAAT,EACA,WAAAD,EACA,MAAAD,EACA,QAAAG,EACC,GAAGO,CAAA,CAAA,EAKRI,EAACE,EAAA,CAAQ,GAAGL,EAAO,SAAAT,EAAoB,MAAAU,EAAc,WAAAX,EAAwB,MAAAD,EAAc,QAAAG,EAAmB,GAAGO,CAAA,CAAO,CAE5H"}
@@ -1,2 +1,2 @@
1
- import{jsxs as a,Fragment as h,jsx as t}from"react/jsx-runtime";import{useState as M}from"react";import{useController as v}from"../../../../../../../node_modules/react-hook-form/dist/index.esm.js";import{cn as w}from"../../../../../utils/cn.js";import{Icon as y}from"../../../../icon/Icon.js";import{Modal as I}from"../../../../modal/Modal.js";import"../../../../button/Button.js";import"../../../../buttonIcon/ButtonIcon.js";import"../../../../calendar/Calendar.js";import"../../../../calendar/model/utils.js";import"../../../../accordion/Accordion.js";import"../../../../../../../node_modules/react-hot-toast/dist/index.js";import"../../../../table/ui/primitives/Primitives.js";import"../../../../carousel/ui/CarouselContent.js";import"react-dom";import"../../../../slot/Slot.js";import"../../../uncontrolled/autocomplete/Autocomplete.js";import"../../../uncontrolled/checkbox/Checkbox.js";import"../../../uncontrolled/combobox/combobox.js";import"../../../uncontrolled/dayPicker/DayPicker.js";import{InputBase as N}from"../../../uncontrolled/input/Input.js";import"../../../uncontrolled/inputOtp/InputOtpBase.js";import"../../../uncontrolled/maskInput/MaskInput.js";import"../../../uncontrolled/radio/RadioGroup.js";import"../../../uncontrolled/radio/ui/RadioItem.js";import"../../../uncontrolled/slider/SliderBase.js";import"../../../uncontrolled/switch/Switch.js";import"../../../uncontrolled/textarea/Textarea.js";import"../../../uncontrolled/uploader/UploaderBase.js";import"../../../uncontrolled/inputCurrency/InputCurrency.js";import"../../../../../../../src/configs/api.js";import{Editor as O}from"./Editor.js";import"../../input/MaskInputControl.js";import"../../../../dropdownList/ui/dropdownItem/DropdownItem.js";import{MessageView as S}from"../../../ui/MessageView.js";const ao=({label:l,classes:r,editable:m,helperText:e,control:n,defaultValue:s,disabled:d,rules:f,shouldUnregister:c,name:x,...u})=>{const[g,p]=M(!1),{field:i,fieldState:{error:o}}=v({control:n,defaultValue:s,disabled:d,rules:f,shouldUnregister:c,name:x});return a(h,{children:[a("div",{className:"flex flex-1 flex-col",children:[t(N,{readOnly:!0,label:l,...i,renderValues:()=>t("div",{className:w("peer max-h-[50px] w-full overflow-y-hidden p-4 pb-[9px] pt-[27px]"),dangerouslySetInnerHTML:{__html:i.value}}),attachmentProps:{icon:t(y,{name:"general/edit",className:"size-5 text-color-tetriary"})},onClick:()=>m&&p(!0)}),t(S,{className:r==null?void 0:r.message,intent:o!=null&&o.message?"error":"simple",text:(o==null?void 0:o.message)||e,disabled:!m})]}),t(I,{classes:{modal:"max-w-[700px]"},isModalOpen:g,closeModal:()=>p(!1),children:t(O,{...i,editable:m,error:o,helperText:e,classes:{editor:"min-h-[350px]",...r},...u})})]})};export{ao as EditorModal};
1
+ import{jsxs as a,Fragment as d,jsx as m}from"react/jsx-runtime";import{useState as c}from"react";import{Icon as x}from"../../../../icon/Icon.js";import{Modal as f}from"../../../../modal/Modal.js";import{cn as u}from"../../../../../utils/cn.js";import"../../../../button/Button.js";import"../../../../buttonIcon/ButtonIcon.js";import"../../../../calendar/Calendar.js";import"../../../../calendar/model/utils.js";import"../../../../accordion/Accordion.js";import"../../../../../../../node_modules/react-hot-toast/dist/index.js";import"../../../../table/ui/primitives/Primitives.js";import"../../../../carousel/ui/CarouselContent.js";import"react-dom";import"../../../../slot/Slot.js";import"../../../uncontrolled/autocomplete/Autocomplete.js";import"../../../uncontrolled/checkbox/Checkbox.js";import"../../../uncontrolled/combobox/combobox.js";import"../../../uncontrolled/dayPicker/DayPicker.js";import{InputBase as g}from"../../../uncontrolled/input/Input.js";import"../../../uncontrolled/inputOtp/InputOtpBase.js";import"../../../uncontrolled/maskInput/MaskInput.js";import"../../../uncontrolled/radio/RadioGroup.js";import"../../../uncontrolled/radio/ui/RadioItem.js";import"../../../uncontrolled/slider/SliderBase.js";import"../../../uncontrolled/switch/Switch.js";import"../../../uncontrolled/textarea/Textarea.js";import"../../../uncontrolled/uploader/UploaderBase.js";import"../../../uncontrolled/inputCurrency/InputCurrency.js";import"../../../../../../../src/configs/api.js";import{Editor as h}from"./Editor.js";import"../../input/MaskInputControl.js";import"../../../../dropdownList/ui/dropdownItem/DropdownItem.js";import{MessageView as M}from"../../../ui/MessageView.js";const $=({label:n,classes:o,editable:i,helperText:r,field:p,error:t,...s})=>{const[l,e]=c(!1);return a(d,{children:[a("div",{className:"flex flex-1 flex-col",children:[m(g,{readOnly:!0,label:n,...p,renderValues:()=>m("div",{className:u("peer max-h-[50px] w-full overflow-y-hidden p-4 pb-[9px] pt-[27px]"),dangerouslySetInnerHTML:{__html:p.value}}),attachmentProps:{icon:m(x,{name:"general/edit",className:"size-5 text-color-tetriary"})},onClick:()=>i&&e(!0)}),m(M,{className:o==null?void 0:o.message,intent:t!=null&&t.message?"error":"simple",text:(t==null?void 0:t.message)||r,disabled:!i})]}),m(f,{classes:{modal:"max-w-[700px]"},isModalOpen:l,closeModal:()=>e(!1),children:m(h,{...p,editable:i,error:t,helperText:r,classes:{editor:"min-h-[350px]",...o},...s})})]})};export{$ as EditorModal};
2
2
  //# sourceMappingURL=EditorModal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EditorModal.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/editor/ui/EditorModal.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { type FieldValues, useController } from 'react-hook-form'\nimport { cn } from '../../../../../utils'\nimport { Icon } from '../../../../icon'\nimport { Modal } from '../../../../modal'\nimport { MessageView } from '../../../ui'\nimport { InputBase } from '../../../uncontrolled/input'\nimport { type EditorControlProps } from '../EditorControl'\nimport { Editor } from './Editor'\n\nexport interface EditorModalProps<T extends FieldValues> extends EditorControlProps<T> {}\n\nexport const EditorModal = <T extends FieldValues>({\n label,\n classes,\n editable,\n helperText,\n control,\n defaultValue,\n disabled,\n rules,\n shouldUnregister,\n name,\n ...props\n}: EditorModalProps<T>) => {\n const [isModalOpen, setIsModalOpen] = useState(false)\n\n const {\n field,\n fieldState: { error }\n } = useController({\n control,\n defaultValue,\n disabled,\n rules,\n shouldUnregister,\n name\n })\n\n return (\n <>\n <div className='flex flex-1 flex-col'>\n <InputBase\n readOnly\n label={label}\n {...field}\n renderValues={() => (\n <div\n className={cn('peer max-h-[50px] w-full overflow-y-hidden p-4 pb-[9px] pt-[27px]')}\n dangerouslySetInnerHTML={{ __html: field.value }}\n />\n )}\n attachmentProps={{\n icon: <Icon name='general/edit' className='size-5 text-color-tetriary' />\n }}\n onClick={() => editable && setIsModalOpen(true)}\n />\n <MessageView\n className={classes?.message}\n intent={error?.message ? 'error' : 'simple'}\n text={error?.message || helperText}\n disabled={!editable}\n />\n </div>\n <Modal\n classes={{\n modal: 'max-w-[700px]'\n }}\n isModalOpen={isModalOpen}\n closeModal={() => setIsModalOpen(false)}\n >\n <Editor\n {...field}\n editable={editable}\n error={error}\n helperText={helperText}\n classes={{\n editor: 'min-h-[350px]',\n ...classes\n }}\n {...props}\n />\n </Modal>\n </>\n )\n}\n"],"names":["EditorModal","label","classes","editable","helperText","control","defaultValue","disabled","rules","shouldUnregister","name","props","isModalOpen","setIsModalOpen","useState","field","error","useController","jsxs","Fragment","jsx","InputBase","cn","Icon","MessageView","Modal","Editor"],"mappings":"uvDAYO,MAAMA,GAAc,CAAwB,CACjD,MAAAC,EACA,QAAAC,EACA,SAAAC,EACA,WAAAC,EACA,QAAAC,EACA,aAAAC,EACA,SAAAC,EACA,MAAAC,EACA,iBAAAC,EACA,KAAAC,EACA,GAAGC,CACL,IAA2B,CACzB,KAAM,CAACC,EAAaC,CAAc,EAAIC,EAAS,EAAK,EAE9C,CACJ,MAAAC,EACA,WAAY,CAAE,MAAAC,CAAA,CAAM,EAClBC,EAAc,CAChB,QAAAZ,EACA,aAAAC,EACA,SAAAC,EACA,MAAAC,EACA,iBAAAC,EACA,KAAAC,CAAA,CACD,EAED,OACEQ,EAAAC,EAAA,CACE,SAAA,CAAAD,EAAC,MAAA,CAAI,UAAU,uBACb,SAAA,CAAAE,EAACC,EAAA,CACC,SAAQ,GACR,MAAApB,EACC,GAAGc,EACJ,aAAc,IACZK,EAAC,MAAA,CACC,UAAWE,EAAG,mEAAmE,EACjF,wBAAyB,CAAE,OAAQP,EAAM,KAAA,CAAM,CAAA,EAGnD,gBAAiB,CACf,KAAMK,EAACG,EAAA,CAAK,KAAK,eAAe,UAAU,4BAAA,CAA6B,CAAA,EAEzE,QAAS,IAAMpB,GAAYU,EAAe,EAAI,CAAA,CAAA,EAEhDO,EAACI,EAAA,CACC,UAAWtB,GAAA,YAAAA,EAAS,QACpB,OAAQc,GAAA,MAAAA,EAAO,QAAU,QAAU,SACnC,MAAMA,GAAA,YAAAA,EAAO,UAAWZ,EACxB,SAAU,CAACD,CAAA,CAAA,CACb,EACF,EACAiB,EAACK,EAAA,CACC,QAAS,CACP,MAAO,eAAA,EAET,YAAAb,EACA,WAAY,IAAMC,EAAe,EAAK,EAEtC,SAAAO,EAACM,EAAA,CACE,GAAGX,EACJ,SAAAZ,EACA,MAAAa,EACA,WAAAZ,EACA,QAAS,CACP,OAAQ,gBACR,GAAGF,CAAA,EAEJ,GAAGS,CAAA,CAAA,CACN,CAAA,CACF,EACF,CAEJ"}
1
+ {"version":3,"file":"EditorModal.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/editor/ui/EditorModal.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { type ControllerRenderProps, type FieldError, type FieldValues } from 'react-hook-form'\nimport { Icon } from '../../../../icon'\nimport { Modal } from '../../../../modal'\nimport { MessageView } from '../../../ui'\nimport { InputBase } from '../../../uncontrolled/input'\nimport { type EditorControlProps } from '../EditorControl'\nimport { Editor } from './Editor'\nimport { cn } from '$/shared/utils'\n\nexport interface EditorModalProps<T extends FieldValues>\n extends Pick<EditorControlProps<T>, 'label' | 'classes' | 'editable' | 'helperText'> {\n field: ControllerRenderProps<T>\n error?: FieldError\n}\n\nexport const EditorModal = <T extends FieldValues>({\n label,\n classes,\n editable,\n helperText,\n field,\n error,\n ...props\n}: EditorModalProps<T>) => {\n const [isModalOpen, setIsModalOpen] = useState(false)\n\n return (\n <>\n <div className='flex flex-1 flex-col'>\n <InputBase\n readOnly\n label={label}\n {...field}\n renderValues={() => (\n <div\n className={cn('peer max-h-[50px] w-full overflow-y-hidden p-4 pb-[9px] pt-[27px]')}\n dangerouslySetInnerHTML={{ __html: field.value }}\n />\n )}\n attachmentProps={{\n icon: <Icon name='general/edit' className='size-5 text-color-tetriary' />\n }}\n onClick={() => editable && setIsModalOpen(true)}\n />\n <MessageView\n className={classes?.message}\n intent={error?.message ? 'error' : 'simple'}\n text={error?.message || helperText}\n disabled={!editable}\n />\n </div>\n <Modal\n classes={{\n modal: 'max-w-[700px]'\n }}\n isModalOpen={isModalOpen}\n closeModal={() => setIsModalOpen(false)}\n >\n <Editor\n {...field}\n editable={editable}\n error={error}\n helperText={helperText}\n classes={{\n editor: 'min-h-[350px]',\n ...classes\n }}\n {...props}\n />\n </Modal>\n </>\n )\n}\n"],"names":["EditorModal","label","classes","editable","helperText","field","error","props","isModalOpen","setIsModalOpen","useState","jsxs","Fragment","jsx","InputBase","cn","Icon","MessageView","Modal","Editor"],"mappings":"mpDAgBO,MAAMA,EAAc,CAAwB,CACjD,MAAAC,EACA,QAAAC,EACA,SAAAC,EACA,WAAAC,EACA,MAAAC,EACA,MAAAC,EACA,GAAGC,CACL,IAA2B,CACzB,KAAM,CAACC,EAAaC,CAAc,EAAIC,EAAS,EAAK,EAEpD,OACEC,EAAAC,EAAA,CACE,SAAA,CAAAD,EAAC,MAAA,CAAI,UAAU,uBACb,SAAA,CAAAE,EAACC,EAAA,CACC,SAAQ,GACR,MAAAb,EACC,GAAGI,EACJ,aAAc,IACZQ,EAAC,MAAA,CACC,UAAWE,EAAG,mEAAmE,EACjF,wBAAyB,CAAE,OAAQV,EAAM,KAAA,CAAM,CAAA,EAGnD,gBAAiB,CACf,KAAMQ,EAACG,EAAA,CAAK,KAAK,eAAe,UAAU,4BAAA,CAA6B,CAAA,EAEzE,QAAS,IAAMb,GAAYM,EAAe,EAAI,CAAA,CAAA,EAEhDI,EAACI,EAAA,CACC,UAAWf,GAAA,YAAAA,EAAS,QACpB,OAAQI,GAAA,MAAAA,EAAO,QAAU,QAAU,SACnC,MAAMA,GAAA,YAAAA,EAAO,UAAWF,EACxB,SAAU,CAACD,CAAA,CAAA,CACb,EACF,EACAU,EAACK,EAAA,CACC,QAAS,CACP,MAAO,eAAA,EAET,YAAAV,EACA,WAAY,IAAMC,EAAe,EAAK,EAEtC,SAAAI,EAACM,EAAA,CACE,GAAGd,EACJ,SAAAF,EACA,MAAAG,EACA,WAAAF,EACA,QAAS,CACP,OAAQ,gBACR,GAAGF,CAAA,EAEJ,GAAGK,CAAA,CAAA,CACN,CAAA,CACF,EACF,CAEJ"}
@@ -1,2 +1,2 @@
1
- import{jsxs as m,jsx as t}from"react/jsx-runtime";import*as f from"react";import{AUTH_PROVIDER_MODE as n}from"./model/helpers.js";import{MobileId as l}from"./ui/MobileId.js";import{Esia as c}from"./ui/Esia.js";import{cn as i}from"../../shared/utils/cn.js";import"../../shared/ui/button/Button.js";import"../../shared/ui/buttonIcon/ButtonIcon.js";import{Badge as s}from"../../shared/ui/badge/Badge.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"../../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 g=o=>{switch(o.mode){case n.ESIA:return t(c,{...o});case n.MOBILE_ID:return t(l,{...o});case n.COMBINE:default:const{esiaConfig:d,mobileIdConfig:a,subtitle:e,badge:p,classes:r}=o,u=!e&&!p?f.Fragment:"div";return m("div",{className:i("flex w-[328px] flex-col items-center justify-center gap-2 rounded-sm bg-color-white px-2 py-4 outline outline-1 outline-warm-grey-200 desktop:w-[524px] desktop:p-4",r==null?void 0:r.root),children:[m(u,{className:i("flex w-full items-center justify-between gap-2",r==null?void 0:r.topContent),children:[e&&t("h5",{className:i("desk-body-regular-l flex flex-1 text-color-dark",r==null?void 0:r.subtitle),children:e}),p&&t(s,{className:i("bg-color-positive",r==null?void 0:r.badge),children:p})]}),m("div",{className:i("grid w-full grid-cols-2 gap-2 desktop:gap-4",r==null?void 0:r.authWrapper),children:[t(c,{...d,classes:{authWrapper:"p-0 outline-0 h-[74px]",root:"p-0 outline-0 h-[74px]",arrowIcon:"hidden",...d.classes}}),t(l,{...a,classes:{root:"p-0 outline-0 h-[74px]",arrowIcon:"hidden",...a.classes}})]})]})}},Y=o=>g(o);export{Y as AuthProvider};
1
+ import{jsxs as m,jsx as t}from"react/jsx-runtime";import*as f from"react";import{AUTH_PROVIDER_MODE as n}from"./model/helpers.js";import{MobileId as l}from"./ui/MobileId.js";import{Esia as c}from"./ui/Esia.js";import{cn as i}from"../../shared/utils/cn.js";import"../../shared/ui/button/Button.js";import"../../shared/ui/buttonIcon/ButtonIcon.js";import{Badge as s}from"../../shared/ui/badge/Badge.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"../../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 h=o=>{switch(o.mode){case n.ESIA:return t(c,{...o});case n.MOBILE_ID:return t(l,{...o});case n.COMBINE:default:const{esiaConfig:a,mobileIdConfig:d,subtitle:e,badge:p,classes:r}=o,u=!e&&!p?f.Fragment:"div";return m("div",{className:i("flex w-[328px] flex-col items-center justify-center gap-2 rounded-sm bg-color-white px-2 py-4 outline outline-1 outline-warm-grey-200 desktop:w-[524px] desktop:p-4",r==null?void 0:r.root),children:[m(u,{className:i("flex w-full items-center justify-between gap-2",r==null?void 0:r.topContent),children:[e&&t("h5",{className:i("desk-body-regular-l flex flex-1 text-color-dark",r==null?void 0:r.subtitle),children:e}),p&&t(s,{className:i("bg-color-positive",r==null?void 0:r.badge),children:p})]}),m("div",{className:i("grid w-full grid-cols-2 gap-2 desktop:gap-4",r==null?void 0:r.authWrapper),children:[t(c,{...a,classes:{authWrapper:{root:"p-0 outline-0 h-[74px]"},root:"p-0 outline-0 h-[74px]",arrowIcon:"hidden",...a.classes}}),t(l,{...d,classes:{root:"p-0 outline-0 h-[74px]",authWrapper:{root:"p-0 outline-0 h-[74px]"},arrowIcon:"hidden",...d.classes}})]})]})}},Y=o=>h(o);export{Y as AuthProvider};
2
2
  //# sourceMappingURL=AuthProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AuthProvider.js","sources":["../../../../lib/widgets/authProvider/AuthProvider.tsx"],"sourcesContent":["import * as React from 'react'\nimport { AUTH_PROVIDER_MODE } from './model/helpers'\nimport type { AuthProviderProps } from './model/types'\nimport { Esia, MobileId } from './ui'\nimport { Badge } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nconst renderProvider = (props: AuthProviderProps): React.ReactElement => {\n switch (props.mode) {\n case AUTH_PROVIDER_MODE.ESIA:\n return <Esia {...props} />\n case AUTH_PROVIDER_MODE.MOBILE_ID:\n return <MobileId {...props} />\n case AUTH_PROVIDER_MODE.COMBINE:\n default:\n const { esiaConfig, mobileIdConfig, subtitle, badge, classes } = props\n\n const HeadWrapper = !subtitle && !badge ? React.Fragment : 'div'\n\n return (\n <div\n className={cn(\n 'flex w-[328px] flex-col items-center justify-center gap-2 rounded-sm bg-color-white px-2 py-4 outline outline-1 outline-warm-grey-200 desktop:w-[524px] desktop:p-4',\n classes?.root\n )}\n >\n <HeadWrapper className={cn('flex w-full items-center justify-between gap-2', classes?.topContent)}>\n {subtitle && <h5 className={cn('desk-body-regular-l flex flex-1 text-color-dark', classes?.subtitle)}>{subtitle}</h5>}\n {badge && <Badge className={cn('bg-color-positive', classes?.badge)}>{badge}</Badge>}\n </HeadWrapper>\n <div className={cn('grid w-full grid-cols-2 gap-2 desktop:gap-4', classes?.authWrapper)}>\n <Esia\n {...esiaConfig}\n classes={{\n authWrapper: 'p-0 outline-0 h-[74px]',\n root: 'p-0 outline-0 h-[74px]',\n arrowIcon: 'hidden',\n ...esiaConfig.classes\n }}\n />\n <MobileId\n {...mobileIdConfig}\n classes={{\n root: 'p-0 outline-0 h-[74px]',\n arrowIcon: 'hidden',\n ...mobileIdConfig.classes\n }}\n />\n </div>\n </div>\n )\n }\n}\n\nexport const AuthProvider = (props: AuthProviderProps) => {\n return renderProvider(props)\n}\n"],"names":["renderProvider","props","AUTH_PROVIDER_MODE","jsx","Esia","MobileId","esiaConfig","mobileIdConfig","subtitle","badge","classes","HeadWrapper","React","jsxs","cn","Badge","AuthProvider"],"mappings":"qiEAOA,MAAMA,EAAkBC,GAAiD,CACvE,OAAQA,EAAM,KAAA,CACZ,KAAKC,EAAmB,KACtB,OAAOC,EAACC,EAAA,CAAM,GAAGH,CAAA,CAAO,EAC1B,KAAKC,EAAmB,UACtB,OAAOC,EAACE,EAAA,CAAU,GAAGJ,CAAA,CAAO,EAC9B,KAAKC,EAAmB,QACxB,QACE,KAAM,CAAE,WAAAI,EAAY,eAAAC,EAAgB,SAAAC,EAAU,MAAAC,EAAO,QAAAC,GAAYT,EAE3DU,EAAc,CAACH,GAAY,CAACC,EAAQG,EAAM,SAAW,MAE3D,OACEC,EAAC,MAAA,CACC,UAAWC,EACT,sKACAJ,GAAA,YAAAA,EAAS,IAAA,EAGX,SAAA,CAAAG,EAACF,GAAY,UAAWG,EAAG,iDAAkDJ,GAAA,YAAAA,EAAS,UAAU,EAC7F,SAAA,CAAAF,GAAYL,EAAC,MAAG,UAAWW,EAAG,kDAAmDJ,GAAA,YAAAA,EAAS,QAAQ,EAAI,SAAAF,CAAA,CAAS,EAC/GC,KAAUM,EAAA,CAAM,UAAWD,EAAG,oBAAqBJ,GAAA,YAAAA,EAAS,KAAK,EAAI,SAAAD,CAAA,CAAM,CAAA,EAC9E,IACC,MAAA,CAAI,UAAWK,EAAG,8CAA+CJ,GAAA,YAAAA,EAAS,WAAW,EACpF,SAAA,CAAAP,EAACC,EAAA,CACE,GAAGE,EACJ,QAAS,CACP,YAAa,yBACb,KAAM,yBACN,UAAW,SACX,GAAGA,EAAW,OAAA,CAChB,CAAA,EAEFH,EAACE,EAAA,CACE,GAAGE,EACJ,QAAS,CACP,KAAM,yBACN,UAAW,SACX,GAAGA,EAAe,OAAA,CACpB,CAAA,CACF,CAAA,CACF,CAAA,CAAA,CAAA,CACF,CAGR,EAEaS,EAAgBf,GACpBD,EAAeC,CAAK"}
1
+ {"version":3,"file":"AuthProvider.js","sources":["../../../../lib/widgets/authProvider/AuthProvider.tsx"],"sourcesContent":["import * as React from 'react'\nimport { AUTH_PROVIDER_MODE } from './model/helpers'\nimport type { AuthProviderProps } from './model/types'\nimport { Esia, MobileId } from './ui'\nimport { Badge } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nconst renderProvider = (props: AuthProviderProps): React.ReactElement => {\n switch (props.mode) {\n case AUTH_PROVIDER_MODE.ESIA:\n return <Esia {...props} />\n case AUTH_PROVIDER_MODE.MOBILE_ID:\n return <MobileId {...props} />\n case AUTH_PROVIDER_MODE.COMBINE:\n default:\n const { esiaConfig, mobileIdConfig, subtitle, badge, classes } = props\n\n const HeadWrapper = !subtitle && !badge ? React.Fragment : 'div'\n\n return (\n <div\n className={cn(\n 'flex w-[328px] flex-col items-center justify-center gap-2 rounded-sm bg-color-white px-2 py-4 outline outline-1 outline-warm-grey-200 desktop:w-[524px] desktop:p-4',\n classes?.root\n )}\n >\n <HeadWrapper className={cn('flex w-full items-center justify-between gap-2', classes?.topContent)}>\n {subtitle && <h5 className={cn('desk-body-regular-l flex flex-1 text-color-dark', classes?.subtitle)}>{subtitle}</h5>}\n {badge && <Badge className={cn('bg-color-positive', classes?.badge)}>{badge}</Badge>}\n </HeadWrapper>\n <div className={cn('grid w-full grid-cols-2 gap-2 desktop:gap-4', classes?.authWrapper)}>\n <Esia\n {...esiaConfig}\n classes={{\n authWrapper: {\n root: 'p-0 outline-0 h-[74px]'\n },\n root: 'p-0 outline-0 h-[74px]',\n arrowIcon: 'hidden',\n ...esiaConfig.classes\n }}\n />\n <MobileId\n {...mobileIdConfig}\n classes={{\n root: 'p-0 outline-0 h-[74px]',\n authWrapper: {\n root: 'p-0 outline-0 h-[74px]'\n },\n arrowIcon: 'hidden',\n ...mobileIdConfig.classes\n }}\n />\n </div>\n </div>\n )\n }\n}\n\nexport const AuthProvider = (props: AuthProviderProps) => {\n return renderProvider(props)\n}\n"],"names":["renderProvider","props","AUTH_PROVIDER_MODE","jsx","Esia","MobileId","esiaConfig","mobileIdConfig","subtitle","badge","classes","HeadWrapper","React","jsxs","cn","Badge","AuthProvider"],"mappings":"qiEAOA,MAAMA,EAAkBC,GAAiD,CACvE,OAAQA,EAAM,KAAA,CACZ,KAAKC,EAAmB,KACtB,OAAOC,EAACC,EAAA,CAAM,GAAGH,CAAA,CAAO,EAC1B,KAAKC,EAAmB,UACtB,OAAOC,EAACE,EAAA,CAAU,GAAGJ,CAAA,CAAO,EAC9B,KAAKC,EAAmB,QACxB,QACE,KAAM,CAAE,WAAAI,EAAY,eAAAC,EAAgB,SAAAC,EAAU,MAAAC,EAAO,QAAAC,GAAYT,EAE3DU,EAAc,CAACH,GAAY,CAACC,EAAQG,EAAM,SAAW,MAE3D,OACEC,EAAC,MAAA,CACC,UAAWC,EACT,sKACAJ,GAAA,YAAAA,EAAS,IAAA,EAGX,SAAA,CAAAG,EAACF,GAAY,UAAWG,EAAG,iDAAkDJ,GAAA,YAAAA,EAAS,UAAU,EAC7F,SAAA,CAAAF,GAAYL,EAAC,MAAG,UAAWW,EAAG,kDAAmDJ,GAAA,YAAAA,EAAS,QAAQ,EAAI,SAAAF,CAAA,CAAS,EAC/GC,KAAUM,EAAA,CAAM,UAAWD,EAAG,oBAAqBJ,GAAA,YAAAA,EAAS,KAAK,EAAI,SAAAD,CAAA,CAAM,CAAA,EAC9E,IACC,MAAA,CAAI,UAAWK,EAAG,8CAA+CJ,GAAA,YAAAA,EAAS,WAAW,EACpF,SAAA,CAAAP,EAACC,EAAA,CACE,GAAGE,EACJ,QAAS,CACP,YAAa,CACX,KAAM,wBAAA,EAER,KAAM,yBACN,UAAW,SACX,GAAGA,EAAW,OAAA,CAChB,CAAA,EAEFH,EAACE,EAAA,CACE,GAAGE,EACJ,QAAS,CACP,KAAM,yBACN,YAAa,CACX,KAAM,wBAAA,EAER,UAAW,SACX,GAAGA,EAAe,OAAA,CACpB,CAAA,CACF,CAAA,CACF,CAAA,CAAA,CAAA,CACF,CAGR,EAEaS,EAAgBf,GACpBD,EAAeC,CAAK"}
@@ -1,2 +1,2 @@
1
- import{jsx as o,jsxs as p}from"react/jsx-runtime";import{AuthWrapper as g}from"./ui/AuthWrapper.js";import{EsiaLogo as x}from"./ui/EsiaLogo.js";import{Links as u}from"./ui/Links.js";import{useDevice as N}from"../../../shared/hooks/useDevice.js";import"react";import{cn as i}from"../../../shared/utils/cn.js";import"../../../shared/ui/button/Button.js";import"../../../shared/ui/buttonIcon/ButtonIcon.js";import{Badge as j}from"../../../shared/ui/badge/Badge.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{Icon as k}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"../../../../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 or=({mainLink:n,subLink:e,isLoading:f,badge:t,loaderProps:d,classes:r,onClick:h})=>{const{isMobile:m}=N();return o(g,{isLoading:f,loaderProps:d,classes:{root:r==null?void 0:r.authWrapper},children:p("div",{className:i("flex flex-1 items-center justify-between gap-1",{"justify-center":!t&&m},r==null?void 0:r.innerWrapper),children:[p("div",{className:i("flex items-center gap-1 desktop:gap-4",r==null?void 0:r.textContent),children:[o(x,{className:i("size-7 desktop:size-8",r==null?void 0:r.esiaLogo)}),o(u,{onClick:h,mainLink:n,subLink:e,isMobile:m,classes:r==null?void 0:r.links}),o(k,{name:"arrows/arrowRight",className:i("size-6 mobile:hidden",r==null?void 0:r.arrowIcon)})]}),t&&o(j,{className:i("bg-color-positive",r==null?void 0:r.badge),children:t})]})})};export{or as Esia};
1
+ import{jsx as o,jsxs as p}from"react/jsx-runtime";import{AuthWrapper as g}from"./ui/AuthWrapper.js";import{EsiaLogo as x}from"./ui/EsiaLogo.js";import{Links as u}from"./ui/Links.js";import{useDevice as N}from"../../../shared/hooks/useDevice.js";import"react";import{cn as i}from"../../../shared/utils/cn.js";import"../../../shared/ui/button/Button.js";import"../../../shared/ui/buttonIcon/ButtonIcon.js";import{Badge as j}from"../../../shared/ui/badge/Badge.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{Icon as k}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"../../../../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 or=({mainLink:n,subLink:e,isLoading:f,badge:t,loaderProps:d,classes:r,onClick:h})=>{const{isMobile:m}=N();return o(g,{isLoading:f,loaderProps:d,classes:r==null?void 0:r.authWrapper,children:p("div",{className:i("flex flex-1 items-center justify-between gap-1",{"justify-center":!t&&m},r==null?void 0:r.innerWrapper),children:[p("div",{className:i("flex items-center gap-1 desktop:gap-4",r==null?void 0:r.textContent),children:[o(x,{className:i("size-7 desktop:size-8",r==null?void 0:r.esiaLogo)}),o(u,{onClick:h,mainLink:n,subLink:e,isMobile:m,classes:r==null?void 0:r.links}),o(k,{name:"arrows/arrowRight",className:i("size-6 mobile:hidden",r==null?void 0:r.arrowIcon)})]}),t&&o(j,{className:i("bg-color-positive",r==null?void 0:r.badge),children:t})]})})};export{or as Esia};
2
2
  //# sourceMappingURL=Esia.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Esia.js","sources":["../../../../../lib/widgets/authProvider/ui/Esia.tsx"],"sourcesContent":["import type { TEsiaProps } from '../model/types'\nimport { AuthWrapper, EsiaLogo, Links } from './ui'\nimport { useDevice } from '$/shared/hooks'\nimport { Badge, Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport const Esia = ({ mainLink, subLink, isLoading, badge, loaderProps, classes, onClick }: TEsiaProps) => {\n const { isMobile } = useDevice()\n\n return (\n <AuthWrapper isLoading={isLoading} loaderProps={loaderProps} classes={{ root: classes?.authWrapper }}>\n <div\n className={cn(\n 'flex flex-1 items-center justify-between gap-1',\n { 'justify-center': !badge && isMobile },\n classes?.innerWrapper\n )}\n >\n <div className={cn('flex items-center gap-1 desktop:gap-4', classes?.textContent)}>\n <EsiaLogo className={cn('size-7 desktop:size-8', classes?.esiaLogo)} />\n <Links onClick={onClick} mainLink={mainLink} subLink={subLink} isMobile={isMobile} classes={classes?.links} />\n <Icon name='arrows/arrowRight' className={cn('size-6 mobile:hidden', classes?.arrowIcon)} />\n </div>\n {badge && <Badge className={cn('bg-color-positive', classes?.badge)}>{badge}</Badge>}\n </div>\n </AuthWrapper>\n )\n}\n"],"names":["Esia","mainLink","subLink","isLoading","badge","loaderProps","classes","onClick","isMobile","useDevice","jsx","AuthWrapper","jsxs","cn","EsiaLogo","Links","Icon","Badge"],"mappings":"uuEAMO,MAAMA,GAAO,CAAC,CAAE,SAAAC,EAAU,QAAAC,EAAS,UAAAC,EAAW,MAAAC,EAAO,YAAAC,EAAa,QAAAC,EAAS,QAAAC,KAA0B,CAC1G,KAAM,CAAE,SAAAC,CAAA,EAAaC,EAAA,EAErB,OACEC,EAACC,GAAY,UAAAR,EAAsB,YAAAE,EAA0B,QAAS,CAAE,KAAMC,GAAA,YAAAA,EAAS,WAAA,EACrF,SAAAM,EAAC,MAAA,CACC,UAAWC,EACT,iDACA,CAAE,iBAAkB,CAACT,GAASI,CAAA,EAC9BF,GAAA,YAAAA,EAAS,YAAA,EAGX,SAAA,CAAAM,EAAC,OAAI,UAAWC,EAAG,wCAAyCP,GAAA,YAAAA,EAAS,WAAW,EAC9E,SAAA,CAAAI,EAACI,GAAS,UAAWD,EAAG,wBAAyBP,GAAA,YAAAA,EAAS,QAAQ,EAAG,EACrEI,EAACK,GAAM,QAAAR,EAAkB,SAAAN,EAAoB,QAAAC,EAAkB,SAAAM,EAAoB,QAASF,GAAA,YAAAA,EAAS,MAAO,EAC5GI,EAACM,GAAK,KAAK,oBAAoB,UAAWH,EAAG,uBAAwBP,GAAA,YAAAA,EAAS,SAAS,CAAA,CAAG,CAAA,EAC5F,EACCF,KAAUa,EAAA,CAAM,UAAWJ,EAAG,oBAAqBP,GAAA,YAAAA,EAAS,KAAK,EAAI,SAAAF,CAAA,CAAM,CAAA,CAAA,CAAA,EAEhF,CAEJ"}
1
+ {"version":3,"file":"Esia.js","sources":["../../../../../lib/widgets/authProvider/ui/Esia.tsx"],"sourcesContent":["import type { TEsiaProps } from '../model/types'\nimport { AuthWrapper, EsiaLogo, Links } from './ui'\nimport { useDevice } from '$/shared/hooks'\nimport { Badge, Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport const Esia = ({ mainLink, subLink, isLoading, badge, loaderProps, classes, onClick }: TEsiaProps) => {\n const { isMobile } = useDevice()\n\n return (\n <AuthWrapper isLoading={isLoading} loaderProps={loaderProps} classes={classes?.authWrapper}>\n <div\n className={cn(\n 'flex flex-1 items-center justify-between gap-1',\n { 'justify-center': !badge && isMobile },\n classes?.innerWrapper\n )}\n >\n <div className={cn('flex items-center gap-1 desktop:gap-4', classes?.textContent)}>\n <EsiaLogo className={cn('size-7 desktop:size-8', classes?.esiaLogo)} />\n <Links onClick={onClick} mainLink={mainLink} subLink={subLink} isMobile={isMobile} classes={classes?.links} />\n <Icon name='arrows/arrowRight' className={cn('size-6 mobile:hidden', classes?.arrowIcon)} />\n </div>\n {badge && <Badge className={cn('bg-color-positive', classes?.badge)}>{badge}</Badge>}\n </div>\n </AuthWrapper>\n )\n}\n"],"names":["Esia","mainLink","subLink","isLoading","badge","loaderProps","classes","onClick","isMobile","useDevice","AuthWrapper","jsxs","cn","jsx","EsiaLogo","Links","Icon","Badge"],"mappings":"uuEAMO,MAAMA,GAAO,CAAC,CAAE,SAAAC,EAAU,QAAAC,EAAS,UAAAC,EAAW,MAAAC,EAAO,YAAAC,EAAa,QAAAC,EAAS,QAAAC,KAA0B,CAC1G,KAAM,CAAE,SAAAC,CAAA,EAAaC,EAAA,EAErB,SACGC,EAAA,CAAY,UAAAP,EAAsB,YAAAE,EAA0B,QAASC,GAAA,YAAAA,EAAS,YAC7E,SAAAK,EAAC,MAAA,CACC,UAAWC,EACT,iDACA,CAAE,iBAAkB,CAACR,GAASI,CAAA,EAC9BF,GAAA,YAAAA,EAAS,YAAA,EAGX,SAAA,CAAAK,EAAC,OAAI,UAAWC,EAAG,wCAAyCN,GAAA,YAAAA,EAAS,WAAW,EAC9E,SAAA,CAAAO,EAACC,GAAS,UAAWF,EAAG,wBAAyBN,GAAA,YAAAA,EAAS,QAAQ,EAAG,EACrEO,EAACE,GAAM,QAAAR,EAAkB,SAAAN,EAAoB,QAAAC,EAAkB,SAAAM,EAAoB,QAASF,GAAA,YAAAA,EAAS,MAAO,EAC5GO,EAACG,GAAK,KAAK,oBAAoB,UAAWJ,EAAG,uBAAwBN,GAAA,YAAAA,EAAS,SAAS,CAAA,CAAG,CAAA,EAC5F,EACCF,KAAUa,EAAA,CAAM,UAAWL,EAAG,oBAAqBN,GAAA,YAAAA,EAAS,KAAK,EAAI,SAAAF,CAAA,CAAM,CAAA,CAAA,CAAA,EAEhF,CAEJ"}
@@ -1,2 +1,2 @@
1
- import{jsx as t,jsxs as n}from"react/jsx-runtime";import{useState as I,createElement as z}from"react";import{AuthProvider as b}from"../authProvider/AuthProvider.js";import{HTMLRenderer as g}from"../htmlParser/HTMLRenderer.js";import{widgetIds as h}from"../model/helpers.js";import{getFieldsProgress as H}from"./model/getFieldsProgress.js";import{getDynamicSchema as M}from"../../../src/shared/utils/getDynamicSchema.js";import{cn as m}from"../../shared/utils/cn.js";import{useControlledForm as R}from"../../shared/hooks/useControlledForm.js";import{useFieldsProgress as Z}from"../../shared/hooks/useFieldsProgress.js";import{ResponsiveContainer as E}from"../../shared/ui/responsiveContainer/ResponsiveContainer.js";import{Button as L}from"../../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{ProgressBar as Q}from"../../shared/ui/progressBar/ProgressBar.js";import"react-dom";import"../../shared/ui/modal/ui/IframeModalContent.js";import"../../../node_modules/react-hot-toast/dist/index.js";import{Icon as T}from"../../shared/ui/icon/Icon.js";import"../../shared/ui/table/ui/primitives/Primitives.js";import{Heading as N}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{CheckboxBase as U}from"../../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";import"../../shared/validation/zodValidation/dadataFio.js";import"../../shared/validation/zodValidation/calendar.js";import"../../shared/validation/zodValidation/phone.js";import"../../shared/validation/zodValidation/otpCode.js";import{ZodUtils as V}from"../../shared/validation/utils/zodUtils.js";import{FieldMapper as q}from"../fieldMapper/FieldMapper.js";import{QueryClientProvider as J}from"../queryClientProvider/QueryClientProvider.js";const K=(r,p,i,e)=>r.type==="off"?null:r.type==="text"?t(g,{html:r.message,as:"div",className:e==null?void 0:e.content}):n("label",{className:m("mob-body-regular-s text-color-dark","desktop:desk-body-regular-s desktop:gap-x-4","flex items-center justify-items-start gap-x-3"),children:[t(U,{classes:e==null?void 0:e.checkbox,checked:p,onCheckedChange:i}),t(g,{html:r.content,as:"div",className:e==null?void 0:e.content})]}),O=r=>{switch(r==null?void 0:r.mode){case"esia":return t(b,{...r,mode:r==null?void 0:r.mode});case"mobileId":return t(b,{...r,mode:r==null?void 0:r.mode});case"combine":return t(b,{...r,mode:r==null?void 0:r.mode});default:return null}},Jo=({fields:r,title:p,progress:i,approvement:e,chips:f,submitProps:u,auth:P,classes:o,buttonGroup:d})=>{var w,a;const{submitCallback:c}=u||{},[x,C]=I(!1),k=M(r),v=V.getZodDefaults(k),{control:y,handleSubmit:B}=R({schema:k,defaultValues:v,mode:"onBlur"}),j=H(i,r),F=Z({control:y,fields:j||[],schema:k}),S=l=>{c&&c({...l,agree:x})};return t(J,{children:t("section",{id:h.form,"data-test-id":h.form,className:m("w-full",o==null?void 0:o.root),children:n(E,{className:m("border-warm-grey-200 px-4 desktop:w-[636px] desktop:gap-8 desktop:p-14","relative mx-auto flex flex-col gap-6 rounded-sm py-8 desktop:border"),children:[f.enabled&&n("div",{className:m("desk-body-regular-l flex items-center gap-x-2 rounded-sm desktop:absolute","bg-color-blue-grey-100 px-2 py-1 text-color-tetriary","right-4 top-4 w-max",(w=o==null?void 0:o.chips)==null?void 0:w.root),children:[f.image&&t(T,{name:f.image,className:m("size-6",(a=o==null?void 0:o.chips)==null?void 0:a.icon)}),f.content]}),t(N,{as:"h2",className:m("desktop:hidden",o==null?void 0:o.title),children:p}),t(N,{as:"h3",className:m("mobile:hidden",o==null?void 0:o.title),children:p}),n("form",{onSubmit:B(S),className:m("flex w-full flex-col gap-y-6","desktop:gap-y-8",o==null?void 0:o.form),children:[i.enabled&&t(Q,{progress:F,topContent:t(g,{html:i.title}),bottomContent:t(g,{html:i.subtitle}),maxPercent:i.maxPercent,classes:o==null?void 0:o.progressBar}),t(q,{control:y,fields:r}),n("div",{className:m("mob-body-regular-s flex flex-col items-start justify-center gap-4",{"desktop:flex-row desktop:items-center":d.length===1}),children:[K(e,x,C,o==null?void 0:o.approvement),t("div",{className:m("flex w-full flex-col items-center justify-center gap-4 desktop:flex-row",{"desktop:w-fit":d.length===1}),children:d==null?void 0:d.map((l,A)=>{const D=l.type==="submit"&&e.type==="checkbox"?!x:!1;return z(L,{...l,size:"lg",key:A,disabled:D,className:m("w-full whitespace-nowrap",{"desktop:!w-fit":d.length===1},{"w-full":!!e},o==null?void 0:o.submit)})})})]}),O(P)]})]})})})};export{Jo as DynamicForm,Jo as default};
1
+ import{jsx as t,jsxs as n}from"react/jsx-runtime";import{useState as I,createElement as z}from"react";import{AuthProvider as b}from"../authProvider/AuthProvider.js";import{HTMLRenderer as g}from"../htmlParser/HTMLRenderer.js";import{widgetIds as h}from"../model/helpers.js";import{getFieldsProgress as H}from"./model/getFieldsProgress.js";import{getDynamicSchema as M}from"../../../src/shared/utils/getDynamicSchema.js";import{cn as m}from"../../shared/utils/cn.js";import{useControlledForm as R}from"../../shared/hooks/useControlledForm.js";import{useFieldsProgress as Z}from"../../shared/hooks/useFieldsProgress.js";import{ResponsiveContainer as E}from"../../shared/ui/responsiveContainer/ResponsiveContainer.js";import{Button as L}from"../../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{ProgressBar as Q}from"../../shared/ui/progressBar/ProgressBar.js";import"react-dom";import"../../shared/ui/modal/ui/IframeModalContent.js";import"../../../node_modules/react-hot-toast/dist/index.js";import{Icon as T}from"../../shared/ui/icon/Icon.js";import"../../shared/ui/table/ui/primitives/Primitives.js";import{Heading as N}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{CheckboxBase as U}from"../../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";import"../../shared/validation/zodValidation/dadataFio.js";import"../../shared/validation/zodValidation/calendar.js";import"../../shared/validation/zodValidation/phone.js";import"../../shared/validation/zodValidation/otpCode.js";import{ZodUtils as V}from"../../shared/validation/utils/zodUtils.js";import{FieldMapper as q}from"../fieldMapper/FieldMapper.js";import{QueryClientProvider as J}from"../queryClientProvider/QueryClientProvider.js";const K=(r,p,i,e)=>r.type==="off"?null:r.type==="text"?t(g,{html:r.message,as:"div",className:e==null?void 0:e.content}):n("label",{className:m("mob-body-regular-s text-color-dark","desktop:desk-body-regular-s desktop:gap-x-4","flex items-center justify-items-start gap-x-3"),children:[t(U,{classes:e==null?void 0:e.checkbox,checked:p,onCheckedChange:i}),t(g,{html:r.content,as:"div",className:e==null?void 0:e.content})]}),O=r=>{switch(r==null?void 0:r.mode){case"esia":return t(b,{...r,mode:r==null?void 0:r.mode});case"mobileId":return t(b,{...r,mode:r==null?void 0:r.mode});case"combine":return t(b,{...r,mode:r==null?void 0:r.mode});default:return null}},Jo=({fields:r,title:p,progress:i,approvement:e,chips:f,submitProps:u,auth:P,classes:o,buttonGroup:d})=>{var w,a;const{submitCallback:y}=u||{},[x,C]=I(!1),k=M(r),v=V.getZodDefaults(k),{control:c,handleSubmit:B}=R({schema:k,defaultValues:v,mode:"onBlur"}),j=H(i,r),F=Z({control:c,fields:j||[],schema:k}),S=l=>{y&&y({...l,agree:x})};return t(J,{children:t("section",{id:h.form,"data-test-id":h.form,className:m("w-full",o==null?void 0:o.root),children:n(E,{className:m("border-warm-grey-200 px-4 desktop:w-[636px] desktop:gap-8 desktop:p-14","relative mx-auto flex flex-col gap-6 rounded-sm py-8 desktop:border"),children:[f.enabled&&n("div",{className:m("desk-body-regular-l flex items-center gap-x-2 rounded-sm desktop:absolute","bg-color-blue-grey-100 px-2 py-1 text-color-tetriary","right-4 top-4 w-max",(w=o==null?void 0:o.chips)==null?void 0:w.root),children:[f.image&&t(T,{name:f.image,className:m("size-6",(a=o==null?void 0:o.chips)==null?void 0:a.icon)}),f.content]}),t(N,{as:"h2",className:m("desktop:hidden",o==null?void 0:o.title),children:p}),t(N,{as:"h3",className:m("mobile:hidden",o==null?void 0:o.title),children:p}),n("form",{onSubmit:B(S),className:m("flex w-full flex-col gap-y-6","desktop:gap-y-8",o==null?void 0:o.form),children:[i.enabled&&t(Q,{progress:F,topContent:t(g,{html:i.title}),bottomContent:t(g,{html:i.subtitle}),maxPercent:i.maxPercent,classes:o==null?void 0:o.progressBar}),t(q,{control:c,fields:r}),n("div",{className:m("mob-body-regular-s flex flex-col items-start justify-center gap-4",{"desktop:flex-row desktop:items-center":d.length===1}),children:[K(e,x,C,o==null?void 0:o.approvement),t("div",{className:m("flex w-full flex-col items-center justify-between gap-4 desktop:flex-row",{"desktop:w-fit":d.length===1}),children:d==null?void 0:d.map((l,A)=>{const D=l.type==="submit"&&e.type==="checkbox"?!x:!1;return z(L,{...l,size:"lg",key:A,disabled:D,className:m("w-full whitespace-nowrap",{"desktop:!w-fit":d.length===1},{"w-full":!!e},o==null?void 0:o.submit)})})})]}),O(P)]})]})})})};export{Jo as DynamicForm,Jo as default};
2
2
  //# sourceMappingURL=DynamicForm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicForm.js","sources":["../../../../lib/widgets/dynamicForm/DynamicForm.tsx"],"sourcesContent":["'use client'\n\nimport { useState } from 'react'\nimport { type Control, type FieldValues, type SubmitHandler } from 'react-hook-form'\nimport { type TypeOf } from 'zod'\nimport { AuthProvider } from '../authProvider'\nimport { HTMLRenderer } from '../htmlParser'\nimport { widgetIds } from '../model'\nimport {\n type Approvement,\n type ApprovementType,\n type Auth,\n type AuthMode,\n type Chips,\n type ChipsType,\n getFieldsProgress,\n type Progress,\n type ProgressField,\n type ProgressType\n} from './model'\nimport { type FieldValidation, getDynamicSchema } from '@/shared/utils'\nimport { useControlledForm, useFieldsProgress } from '$/shared/hooks'\nimport {\n Button,\n type ButtonProps,\n CheckboxBase,\n type CheckedState,\n Heading,\n Icon,\n ProgressBar,\n ResponsiveContainer\n} from '$/shared/ui'\nimport { cn } 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 ChipsClasses = {\n root?: string\n icon?: string\n}\ntype ApprovementClasses = {\n checkbox?: React.ComponentProps<typeof CheckboxBase>['classes']\n content?: string\n}\n\ntype DynamicFormClasses = {\n root?: string\n title?: string\n fields?: string\n form?: string\n chips?: ChipsClasses\n approvement?: ApprovementClasses\n progressBar?: React.ComponentProps<typeof ProgressBar>['classes']\n submit?: string\n}\n\nexport type DynamicFormProps<\n AType extends ApprovementType,\n CType extends ChipsType,\n PType extends ProgressType,\n AuthType extends AuthMode\n> = {\n fields: FieldElement<any, any, { validation: FieldValidation; progress: ProgressField }>[]\n title: string\n progress: Progress<PType>\n approvement: Approvement<AType>\n chips: Chips<CType>\n submitProps?: SubmitProps\n classes?: DynamicFormClasses\n buttonGroup: ButtonProps[]\n auth: Auth<AuthType>\n}\n\nconst withApprovement = <Type extends ApprovementType>(\n approvement: Approvement<Type>,\n checked: CheckedState,\n onCheckedChange: (checked: CheckedState) => void,\n classes?: ApprovementClasses\n): React.ReactNode => {\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-s 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\n default:\n return null\n }\n}\n\nexport const DynamicForm = <\n AType extends ApprovementType,\n CType extends ChipsType,\n PType extends ProgressType,\n AuthType extends AuthMode\n>({\n fields,\n title,\n progress,\n approvement,\n chips,\n submitProps,\n auth,\n classes,\n buttonGroup\n}: DynamicFormProps<AType, CType, PType, 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 fieldsProgress = getFieldsProgress(progress, fields)\n\n const formattedProgress = useFieldsProgress({ control, fields: fieldsProgress || [], schema })\n\n const onSubmit: SubmitHandler<TypeOf<typeof schema>> = (values) => {\n if (submitCallback) submitCallback({ ...values, agree: checked })\n }\n\n return (\n <QueryClientProvider>\n <section id={widgetIds.form} data-test-id={widgetIds.form} className={cn('w-full', classes?.root)}>\n <ResponsiveContainer\n className={cn(\n 'border-warm-grey-200 px-4 desktop:w-[636px] desktop:gap-8 desktop:p-14',\n 'relative mx-auto flex flex-col gap-6 rounded-sm py-8 desktop:border'\n )}\n >\n {chips.enabled && (\n <div\n className={cn(\n 'desk-body-regular-l flex items-center gap-x-2 rounded-sm desktop:absolute',\n 'bg-color-blue-grey-100 px-2 py-1 text-color-tetriary',\n 'right-4 top-4 w-max',\n classes?.chips?.root\n )}\n >\n {chips.image && <Icon name={chips.image} className={cn('size-6', classes?.chips?.icon)} />}\n {chips.content}\n </div>\n )}\n <Heading as='h2' className={cn('desktop:hidden', classes?.title)}>\n {title}\n </Heading>\n <Heading as='h3' className={cn('mobile:hidden', classes?.title)}>\n {title}\n </Heading>\n <form\n onSubmit={handleSubmit(onSubmit)}\n className={cn('flex w-full flex-col gap-y-6', 'desktop:gap-y-8', classes?.form)}\n >\n {progress.enabled && (\n <ProgressBar\n progress={formattedProgress}\n topContent={<HTMLRenderer html={progress.title} />}\n bottomContent={<HTMLRenderer html={progress.subtitle} />}\n maxPercent={progress.maxPercent}\n classes={classes?.progressBar}\n />\n )}\n <FieldMapper control={control as unknown as Control} fields={fields} />\n <div\n className={cn('mob-body-regular-s flex flex-col items-start justify-center gap-4', {\n ['desktop:flex-row desktop:items-center']: buttonGroup.length === 1\n })}\n >\n {withApprovement(approvement, checked, onCheckedChange, classes?.approvement)}\n <div\n className={cn('flex w-full flex-col items-center justify-center gap-4 desktop:flex-row', {\n 'desktop:w-fit': buttonGroup.length === 1\n })}\n >\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 ['desktop:!w-fit']: buttonGroup.length === 1\n },\n {\n 'w-full': Boolean(approvement)\n },\n classes?.submit\n )}\n />\n )\n })}\n </div>\n </div>\n {withAuthProvider(auth)}\n </form>\n </ResponsiveContainer>\n </section>\n </QueryClientProvider>\n )\n}\n\nexport default DynamicForm\n"],"names":["withApprovement","approvement","checked","onCheckedChange","classes","jsx","HTMLRenderer","jsxs","cn","CheckboxBase","withAuthProvider","auth","AuthProvider","DynamicForm","fields","title","progress","chips","submitProps","buttonGroup","submitCallback","useState","schema","getDynamicSchema","defaultValues","ZodUtils","control","handleSubmit","useControlledForm","fieldsProgress","getFieldsProgress","formattedProgress","useFieldsProgress","onSubmit","values","QueryClientProvider","widgetIds","ResponsiveContainer","_a","Icon","_b","Heading","ProgressBar","FieldMapper","button","index","disabled","createElement","Button"],"mappings":"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"}
1
+ {"version":3,"file":"DynamicForm.js","sources":["../../../../lib/widgets/dynamicForm/DynamicForm.tsx"],"sourcesContent":["'use client'\n\nimport { useState } from 'react'\nimport { type Control, type FieldValues, type SubmitHandler } from 'react-hook-form'\nimport { type TypeOf } from 'zod'\nimport { AuthProvider } from '../authProvider'\nimport { HTMLRenderer } from '../htmlParser'\nimport { widgetIds } from '../model'\nimport {\n type Approvement,\n type ApprovementType,\n type Auth,\n type AuthMode,\n type Chips,\n type ChipsType,\n getFieldsProgress,\n type Progress,\n type ProgressField,\n type ProgressType\n} from './model'\nimport { type FieldValidation, getDynamicSchema } from '@/shared/utils'\nimport { useControlledForm, useFieldsProgress } from '$/shared/hooks'\nimport {\n Button,\n type ButtonProps,\n CheckboxBase,\n type CheckedState,\n Heading,\n Icon,\n ProgressBar,\n ResponsiveContainer\n} from '$/shared/ui'\nimport { cn } 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 ChipsClasses = {\n root?: string\n icon?: string\n}\ntype ApprovementClasses = {\n checkbox?: React.ComponentProps<typeof CheckboxBase>['classes']\n content?: string\n}\n\ntype DynamicFormClasses = {\n root?: string\n title?: string\n fields?: string\n form?: string\n chips?: ChipsClasses\n approvement?: ApprovementClasses\n progressBar?: React.ComponentProps<typeof ProgressBar>['classes']\n submit?: string\n}\n\nexport type DynamicFormProps<\n AType extends ApprovementType,\n CType extends ChipsType,\n PType extends ProgressType,\n AuthType extends AuthMode\n> = {\n fields: FieldElement<any, any, { validation: FieldValidation; progress: ProgressField }>[]\n title: string\n progress: Progress<PType>\n approvement: Approvement<AType>\n chips: Chips<CType>\n submitProps?: SubmitProps\n classes?: DynamicFormClasses\n buttonGroup: ButtonProps[]\n auth: Auth<AuthType>\n}\n\nconst withApprovement = <Type extends ApprovementType>(\n approvement: Approvement<Type>,\n checked: CheckedState,\n onCheckedChange: (checked: CheckedState) => void,\n classes?: ApprovementClasses\n): React.ReactNode => {\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-s 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\n default:\n return null\n }\n}\n\nexport const DynamicForm = <\n AType extends ApprovementType,\n CType extends ChipsType,\n PType extends ProgressType,\n AuthType extends AuthMode\n>({\n fields,\n title,\n progress,\n approvement,\n chips,\n submitProps,\n auth,\n classes,\n buttonGroup\n}: DynamicFormProps<AType, CType, PType, 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 fieldsProgress = getFieldsProgress(progress, fields)\n\n const formattedProgress = useFieldsProgress({ control, fields: fieldsProgress || [], schema })\n\n const onSubmit: SubmitHandler<TypeOf<typeof schema>> = (values) => {\n if (submitCallback) submitCallback({ ...values, agree: checked })\n }\n\n return (\n <QueryClientProvider>\n <section id={widgetIds.form} data-test-id={widgetIds.form} className={cn('w-full', classes?.root)}>\n <ResponsiveContainer\n className={cn(\n 'border-warm-grey-200 px-4 desktop:w-[636px] desktop:gap-8 desktop:p-14',\n 'relative mx-auto flex flex-col gap-6 rounded-sm py-8 desktop:border'\n )}\n >\n {chips.enabled && (\n <div\n className={cn(\n 'desk-body-regular-l flex items-center gap-x-2 rounded-sm desktop:absolute',\n 'bg-color-blue-grey-100 px-2 py-1 text-color-tetriary',\n 'right-4 top-4 w-max',\n classes?.chips?.root\n )}\n >\n {chips.image && <Icon name={chips.image} className={cn('size-6', classes?.chips?.icon)} />}\n {chips.content}\n </div>\n )}\n <Heading as='h2' className={cn('desktop:hidden', classes?.title)}>\n {title}\n </Heading>\n <Heading as='h3' className={cn('mobile:hidden', classes?.title)}>\n {title}\n </Heading>\n <form\n onSubmit={handleSubmit(onSubmit)}\n className={cn('flex w-full flex-col gap-y-6', 'desktop:gap-y-8', classes?.form)}\n >\n {progress.enabled && (\n <ProgressBar\n progress={formattedProgress}\n topContent={<HTMLRenderer html={progress.title} />}\n bottomContent={<HTMLRenderer html={progress.subtitle} />}\n maxPercent={progress.maxPercent}\n classes={classes?.progressBar}\n />\n )}\n <FieldMapper control={control as unknown as Control} fields={fields} />\n <div\n className={cn('mob-body-regular-s flex flex-col items-start justify-center gap-4', {\n ['desktop:flex-row desktop:items-center']: buttonGroup.length === 1\n })}\n >\n {withApprovement(approvement, checked, onCheckedChange, classes?.approvement)}\n <div\n className={cn('flex w-full flex-col items-center justify-between gap-4 desktop:flex-row', {\n 'desktop:w-fit': buttonGroup.length === 1\n })}\n >\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 ['desktop:!w-fit']: buttonGroup.length === 1\n },\n {\n 'w-full': Boolean(approvement)\n },\n classes?.submit\n )}\n />\n )\n })}\n </div>\n </div>\n {withAuthProvider(auth)}\n </form>\n </ResponsiveContainer>\n </section>\n </QueryClientProvider>\n )\n}\n\nexport default DynamicForm\n"],"names":["withApprovement","approvement","checked","onCheckedChange","classes","jsx","HTMLRenderer","jsxs","cn","CheckboxBase","withAuthProvider","auth","AuthProvider","DynamicForm","fields","title","progress","chips","submitProps","buttonGroup","submitCallback","useState","schema","getDynamicSchema","defaultValues","ZodUtils","control","handleSubmit","useControlledForm","fieldsProgress","getFieldsProgress","formattedProgress","useFieldsProgress","onSubmit","values","QueryClientProvider","widgetIds","ResponsiveContainer","_a","Icon","_b","Heading","ProgressBar","FieldMapper","button","index","disabled","createElement","Button"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{jsx as r,jsxs as c}from"react/jsx-runtime";import{useState as S,createElement as w}from"react";import{HTMLRenderer as a}from"../htmlParser/HTMLRenderer.js";import{getDynamicSchema as D}from"../../../src/shared/utils/getDynamicSchema.js";import{cn as h}from"../../shared/utils/cn.js";import{TypeGuards as B}from"../../shared/utils/typeGuards.js";import{useControlledForm as F}from"../../shared/hooks/useControlledForm.js";import{Button as j}from"../../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{Dialog as A}from"../../shared/ui/dialog/Dialog.js";import"../../shared/ui/slot/Slot.js";import"../../shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.js";import{CheckboxBase as M}from"../../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";import"../../shared/validation/zodValidation/dadataFio.js";import"../../shared/validation/zodValidation/calendar.js";import"../../shared/validation/zodValidation/phone.js";import"../../shared/validation/zodValidation/otpCode.js";import{ZodUtils as T}from"../../shared/validation/utils/zodUtils.js";import{FieldMapper as Z}from"../fieldMapper/FieldMapper.js";import{QueryClientProvider as v}from"../queryClientProvider/QueryClientProvider.js";const z=(o,n,i,t)=>o.type==="off"?null:o.type==="text"?r(a,{html:o.message,as:"div",className:t==null?void 0:t.content}):c("label",{className:h("mob-body-regular-s text-color-dark","desktop:desk-body-regular-m desktop:gap-x-4","flex items-center justify-items-start gap-x-3"),children:[r(M,{classes:t==null?void 0:t.checkbox,checked:n,onCheckedChange:i}),r(a,{html:o.content,as:"div",className:t==null?void 0:t.content})]}),Bt=({fields:o,title:n,approvement:i,submitProps:t,dialogId:u,classes:m,buttonGroup:e,...x})=>{const{submitCallback:f}=t??{},[l,g]=S(!1),d=D(o),y=T.getZodDefaults(d),{control:k,handleSubmit:b}=F({schema:d,defaultValues:y,mode:"onBlur"});return r(v,{children:r(A,{id:u,title:n,...x,children:c("form",{onSubmit:b(p=>{f&&f({...p,agree:l})}),className:"flex flex-col gap-6",children:[r(Z,{control:k,fields:o}),z(i,l,g,m==null?void 0:m.approvement),B.isArrayFilled(e)&&r("div",{className:"flex flex-col gap-4",children:e==null?void 0:e.map((p,C)=>{const N=p.type==="submit"&&i.type==="checkbox"?!l:!1;return w(j,{...p,size:"lg",key:C,disabled:N,className:h("w-full whitespace-nowrap",{"w-full":!!i},m==null?void 0:m.submit)})})})]})})})};export{Bt as DynamicFormDialog,Bt as default};
1
+ import{jsx as t,jsxs as u}from"react/jsx-runtime";import{useState as D,createElement as A}from"react";import{AuthProvider as l}from"../authProvider/AuthProvider.js";import{HTMLRenderer as a}from"../htmlParser/HTMLRenderer.js";import{getDynamicSchema as B}from"../../../src/shared/utils/getDynamicSchema.js";import{cn as h}from"../../shared/utils/cn.js";import{TypeGuards as F}from"../../shared/utils/typeGuards.js";import{useControlledForm as j}from"../../shared/hooks/useControlledForm.js";import{Button as v}from"../../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{Dialog as P}from"../../shared/ui/dialog/Dialog.js";import"../../shared/ui/slot/Slot.js";import"../../shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.js";import{CheckboxBase as M}from"../../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";import"../../shared/validation/zodValidation/dadataFio.js";import"../../shared/validation/zodValidation/calendar.js";import"../../shared/validation/zodValidation/phone.js";import"../../shared/validation/zodValidation/otpCode.js";import{ZodUtils as T}from"../../shared/validation/utils/zodUtils.js";import{FieldMapper as Z}from"../fieldMapper/FieldMapper.js";import{QueryClientProvider as z}from"../queryClientProvider/QueryClientProvider.js";const E=(o,n,i,r)=>o.type==="off"?null:o.type==="text"?t(a,{html:o.message,as:"div",className:r==null?void 0:r.content}):u("label",{className:h("mob-body-regular-s text-color-dark","desktop:desk-body-regular-m desktop:gap-x-4","flex items-center justify-items-start gap-x-3"),children:[t(M,{classes:r==null?void 0:r.checkbox,checked:n,onCheckedChange:i}),t(a,{html:o.content,as:"div",className:r==null?void 0:r.content})]}),H=o=>{switch(o.mode){case"esia":return t(l,{...o,mode:o.mode});case"mobileId":return t(l,{...o,mode:o.mode});case"combine":return t(l,{...o,mode:o.mode});case"off":return null}},Po=({fields:o,title:n,approvement:i,submitProps:r,dialogId:x,classes:m,auth:g,buttonGroup:e,...y})=>{const{submitCallback:f}=r??{},[d,b]=D(!1),c=B(o),k=T.getZodDefaults(c),{control:w,handleSubmit:C}=j({schema:c,defaultValues:k,mode:"onBlur"});return t(z,{children:t(P,{id:x,title:n,...y,children:u("form",{onSubmit:C(p=>{f&&f({...p,agree:d})}),className:"flex flex-col gap-6",children:[t(Z,{control:w,fields:o}),E(i,d,b,m==null?void 0:m.approvement),F.isArrayFilled(e)&&t("div",{className:"flex flex-col gap-4",children:e==null?void 0:e.map((p,N)=>{const S=p.type==="submit"&&i.type==="checkbox"?!d:!1;return A(v,{...p,size:"lg",key:N,disabled:S,className:h("w-full whitespace-nowrap",{"w-full":!!i},m==null?void 0:m.submit)})})}),H(g)]})})})};export{Po as DynamicFormDialog,Po as default};
2
2
  //# sourceMappingURL=DynamicFormDialog.js.map
@@ -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 { 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<AType extends ApprovementType> = 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}\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\nexport const DynamicFormDialog = <AType extends ApprovementType>({\n fields,\n title,\n approvement,\n submitProps,\n dialogId,\n classes,\n buttonGroup,\n ...props\n}: DynamicFormDialogProps<AType>) => {\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 <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 </form>\n </Dialog>\n </QueryClientProvider>\n )\n}\n\nexport default DynamicFormDialog\n"],"names":["withApprovement","approvement","checked","onCheckedChange","classes","jsx","HTMLRenderer","jsxs","cn","CheckboxBase","DynamicFormDialog","fields","title","submitProps","dialogId","buttonGroup","props","submitCallback","useState","schema","getDynamicSchema","defaultValues","ZodUtils","control","handleSubmit","useControlledForm","QueryClientProvider","Dialog","values","FieldMapper","TypeGuards","button","index","disabled","createElement","Button"],"mappings":"srFA0CA,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,EAKxEM,GAAoB,CAAgC,CAC/D,OAAAC,EACA,MAAAC,EACA,YAAAX,EACA,YAAAY,EACA,SAAAC,EACA,QAAAV,EACA,YAAAW,EACA,GAAGC,CACL,IAAqC,CACnC,KAAM,CAAE,eAAAC,GAAmBJ,GAAe,CAAA,EAEpC,CAACX,EAASC,CAAe,EAAIe,EAAuB,EAAK,EAEzDC,EAASC,EAAiBT,CAAM,EAChCU,EAAgBC,EAAS,eAAeH,CAAM,EAE9C,CAAE,QAAAI,EAAS,aAAAC,CAAA,EAAiBC,EAAkB,CAClD,OAAAN,EACA,cAAAE,EACA,KAAM,QAAA,CACP,EAMD,SACGK,EAAA,CACC,SAAArB,EAACsB,EAAA,CAAO,GAAIb,EAAU,MAAAF,EAAe,GAAGI,EACtC,SAAAT,EAAC,QAAK,SAAUiB,EAPkCI,GAAW,CAC7DX,GAAgBA,EAAe,CAAE,GAAGW,EAAQ,MAAO1B,EAAS,CAClE,CAK2C,EAAG,UAAU,sBAChD,SAAA,CAAAG,EAACwB,EAAA,CAAY,QAAAN,EAAwC,OAAAZ,CAAA,CAAgB,EACpEX,EAAgBC,EAAaC,EAASC,EAAiBC,GAAA,YAAAA,EAAS,WAAW,EAC3E0B,EAAW,cAAcf,CAAW,GACnCV,EAAC,MAAA,CAAI,UAAU,sBACZ,SAAAU,GAAA,YAAAA,EAAa,IAAI,CAACgB,EAAQC,IAAU,CACnC,MAAMC,EAAWF,EAAO,OAAS,UAAY9B,EAAY,OAAS,WAAa,CAACC,EAAU,GAE1F,OACEgC,EAACC,EAAA,CACE,GAAGJ,EACJ,KAAK,KACL,IAAKC,EACL,SAAAC,EACA,UAAWzB,EACT,2BACA,CACE,SAAU,EAAQP,CAAW,EAE/BG,GAAA,YAAAA,EAAS,MAAA,CACX,CAAA,CAGN,EAAC,CACH,CAAA,CAAA,CAKJ,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}\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}\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 ...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 <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 {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","props","submitCallback","useState","schema","getDynamicSchema","defaultValues","ZodUtils","control","handleSubmit","useControlledForm","QueryClientProvider","Dialog","values","FieldMapper","TypeGuards","button","index","disabled","createElement","Button"],"mappings":"qvFAgDA,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,GAAGC,CACL,IAA+C,CAC7C,KAAM,CAAE,eAAAC,GAAmBJ,GAAe,CAAA,EAEpC,CAACd,EAASC,CAAe,EAAIkB,EAAuB,EAAK,EAEzDC,EAASC,EAAiBT,CAAM,EAChCU,EAAgBC,EAAS,eAAeH,CAAM,EAE9C,CAAE,QAAAI,EAAS,aAAAC,CAAA,EAAiBC,EAAkB,CAClD,OAAAN,EACA,cAAAE,EACA,KAAM,QAAA,CACP,EAMD,SACGK,EAAA,CACC,SAAAxB,EAACyB,EAAA,CAAO,GAAIb,EAAU,MAAAF,EAAe,GAAGI,EACtC,SAAAZ,EAAC,QAAK,SAAUoB,EAPkCI,GAAW,CAC7DX,GAAgBA,EAAe,CAAE,GAAGW,EAAQ,MAAO7B,EAAS,CAClE,CAK2C,EAAG,UAAU,sBAChD,SAAA,CAAAG,EAAC2B,EAAA,CAAY,QAAAN,EAAwC,OAAAZ,CAAA,CAAgB,EACpEd,EAAgBC,EAAaC,EAASC,EAAiBC,GAAA,YAAAA,EAAS,WAAW,EAC3E6B,EAAW,cAAcf,CAAW,GACnCb,EAAC,MAAA,CAAI,UAAU,sBACZ,SAAAa,GAAA,YAAAA,EAAa,IAAI,CAACgB,EAAQC,IAAU,CACnC,MAAMC,EAAWF,EAAO,OAAS,UAAYjC,EAAY,OAAS,WAAa,CAACC,EAAU,GAE1F,OACEmC,EAACC,EAAA,CACE,GAAGJ,EACJ,KAAK,KACL,IAAKC,EACL,SAAAC,EACA,UAAW5B,EACT,2BACA,CACE,SAAU,EAAQP,CAAW,EAE/BG,GAAA,YAAAA,EAAS,MAAA,CACX,CAAA,CAGN,EAAC,CACH,EAKDM,EAAiBC,CAAI,CAAA,CAAA,CACxB,EACF,EACF,CAEJ"}
@@ -1,2 +1,2 @@
1
- import{jsx as o,jsxs as d}from"react/jsx-runtime";import{ButtonWithHandlers as h}from"../buttonWithHandlers/ButtonWithHandlers.js";import{widgetIds as x}from"../model/helpers.js";import{containerImgConfig as B}from"./model/cva.js";import{ResponsiveContainer as I}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{TypeGuards as N}from"../../shared/utils/typeGuards.js";import"react";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"../../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";import{Title as n}from"./ui/Title.js";import{TextList as j}from"./ui/TextList.js";const ir=({headline:e,buttonConfig:t,intent:p="twoItems",details:w,image:m,backgroundColor:l,classes:r})=>{const k=p==="fourItems",y=p==="twoItems",f=m&&"url"in m&&N.isObject(m)?o("img",{className:"w-full object-contain",alt:m.alt,src:m.url}):m;return o("section",{style:{backgroundColor:l??"#d9edff"},id:x.longBanner,"data-test-id":x.longBanner,className:i(r==null?void 0:r.root),children:d(I,{className:i(r==null?void 0:r.container),children:[y&&o(n,{intent:p,headline:e}),d("div",{className:i("bg-banner-skyblue-100 px-6 pb-8 pt-6 desktop:flex desktop:flex-row-reverse desktop:justify-between desktop:px-0 desktop:py-0 desktop:pl-12",r==null?void 0:r.contentContainer),children:[k&&o(n,{intent:p,headline:e,desktopHidden:!0}),o("div",{className:i(B({intent:p,withButton:t==null?void 0:t.enabled}),r==null?void 0:r.imgContainer),children:f}),d("div",{className:i("desktop:flex desktop:flex-col desktop:justify-center desktop:py-10",r==null?void 0:r.textWithBtnContainer),children:[k&&o(n,{intent:p,headline:e,mobileHidden:!0}),o(j,{details:w,intent:p,withButton:(t==null?void 0:t.enabled)??!1}),(t==null?void 0:t.enabled)&&t&&o(h,{className:i("w-full px-4 desktop:w-max",r==null?void 0:r.button),size:"lg",intent:"secondary",...t.buttonContent})]})]})]})})};export{ir as LongBanner,ir as default};
1
+ import{jsx as o,jsxs as d}from"react/jsx-runtime";import{ButtonWithHandlers as h}from"../buttonWithHandlers/ButtonWithHandlers.js";import{widgetIds as x}from"../model/helpers.js";import{containerImgConfig as B}from"./model/cva.js";import{ResponsiveContainer as I}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{TypeGuards as N}from"../../shared/utils/typeGuards.js";import"react";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"../../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";import{Title as n}from"./ui/Title.js";import{TextList as j}from"./ui/TextList.js";const ir=({headline:e,buttonConfig:t,intent:p="twoItems",details:w,image:m,backgroundColor:l,classes:r})=>{const k=p==="fourItems",f=p==="twoItems",y=m&&"url"in m&&N.isObject(m)?o("img",{className:"w-full object-contain",alt:m.alt,src:m.url}):m;return o("section",{id:x.longBanner,"data-test-id":x.longBanner,className:i(r==null?void 0:r.root),children:d(I,{className:i(r==null?void 0:r.container),children:[f&&o(n,{intent:p,headline:e}),d("div",{className:i("bg-banner-skyblue-100 px-6 pb-8 pt-6 desktop:flex desktop:flex-row-reverse desktop:justify-between desktop:px-0 desktop:py-0 desktop:pl-12",r==null?void 0:r.contentContainer),style:{backgroundColor:l??"#f4f8fe"},children:[k&&o(n,{intent:p,headline:e,desktopHidden:!0}),o("div",{className:i(B({intent:p,withButton:t==null?void 0:t.enabled}),r==null?void 0:r.imgContainer),children:y}),d("div",{className:i("desktop:flex desktop:flex-col desktop:justify-center desktop:py-10",r==null?void 0:r.textWithBtnContainer),children:[k&&o(n,{intent:p,headline:e,mobileHidden:!0}),o(j,{details:w,intent:p,withButton:(t==null?void 0:t.enabled)??!1}),(t==null?void 0:t.enabled)&&t&&o(h,{className:i("w-full px-4 desktop:w-max",r==null?void 0:r.button),size:"lg",intent:"secondary",...t.buttonContent})]})]})]})})};export{ir as LongBanner,ir as default};
2
2
  //# sourceMappingURL=LongBanner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LongBanner.js","sources":["../../../../lib/widgets/longBanner/LongBanner.tsx"],"sourcesContent":["import { type ReactElement } from 'react'\nimport { ButtonWithHandlers } from '../buttonWithHandlers'\nimport { widgetIds } from '../model'\nimport { containerImgConfig } from './model/cva'\nimport { type ButtonConfig, type Details, type Image, type LongBannerClasses, type LongBannerConfig } from './model/types'\nimport { TextList, Title } from './ui'\nimport { ResponsiveContainer } from '$/shared/ui'\nimport { cn, TypeGuards } from '$/shared/utils'\n\nexport interface LongBannerProps<Enabled extends boolean> extends LongBannerConfig {\n headline: string | ReactElement\n details: Details<Enabled>[]\n intent?: 'twoItems' | 'fourItems'\n buttonConfig?: ButtonConfig\n image: Image\n backgroundColor?: string\n classes?: LongBannerClasses\n}\n\nexport const LongBanner = <Enabled extends boolean>({\n headline,\n buttonConfig,\n intent = 'twoItems',\n details,\n image,\n backgroundColor,\n classes\n}: LongBannerProps<Enabled>) => {\n const isFourItems = intent === 'fourItems'\n const isTwoItems = intent === 'twoItems'\n\n const img =\n image && 'url' in image && TypeGuards.isObject(image) ? (\n <img className='w-full object-contain' alt={image.alt} src={image.url} />\n ) : (\n image\n )\n\n return (\n <section\n style={{ backgroundColor: backgroundColor ?? '#d9edff' }}\n id={widgetIds.longBanner}\n data-test-id={widgetIds.longBanner}\n className={cn(classes?.root)}\n >\n <ResponsiveContainer className={cn(classes?.container)}>\n {isTwoItems && <Title intent={intent} headline={headline} />}\n\n <div\n className={cn(\n 'bg-banner-skyblue-100 px-6 pb-8 pt-6 desktop:flex desktop:flex-row-reverse desktop:justify-between desktop:px-0 desktop:py-0 desktop:pl-12',\n classes?.contentContainer\n )}\n >\n {isFourItems && <Title intent={intent} headline={headline} desktopHidden={true} />}\n <div className={cn(containerImgConfig({ intent, withButton: buttonConfig?.enabled }), classes?.imgContainer)}>\n {img}\n </div>\n <div\n className={cn('desktop:flex desktop:flex-col desktop:justify-center desktop:py-10', classes?.textWithBtnContainer)}\n >\n {isFourItems && <Title intent={intent} headline={headline} mobileHidden={true} />}\n <TextList details={details} intent={intent} withButton={buttonConfig?.enabled ?? false} />\n {buttonConfig?.enabled && buttonConfig && (\n <ButtonWithHandlers\n className={cn('w-full px-4 desktop:w-max', classes?.button)}\n size='lg'\n intent='secondary'\n {...buttonConfig.buttonContent}\n />\n )}\n </div>\n </div>\n </ResponsiveContainer>\n </section>\n )\n}\n\nexport default LongBanner\n"],"names":["LongBanner","headline","buttonConfig","intent","details","image","backgroundColor","classes","isFourItems","isTwoItems","img","TypeGuards","jsx","widgetIds","cn","ResponsiveContainer","Title","jsxs","containerImgConfig","TextList","ButtonWithHandlers"],"mappings":"kwEAmBO,MAAMA,GAAa,CAA0B,CAClD,SAAAC,EACA,aAAAC,EACA,OAAAC,EAAS,WACT,QAAAC,EACA,MAAAC,EACA,gBAAAC,EACA,QAAAC,CACF,IAAgC,CAC9B,MAAMC,EAAcL,IAAW,YACzBM,EAAaN,IAAW,WAExBO,EACJL,GAAS,QAASA,GAASM,EAAW,SAASN,CAAK,EAClDO,EAAC,MAAA,CAAI,UAAU,wBAAwB,IAAKP,EAAM,IAAK,IAAKA,EAAM,IAAK,EAEvEA,EAGJ,OACEO,EAAC,UAAA,CACC,MAAO,CAAE,gBAAiBN,GAAmB,SAAA,EAC7C,GAAIO,EAAU,WACd,eAAcA,EAAU,WACxB,UAAWC,EAAGP,GAAA,YAAAA,EAAS,IAAI,EAE3B,WAACQ,EAAA,CAAoB,UAAWD,EAAGP,GAAA,YAAAA,EAAS,SAAS,EAClD,SAAA,CAAAE,GAAcG,EAACI,EAAA,CAAM,OAAAb,EAAgB,SAAAF,CAAA,CAAoB,EAE1DgB,EAAC,MAAA,CACC,UAAWH,EACT,6IACAP,GAAA,YAAAA,EAAS,gBAAA,EAGV,SAAA,CAAAC,GAAeI,EAACI,EAAA,CAAM,OAAAb,EAAgB,SAAAF,EAAoB,cAAe,GAAM,EAChFW,EAAC,MAAA,CAAI,UAAWE,EAAGI,EAAmB,CAAE,OAAAf,EAAQ,WAAYD,GAAA,YAAAA,EAAc,QAAS,EAAGK,GAAA,YAAAA,EAAS,YAAY,EACxG,SAAAG,EACH,EACAO,EAAC,MAAA,CACC,UAAWH,EAAG,qEAAsEP,GAAA,YAAAA,EAAS,oBAAoB,EAEhH,SAAA,CAAAC,GAAeI,EAACI,EAAA,CAAM,OAAAb,EAAgB,SAAAF,EAAoB,aAAc,GAAM,IAC9EkB,EAAA,CAAS,QAAAf,EAAkB,OAAAD,EAAgB,YAAYD,GAAA,YAAAA,EAAc,UAAW,GAAO,GACvFA,GAAA,YAAAA,EAAc,UAAWA,GACxBU,EAACQ,EAAA,CACC,UAAWN,EAAG,4BAA6BP,GAAA,YAAAA,EAAS,MAAM,EAC1D,KAAK,KACL,OAAO,YACN,GAAGL,EAAa,aAAA,CAAA,CACnB,CAAA,CAAA,CAEJ,CAAA,CAAA,CACF,CAAA,CACF,CAAA,CAAA,CAGN"}
1
+ {"version":3,"file":"LongBanner.js","sources":["../../../../lib/widgets/longBanner/LongBanner.tsx"],"sourcesContent":["import { type ReactElement } from 'react'\nimport { ButtonWithHandlers } from '../buttonWithHandlers'\nimport { widgetIds } from '../model'\nimport { containerImgConfig } from './model/cva'\nimport { type ButtonConfig, type Details, type Image, type LongBannerClasses, type LongBannerConfig } from './model/types'\nimport { TextList, Title } from './ui'\nimport { ResponsiveContainer } from '$/shared/ui'\nimport { cn, TypeGuards } from '$/shared/utils'\n\nexport interface LongBannerProps<Enabled extends boolean> extends LongBannerConfig {\n headline: string | ReactElement\n details: Details<Enabled>[]\n intent?: 'twoItems' | 'fourItems'\n buttonConfig?: ButtonConfig\n image: Image\n backgroundColor?: string\n classes?: LongBannerClasses\n}\n\nexport const LongBanner = <Enabled extends boolean>({\n headline,\n buttonConfig,\n intent = 'twoItems',\n details,\n image,\n backgroundColor,\n classes\n}: LongBannerProps<Enabled>) => {\n const isFourItems = intent === 'fourItems'\n const isTwoItems = intent === 'twoItems'\n\n const img =\n image && 'url' in image && TypeGuards.isObject(image) ? (\n <img className='w-full object-contain' alt={image.alt} src={image.url} />\n ) : (\n image\n )\n\n return (\n <section id={widgetIds.longBanner} data-test-id={widgetIds.longBanner} className={cn(classes?.root)}>\n <ResponsiveContainer className={cn(classes?.container)}>\n {isTwoItems && <Title intent={intent} headline={headline} />}\n\n <div\n className={cn(\n 'bg-banner-skyblue-100 px-6 pb-8 pt-6 desktop:flex desktop:flex-row-reverse desktop:justify-between desktop:px-0 desktop:py-0 desktop:pl-12',\n classes?.contentContainer\n )}\n style={{ backgroundColor: backgroundColor ?? '#f4f8fe' }}\n >\n {isFourItems && <Title intent={intent} headline={headline} desktopHidden={true} />}\n <div className={cn(containerImgConfig({ intent, withButton: buttonConfig?.enabled }), classes?.imgContainer)}>\n {img}\n </div>\n <div\n className={cn('desktop:flex desktop:flex-col desktop:justify-center desktop:py-10', classes?.textWithBtnContainer)}\n >\n {isFourItems && <Title intent={intent} headline={headline} mobileHidden={true} />}\n <TextList details={details} intent={intent} withButton={buttonConfig?.enabled ?? false} />\n {buttonConfig?.enabled && buttonConfig && (\n <ButtonWithHandlers\n className={cn('w-full px-4 desktop:w-max', classes?.button)}\n size='lg'\n intent='secondary'\n {...buttonConfig.buttonContent}\n />\n )}\n </div>\n </div>\n </ResponsiveContainer>\n </section>\n )\n}\n\nexport default LongBanner\n"],"names":["LongBanner","headline","buttonConfig","intent","details","image","backgroundColor","classes","isFourItems","isTwoItems","img","TypeGuards","jsx","widgetIds","cn","jsxs","ResponsiveContainer","Title","containerImgConfig","TextList","ButtonWithHandlers"],"mappings":"kwEAmBO,MAAMA,GAAa,CAA0B,CAClD,SAAAC,EACA,aAAAC,EACA,OAAAC,EAAS,WACT,QAAAC,EACA,MAAAC,EACA,gBAAAC,EACA,QAAAC,CACF,IAAgC,CAC9B,MAAMC,EAAcL,IAAW,YACzBM,EAAaN,IAAW,WAExBO,EACJL,GAAS,QAASA,GAASM,EAAW,SAASN,CAAK,EAClDO,EAAC,MAAA,CAAI,UAAU,wBAAwB,IAAKP,EAAM,IAAK,IAAKA,EAAM,IAAK,EAEvEA,EAGJ,SACG,UAAA,CAAQ,GAAIQ,EAAU,WAAY,eAAcA,EAAU,WAAY,UAAWC,EAAGP,GAAA,YAAAA,EAAS,IAAI,EAChG,SAAAQ,EAACC,EAAA,CAAoB,UAAWF,EAAGP,GAAA,YAAAA,EAAS,SAAS,EAClD,SAAA,CAAAE,GAAcG,EAACK,EAAA,CAAM,OAAAd,EAAgB,SAAAF,CAAA,CAAoB,EAE1Dc,EAAC,MAAA,CACC,UAAWD,EACT,6IACAP,GAAA,YAAAA,EAAS,gBAAA,EAEX,MAAO,CAAE,gBAAiBD,GAAmB,SAAA,EAE5C,SAAA,CAAAE,GAAeI,EAACK,EAAA,CAAM,OAAAd,EAAgB,SAAAF,EAAoB,cAAe,GAAM,EAChFW,EAAC,MAAA,CAAI,UAAWE,EAAGI,EAAmB,CAAE,OAAAf,EAAQ,WAAYD,GAAA,YAAAA,EAAc,QAAS,EAAGK,GAAA,YAAAA,EAAS,YAAY,EACxG,SAAAG,EACH,EACAK,EAAC,MAAA,CACC,UAAWD,EAAG,qEAAsEP,GAAA,YAAAA,EAAS,oBAAoB,EAEhH,SAAA,CAAAC,GAAeI,EAACK,EAAA,CAAM,OAAAd,EAAgB,SAAAF,EAAoB,aAAc,GAAM,IAC9EkB,EAAA,CAAS,QAAAf,EAAkB,OAAAD,EAAgB,YAAYD,GAAA,YAAAA,EAAc,UAAW,GAAO,GACvFA,GAAA,YAAAA,EAAc,UAAWA,GACxBU,EAACQ,EAAA,CACC,UAAWN,EAAG,4BAA6BP,GAAA,YAAAA,EAAS,MAAM,EAC1D,KAAK,KACL,OAAO,YACN,GAAGL,EAAa,aAAA,CAAA,CACnB,CAAA,CAAA,CAEJ,CAAA,CAAA,CACF,CAAA,CACF,CAAA,CACF,CAEJ"}