UNPKG

design-react-kit

Version:

Componenti React per Bootstrap 5

1 lines 3.88 kB
{"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"]}