{"version":3,"sources":["../../src/Modal/Modal.tsx"],"sourcesContent":["import classnames from 'classnames';\nimport React, { FC, HTMLAttributes } from 'react';\nimport { FadeProps, Modal as InnerModal } from 'reactstrap';\nimport { CSSModule } from 'reactstrap/types/lib/utils';\n\nexport interface ModalProps extends HTMLAttributes<HTMLElement> {\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  [key: string]: any;\n  /** Indica lo stato del modale. Valore di default: undefined. */\n  isOpen?: boolean;\n  autoFocus?: boolean;\n  size?: string;\n  /** Funzione da chiamare quando l'utente clicca sul backdrop. Valore di default: undefined. */\n  toggle?: React.KeyboardEventHandler<unknown> | React.MouseEventHandler<unknown>;\n  keyboard?: boolean;\n  backdrop?: boolean | 'static';\n  /**\n   * Abilitare quando si vuole che solo il contenuto della modale sia scrollabile.\n   * Valore di default: undefined.\n   * */\n  scrollable?: boolean;\n  onEnter?: () => void;\n  onExit?: () => void;\n  onOpened?: () => void;\n  onClosed?: () => void;\n  cssModule?: CSSModule;\n  wrapClassName?: string;\n  modalClassName?: string;\n  backdropClassName?: string;\n  contentClassName?: string;\n  zIndex?: number | string;\n  fade?: boolean;\n  backdropTransition?: FadeProps;\n  modalTransition?: FadeProps;\n  centered?: boolean;\n  external?: React.ReactNode;\n  labelledBy?: string;\n  unmountOnClose?: boolean;\n  returnFocusAfterClose?: boolean;\n  container?: string | HTMLElement | React.RefObject<HTMLElement>;\n  innerRef?: React.Ref<HTMLElement>;\n  /** Abilitare quando si utilizza una icona nell'intestazione, al fine di formattare correttamente il modale. Valore di default: undefined. */\n  withIcon?: boolean;\n  /** Abilitare quando si utilizza una LinkList nell'intestazione, al fine di formattare correttamente il modale. Valore di default: undefined. */\n  withLinkList?: boolean;\n  /** Abilitare quando si vuole mostrare un breve messaggio di conferma. Valore di default: undefined. */\n  popConfirm?: boolean;\n  /** Abilitare quando si vuole mostrare un modale allineato a sinistra. Valore di default: undefined. */\n  align?: 'left' | 'right';\n}\n\nexport const Modal: FC<ModalProps> = ({\n  withIcon,\n  withLinkList,\n  popConfirm,\n  modalClassName,\n  align,\n  scrollable,\n  className,\n  ...props\n}) => {\n  const isAligned = align != null && ['left', 'right'].includes(align);\n  const modalDialogClassnames = classnames(modalClassName, {\n    'alert-modal': withIcon,\n    'it-dialog-link-list': withLinkList,\n    'popconfirm-modal': popConfirm,\n    'it-dialog-scrollable': scrollable && isAligned\n  });\n  const modalClassnames = classnames(className, {\n    'modal-dialog-left': align === 'left',\n    'modal-dialog-right': align === 'right'\n  });\n  return (\n    <InnerModal\n      {...props}\n      scrollable={!isAligned && scrollable}\n      className={modalClassnames}\n      modalClassName={modalDialogClassnames}\n    />\n  );\n};\n"],"mappings":"0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAuB,2BACvBC,EAA0C,sBAC1CC,EAA+C,sBAiDlCJ,EAAwB,CAAC,CACpC,SAAAK,EACA,aAAAC,EACA,WAAAC,EACA,eAAAC,EACA,MAAAC,EACA,WAAAC,EACA,UAAAC,EACA,GAAGC,CACL,IAAM,CACJ,IAAMC,EAAYJ,GAAS,MAAQ,CAAC,OAAQ,OAAO,EAAE,SAASA,CAAK,EAC7DK,KAAwB,EAAAC,SAAWP,EAAgB,CACvD,cAAeH,EACf,sBAAuBC,EACvB,mBAAoBC,EACpB,uBAAwBG,GAAcG,CACxC,CAAC,EACKG,KAAkB,EAAAD,SAAWJ,EAAW,CAC5C,oBAAqBF,IAAU,OAC/B,qBAAsBA,IAAU,OAClC,CAAC,EACD,OACE,EAAAQ,QAAA,cAAC,EAAAC,MAAA,CACE,GAAGN,EACJ,WAAY,CAACC,GAAaH,EAC1B,UAAWM,EACX,eAAgBF,EAClB,CAEJ","names":["Modal_exports","__export","Modal","__toCommonJS","import_classnames","import_react","import_reactstrap","withIcon","withLinkList","popConfirm","modalClassName","align","scrollable","className","props","isAligned","modalDialogClassnames","classnames","modalClassnames","React","InnerModal"]}