{"version":3,"file":"index.WzQXetOj.js","sources":["../../../../../../../node_modules/@babylon/ui-kit-forms/components/inputs/checkbox-group/views/desktop/index.js"],"sourcesContent":["import { jsx, jsxs } from 'react/jsx-runtime';\nimport InputPanelDesktop from '../../../../others/input-panel/views/desktop/index.js';\nimport { genKey } from '@babylon/ui-kit-helpers/keys';\nimport { forwardRef, useRef, useImperativeHandle, useMemo } from 'react';\nimport { useResizeObserver } from 'usehooks-ts';\nimport Checkbox from '../../../checkbox/index.js';\nimport useCheckboxGroup from '../../hooks/useCheckboxGroup.js';\nimport useFormCheckboxGroup from '../../hooks/useFormCheckboxGroup.js';\nimport { CheckboxWrapper, InputWrapper } from '../../styled.js';\n\nconst CheckboxGroupDesktop = /*#__PURE__*/ forwardRef((props, ref)=>{\n    const { options = [], value = [], hasError, error, label = '', icon = '', onBlur, disabled = false, variant = 'with-input', preventEmpty = true } = props;\n    const inputRef = useRef(null);\n    const size = useResizeObserver({\n        ref: inputRef,\n        box: 'border-box'\n    });\n    useImperativeHandle(ref, ()=>inputRef.current);\n    const { handleChange, inputValue } = useCheckboxGroup(props);\n    const inputProps = useMemo(()=>({\n            label,\n            value: inputValue,\n            error,\n            hasError,\n            icon,\n            onBlur,\n            disabled\n        }), [\n        disabled,\n        error,\n        hasError,\n        icon,\n        inputValue,\n        label,\n        onBlur\n    ]);\n    const panelContent = useMemo(()=>options?.map((item, index)=>{\n            const isChecked = !!value.find((e)=>e.value === item.value);\n            return /*#__PURE__*/ jsx(CheckboxWrapper, {\n                children: /*#__PURE__*/ jsx(Checkbox, {\n                    ...item,\n                    checked: isChecked,\n                    disabled: preventEmpty && !inputValue.includes(',') && isChecked || item?.disabled,\n                    onChange: (e)=>handleChange(e, index)\n                })\n            }, genKey({\n                value: item.value,\n                id: item.id\n            }));\n        }), [\n        handleChange,\n        inputValue,\n        options,\n        preventEmpty,\n        value\n    ]);\n    const panel = useMemo(()=>({\n            width: size.width,\n            maxWidth: '100%',\n            content: panelContent\n        }), [\n        panelContent,\n        size.width\n    ]);\n    return /*#__PURE__*/ jsxs(InputWrapper, {\n        \"data-testid\": \"CheckboxGroup\",\n        children: [\n            variant === 'with-input' && /*#__PURE__*/ jsx(InputPanelDesktop, {\n                ref: inputRef,\n                inputProps: inputProps,\n                panel: panel\n            }),\n            variant === 'without-input' && panelContent\n        ]\n    });\n});\nCheckboxGroupDesktop.displayName = 'CheckboxGroupDesktop';\nconst FormCheckboxGroupDesktop = (props)=>{\n    const finalProps = useFormCheckboxGroup(props);\n    return /*#__PURE__*/ jsx(CheckboxGroupDesktop, {\n        ...finalProps\n    });\n};\n\nexport { FormCheckboxGroupDesktop, CheckboxGroupDesktop as default };\n//# sourceMappingURL=index.js.map\n"],"names":["CheckboxGroupDesktop","forwardRef","props","ref","options","value","hasError","error","label","icon","onBlur","disabled","variant","preventEmpty","inputRef","useRef","size","useResizeObserver","useImperativeHandle","handleChange","inputValue","useCheckboxGroup","inputProps","useMemo","panelContent","item","index","isChecked","e","jsx","CheckboxWrapper","Checkbox","genKey","panel","jsxs","InputWrapper","InputPanelDesktop","FormCheckboxGroupDesktop","finalProps","useFormCheckboxGroup"],"mappings":"4IAUK,MAACA,EAAqCC,EAAU,WAAC,CAACC,EAAOC,IAAM,CAChE,KAAM,CAAE,QAAAC,EAAU,CAAA,EAAI,MAAAC,EAAQ,CAAE,EAAE,SAAAC,EAAU,MAAAC,EAAO,MAAAC,EAAQ,GAAI,KAAAC,EAAO,GAAI,OAAAC,EAAQ,SAAAC,EAAW,GAAO,QAAAC,EAAU,aAAc,aAAAC,EAAe,EAAI,EAAKX,EAC9IY,EAAWC,EAAM,OAAC,IAAI,EACtBC,EAAOC,EAAkB,CAC3B,IAAKH,EACL,IAAK,YACb,CAAK,EACDI,EAAAA,oBAAoBf,EAAK,IAAIW,EAAS,OAAO,EAC7C,KAAM,CAAE,aAAAK,EAAc,WAAAC,GAAeC,EAAiBnB,CAAK,EACrDoB,EAAaC,EAAAA,QAAQ,KAAK,CACxB,MAAAf,EACA,MAAOY,EACP,MAAAb,EACA,SAAAD,EACA,KAAAG,EACA,OAAAC,EACA,SAAAC,CACZ,GAAY,CACJA,EACAJ,EACAD,EACAG,EACAW,EACAZ,EACAE,CACR,CAAK,EACKc,EAAeD,EAAAA,QAAQ,IAAInB,GAAA,YAAAA,EAAS,IAAI,CAACqB,EAAMC,IAAQ,CACrD,MAAMC,EAAY,CAAC,CAACtB,EAAM,KAAMuB,GAAIA,EAAE,QAAUH,EAAK,KAAK,EAC1D,OAAqBI,EAAAA,IAAIC,EAAiB,CACtC,SAAwBD,EAAG,IAACE,EAAU,CAClC,GAAGN,EACH,QAASE,EACT,SAAUd,GAAgB,CAACO,EAAW,SAAS,GAAG,GAAKO,IAAaF,GAAA,YAAAA,EAAM,UAC1E,SAAWG,GAAIT,EAAaS,EAAGF,CAAK,CACvC,CAAA,CACJ,EAAEM,EAAO,CACN,MAAOP,EAAK,MACZ,GAAIA,EAAK,EACzB,CAAa,CAAC,CACd,GAAY,CACJN,EACAC,EACAhB,EACAS,EACAR,CACR,CAAK,EACK4B,EAAQV,EAAAA,QAAQ,KAAK,CACnB,MAAOP,EAAK,MACZ,SAAU,OACV,QAASQ,CACrB,GAAY,CACJA,EACAR,EAAK,KACb,CAAK,EACD,OAAqBkB,EAAAA,KAAKC,EAAc,CACpC,cAAe,gBACf,SAAU,CACNvB,IAAY,cAA8BiB,EAAG,IAACO,EAAmB,CAC7D,IAAKtB,EACL,WAAYQ,EACZ,MAAOW,CACvB,CAAa,EACDrB,IAAY,iBAAmBY,CAC3C,CACA,CAAK,CACL,CAAC,EACDxB,EAAqB,YAAc,uBAC9B,MAACqC,EAA4BnC,GAAQ,CACtC,MAAMoC,EAAaC,EAAqBrC,CAAK,EAC7C,OAAqB2B,EAAAA,IAAI7B,EAAsB,CAC3C,GAAGsC,CACX,CAAK,CACL","x_google_ignoreList":[0]}