{"version":3,"sources":["../../src/LinkList/LinkListItem.tsx"],"sourcesContent":["import React, { FC, AnchorHTMLAttributes, ElementType, MouseEvent, MouseEventHandler } from 'react';\nimport classNames from 'classnames';\n\nexport interface LinkListItemProps extends AnchorHTMLAttributes<HTMLAnchorElement> {\n  /** Indica se l'elemento è attivo o no */\n  active?: boolean;\n  /** Indica se l'elemento è disabilitato o no */\n  disabled?: boolean;\n  /** Indica se l'elemento ha dimensioni larghe o no */\n  large?: boolean;\n  /** Indica se l'elemento è bold o no */\n  bold?: boolean;\n  /** Indica se l'elemento è un titolo. */\n  header?: boolean;\n  /** Indica se l'elemento è un divisore */\n  divider?: boolean;\n  /** Indica se l'elemento è in un dropdown */\n  inDropdown?: boolean;\n  /** Utilizzarlo in caso di utilizzo di componenti personalizzati */\n  tag?: ElementType;\n  /** Classi aggiuntive da usare per il componente LinkListItem */\n  className?: string;\n  /** Classi aggiuntive da usare per l'elemento contenitore dell'item */\n  wrapperClassName?: string;\n  /** Indica il link a cui l'elemento deve puntare. */\n  href?: string;\n  /** Indica il link route a cui l'elemento deve puntare. */\n  to?: string;\n  testId?: string;\n}\n\nconst handleDisabledOnClick = (e: MouseEvent<HTMLAnchorElement>) => {\n  e.preventDefault();\n};\n\nexport const LinkListItem: FC<LinkListItemProps> & {\n  TitleIconWrapper: typeof LinkListTitleIconWrapper;\n} = ({\n  className,\n  active,\n  disabled,\n  header,\n  divider,\n  bold,\n  large,\n  href,\n  tag = 'a',\n  wrapperClassName,\n  testId,\n  children,\n  inDropdown,\n  ...attributes\n}) => {\n  let Tag = tag;\n  const classes = classNames(\n    className,\n    {\n      active,\n      disabled,\n      header,\n      divider,\n      large: large,\n      medium: bold,\n      'dropdown-item': inDropdown\n    },\n    'list-item'\n  );\n\n  // Prevent click event when disabled.\n  const handlers: { onClick?: MouseEventHandler<HTMLAnchorElement> } = {};\n  if (disabled) {\n    handlers.onClick = handleDisabledOnClick;\n  }\n\n  if (header) {\n    Tag = 'h3';\n  } else if (divider) {\n    Tag = 'span';\n  }\n\n  if (inDropdown) {\n    attributes['role'] = 'menuitem';\n    attributes['tabIndex'] = 0;\n  }\n\n  if (header && href) {\n    return (\n      <li className={wrapperClassName} data-testid={testId}>\n        <Tag>\n          <a href={href || '#'} {...attributes} className={classes} {...handlers}>\n            {children}\n          </a>\n        </Tag>\n      </li>\n    );\n  }\n\n  return (\n    <li className={wrapperClassName} data-testid={testId}>\n      <Tag\n        role={attributes.onClick ? 'button' : undefined}\n        {...attributes}\n        className={classes}\n        href={href}\n        {...handlers}\n      >\n        {children}\n      </Tag>\n    </li>\n  );\n};\n\nconst LinkListTitleIconWrapper: FC<LinkListItemProps> = ({ children }) => {\n  return <span className='list-item-title-icon-wrapper'>{children}</span>;\n};\n\nLinkListItem.TitleIconWrapper = LinkListTitleIconWrapper;\n"],"mappings":"0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,kBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAA4F,sBAC5FC,EAAuB,2BA8BjBC,EAAyB,GAAqC,CAClE,EAAE,eAAe,CACnB,EAEaJ,EAET,CAAC,CACH,UAAAK,EACA,OAAAC,EACA,SAAAC,EACA,OAAAC,EACA,QAAAC,EACA,KAAAC,EACA,MAAAC,EACA,KAAAC,EACA,IAAAC,EAAM,IACN,iBAAAC,EACA,OAAAC,EACA,SAAAC,EACA,WAAAC,EACA,GAAGC,CACL,IAAM,CACJ,IAAIC,EAAMN,EACJO,KAAU,EAAAC,SACdhB,EACA,CACE,OAAAC,EACA,SAAAC,EACA,OAAAC,EACA,QAAAC,EACA,MAAOE,EACP,OAAQD,EACR,gBAAiBO,CACnB,EACA,WACF,EAGMK,EAA+D,CAAC,EAgBtE,OAfIf,IACFe,EAAS,QAAUlB,GAGjBI,EACFW,EAAM,KACGV,IACTU,EAAM,QAGJF,IACFC,EAAW,KAAU,WACrBA,EAAW,SAAc,GAGvBV,GAAUI,EAEV,EAAAW,QAAA,cAAC,MAAG,UAAWT,EAAkB,cAAaC,GAC5C,EAAAQ,QAAA,cAACJ,EAAA,KACC,EAAAI,QAAA,cAAC,KAAE,KAAMX,GAAQ,IAAM,GAAGM,EAAY,UAAWE,EAAU,GAAGE,GAC3DN,CACH,CACF,CACF,EAKF,EAAAO,QAAA,cAAC,MAAG,UAAWT,EAAkB,cAAaC,GAC5C,EAAAQ,QAAA,cAACJ,EAAA,CACC,KAAMD,EAAW,QAAU,SAAW,OACrC,GAAGA,EACJ,UAAWE,EACX,KAAMR,EACL,GAAGU,GAEHN,CACH,CACF,CAEJ,EAEMQ,EAAkD,CAAC,CAAE,SAAAR,CAAS,IAC3D,EAAAO,QAAA,cAAC,QAAK,UAAU,gCAAgCP,CAAS,EAGlEhB,EAAa,iBAAmBwB","names":["LinkListItem_exports","__export","LinkListItem","__toCommonJS","import_react","import_classnames","handleDisabledOnClick","className","active","disabled","header","divider","bold","large","href","tag","wrapperClassName","testId","children","inDropdown","attributes","Tag","classes","classNames","handlers","React","LinkListTitleIconWrapper"]}