{"version":3,"file":"NavigationItem.mjs","sources":[""],"sourcesContent":["import { useContext } from \"react\";\r\nimport type { FC, MouseEvent, ReactElement } from \"react\";\r\nimport type { IComponentBaseProps } from \"../../../types/components\";\r\nimport { Icon } from \"../../icon\";\r\nimport type { INavigationItem } from \"../config/types\";\r\nimport { NavigationContext } from \"../context\";\r\n\r\n/**\r\n * Компонент элемента навигации.\r\n * @returns {ReactElement} Элемент навигации.\r\n */\r\nexport const NavigationItem: FC<INavigationItem & IComponentBaseProps> = (props = {}): ReactElement => {\r\n\r\n  const { getCN, handleClick } = useContext(NavigationContext);\r\n\r\n  const {\r\n    children,\r\n    name,\r\n    onClick = handleClick,\r\n    href = \"\",\r\n    extraClasses = {},\r\n    extraAttrs = {},\r\n    title,\r\n    icon = \"icon-next\",\r\n    iconSize = \"medium\",\r\n    isPrev,\r\n    isNext,\r\n    isDisabled = false,\r\n  } = props;\r\n\r\n  const classes = {\r\n    isDisabled, isPrev, isNext, ...extraClasses,\r\n  };\r\n\r\n  const onLinkClick = isDisabled\r\n    ? undefined\r\n    : (event: MouseEvent) => onClick({ event, data: props });\r\n\r\n  let content = children;\r\n\r\n  if (!content) {\r\n    if (isDisabled) {\r\n      content = <div className={getCN(\"link\")}><Icon src={icon} size={iconSize} /></div>;\r\n    } else if (name) {\r\n      content = (\r\n        <label htmlFor={name} title={title} className={getCN(\"link\", { isInput: true })}>\r\n          <Icon src={icon} size={iconSize} />\r\n        </label>\r\n      );\r\n    } else {\r\n      content = (\r\n        <a rel={isPrev ? \"prev\" : \"next\"} title={title} onClick={onLinkClick} href={href} className={getCN(\"link\")}>\r\n          <Icon src={icon} size={iconSize} />\r\n        </a>\r\n      );\r\n    }\r\n  }\r\n\r\n  return (\r\n    <li className={getCN(\"item\", classes)} {...extraAttrs}>\r\n      {content}\r\n    </li>\r\n  );\r\n};\r\n"],"names":["NavigationItem","props","getCN","handleClick","useContext","NavigationContext","children","name","onClick","href","extraClasses","extraAttrs","title","icon","iconSize","isPrev","isNext","isDisabled","classes","onLinkClick","undefined","event","data","content","_jsx","className","Icon","src","size","htmlFor","isInput","rel"],"mappings":"4JAWO,MAAMA,eAA4D,CAACC,MAAQ,MAEhF,MAAMC,MAAEA,MAAKC,YAAEA,aAAgBC,WAAWC,mBAE1C,MAAMC,SACJA,SAAQC,KACRA,KAAIC,QACJA,QAAUL,YAAWM,KACrBA,KAAO,GAAEC,aACTA,aAAe,CAAA,EAAEC,WACjBA,WAAa,CAAA,EAAEC,MACfA,MAAKC,KACLA,KAAO,YAAWC,SAClBA,SAAW,SAAQC,OACnBA,OAAMC,OACNA,OAAMC,WACNA,WAAa,OACXhB,MAEJ,MAAMiB,QAAU,CACdD,sBAAYF,cAAQC,iBAAWN,cAGjC,MAAMS,YAAcF,gBAChBG,EACCC,OAAsBb,QAAQ,CAAEa,YAAOC,KAAMrB,QAElD,IAAIsB,QAAUjB,SAEd,IAAKiB,QACH,GAAIN,WACFM,QAAUC,IAAA,MAAA,CAAKC,UAAWvB,MAAM,QAAQI,SAACkB,IAACE,KAAI,CAACC,IAAKd,KAAMe,KAAMd,kBAC3D,GAAIP,KACTgB,QACEC,IAAA,QAAA,CAAOK,QAAStB,KAAMK,MAAOA,MAAOa,UAAWvB,MAAM,OAAQ,CAAE4B,QAAS,OAAQxB,SAC9EkB,IAACE,KAAI,CAACC,IAAKd,KAAMe,KAAMd,kBAI3BS,QACEC,IAAA,IAAA,CAAGO,IAAKhB,OAAS,OAAS,OAAQH,MAAOA,MAAOJ,QAASW,YAAaV,KAAMA,KAAMgB,UAAWvB,MAAM,QAAQI,SACzGkB,IAACE,KAAI,CAACC,IAAKd,KAAMe,KAAMd;AAM/B,OACEU,IAAA,KAAA,CAAIC,UAAWvB,MAAM,OAAQgB,YAAcP,WAAUL,SAClDiB"}