{"version":3,"file":"index.mjs","sources":[""],"sourcesContent":["import \"./style.pcss\";\r\n\r\nimport { useEffect, useState } from \"react\";\r\nimport type { FC, ReactElement } from \"react\";\r\nimport type { IChecker } from \"./config/types\";\r\nimport { getRequiredState } from \"./utils/getRequiredState\";\r\nimport type { IComponentBaseProps } from \"../../types/components/index\";\r\nimport { getClassString } from \"../../utils/getClassString\";\r\nimport { getSanitizedHTML } from \"../../utils/getSanitizedHTML\";\r\nimport { useCN } from \"../../utils/react/useCN\";\r\nimport { Input } from \"../input\";\r\n\r\n/**\r\n * Компонент чекбокса или радиобаттона\r\n * @returns {ReactElement}\r\n */\r\nconst Checker: FC<IChecker & IComponentBaseProps> = ({\r\n  name,\r\n  extraClasses = {},\r\n  extraAttrs = {},\r\n  onChange,\r\n  children,\r\n  label = \"\",\r\n  type = \"checkbox\",\r\n  isDisabled = false,\r\n  isRequired = false,\r\n  isChecked = false,\r\n  form,\r\n  value = \"\",\r\n  tabIndex = 0,\r\n  id,\r\n}): ReactElement => {\r\n\r\n  const { getCN } = useCN(type);\r\n\r\n  const [ isDisabledState, setIsDisabledState ] = useState(isDisabled);\r\n  const [ isCheckedState, setIsCheckedState ] = useState(isChecked);\r\n  const [ isRequiredState, setIsRequiredState ] = useState(() => getRequiredState(isRequired, type));\r\n  const [ checkerValue, setCheckerValue ] = useState(value);\r\n\r\n  useEffect(() => {\r\n    setIsDisabledState(isDisabled);\r\n  }, [ isDisabled ]);\r\n\r\n  useEffect(() => {\r\n    setIsCheckedState(isChecked);\r\n  }, [ isChecked ]);\r\n\r\n  useEffect(() => {\r\n    setIsRequiredState(getRequiredState(isRequired, type));\r\n  }, [ isRequired, type ]);\r\n\r\n  useEffect(() => {\r\n    setCheckerValue(value);\r\n  }, [ value ]);\r\n\r\n  const labelClassName = getCN(\"\", {\r\n    isChecked: isCheckedState,\r\n    isRequired: !!isRequiredState,\r\n    ...extraClasses,\r\n  });\r\n\r\n  const inputGetCN = (elem = \"\", mod = {}) => getClassString(`${type}__input`, elem, mod);\r\n\r\n  return (\r\n    <label className={labelClassName} {...extraAttrs}>\r\n      {children || (\r\n        <>\r\n          <Input\r\n            value={checkerValue}\r\n            tabIndex={tabIndex}\r\n            getCN={inputGetCN}\r\n            form={form}\r\n            name={name}\r\n            id={id || name}\r\n            type={type}\r\n            onChange={onChange}\r\n            isDisabled={isDisabledState}\r\n            isChecked={isCheckedState}\r\n            isRequired={isRequiredState}\r\n          />\r\n          <span role={\"presentation\"} className={getCN(\"emulator\")} />\r\n          {!!label && (\r\n            <span\r\n              className={getCN(\"label\")}\r\n              dangerouslySetInnerHTML={{ __html: getSanitizedHTML(label) }}\r\n            />\r\n          )}\r\n        </>\r\n      )}\r\n    </label>\r\n  );\r\n};\r\n\r\nexport type { IChecker };\r\nexport { Checker };\r\n"],"names":["Checker","name","extraClasses","extraAttrs","onChange","children","label","type","isDisabled","isRequired","isChecked","form","value","tabIndex","id","getCN","useCN","isDisabledState","setIsDisabledState","useState","isCheckedState","setIsCheckedState","isRequiredState","setIsRequiredState","getRequiredState","checkerValue","setCheckerValue","useEffect","labelClassName","inputGetCN","elem","mod","getClassString","_jsx","className","_jsxs","_Fragment","Input","role","dangerouslySetInnerHTML","__html","getSanitizedHTML"],"mappings":"iWAgBA,MAAMA,QAA8C,EAClDC,UACAC,0BAAe,CAAA,EACfC,sBAAa,CAAA,EACbC,kBACAC,kBACAC,YAAQ,GACRC,UAAO,WACPC,sBAAa,MACbC,sBAAa,MACbC,oBAAY,MACZC,UACAC,YAAQ,GACRC,kBAAW,EACXC,UAGA,MAAMC,MAAEA,OAAUC,MAAMT,MAExB,MAAQU,gBAAiBC,oBAAuBC,SAASX,YACzD,MAAQY,eAAgBC,mBAAsBF,SAAST,WACvD,MAAQY,gBAAiBC,oBAAuBJ,SAAS,IAAMK,iBAAiBf,WAAYF,OAC5F,MAAQkB,aAAcC,iBAAoBP,SAASP,OAEnDe,UAAU,KACRT,mBAAmBV,aAClB,CAAEA,aAELmB,UAAU,KACRN,kBAAkBX,YACjB,CAAEA,YAELiB,UAAU,KACRJ,mBAAmBC,iBAAiBf,WAAYF,QAC/C,CAAEE,WAAYF,OAEjBoB,UAAU,KACRD,gBAAgBd,QACf,CAAEA,QAEL,MAAMgB,eAAiBb,MAAM,GAAI,CAC/BL,UAAWU,eACXX,aAAca,mBACXpB,eAGL,MAAM2B,WAAa,CAACC,KAAO,GAAIC,IAAM,CAAA,IAAOC,eAAe,GAAGzB,cAAeuB,KAAMC;AAEnF,OACEE,IAAA,QAAA,CAAOC,UAAWN,kBAAoBzB,WAAUE,SAC7CA,UACC8B,KAAAC,SAAA,CAAA/B,SAAA,CACE4B,IAACI,MAAK,CACJzB,MAAOa,aACPZ,SAAUA,SACVE,MAAOc,WACPlB,KAAMA,KACNV,KAAMA,KACNa,GAAIA,IAAMb,KACVM,KAAMA,KACNH,SAAUA,SACVI,WAAYS,gBACZP,UAAWU,eACXX,WAAYa,kBAEdW,IAAA,OAAA,CAAMK,KAAM,eAAgBJ,UAAWnB,MAAM,gBAC1CT,OACD2B,IAAA,OAAA,CACEC,UAAWnB,MAAM,SACjBwB,wBAAyB,CAAEC,OAAQC,iBAAiBnC"}