@laerdal/life-react-components 6.0.9-dev.1.full → 6.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"ModalDialog.cjs","names":["_react","_interopRequireDefault","require","_Button","_icons","_styles","_types","_ModalContainer","_ModalStyles","_ModalNote","_Tooltips","_","_styledComponents","_jsxRuntime","ModalDialog","_ref","size","isModalOpen","title","topImage","topImageWithFallbacksProps","topImageGrayscale","buttons","leftFooterAction","backButton","closeAction","submitAction","tooltip","children","note","shouldCloseOnOverlayClick","state","icon","zIndex","contentOverflow","hideCloseButton","width","hasContentBorders","theme","useTheme","getMinWidth","Size","Small","Large","Medium","getMaxWidth","getImageHeight","getMarginBottom","getPadding","getMaxHeight","ModalTitle","jsx","ComponentM","textStyle","ComponentTextStyle","Bold","ComponentL","ComponentXL","ModalTootip","ModalHoverModifier","TooltipWrapper","delay","XSmall","align","position","withArrow","label","IconButton","variant","shape","action","SystemIcons","Help","color","COLORS","generateToken","componentType","defaultVariant","ModalCloseButton","onClick","CloseButtonWrapper","$hasImage","$size","borderRadius","Close","ModalBackButton","BackButtonWrapper","ArrowLineLeft","getLeftActionIconElement","React","cloneElement","LeftFooterAction","text","actionType","disabled","button","TextButton","id","type","loading","style","order","marginRight","jsxs","HyperLink","className","href","e","preventDefault","default","showModal","closeModal","minWidth","maxWidth","height","padding","Column","onSubmit","display","flexDirection","maxHeight","StyledModalHeader","$height","$marginBottom","ImageContainer","ImageOverlay","src","alt","ImageWithFallbacks","loader","fallbacks","ModalHeaderActionsWithImage","$hasBackButton","ModalTitleSection","FlexContainer","ModalHeaderActions","ModalBody","$overflow","$hasContentBorders","ModalNote","ModalFooter","map","b","i","exports","propTypes","_propTypes","bool","isRequired","node","oneOfType","string","any","array","func","number","_default"],"sources":["../../src/Modals/ModalDialog.tsx"],"sourcesContent":["import React from 'react';\r\nimport { TextButton, IconButton } from '../Button';\r\nimport { SystemIcons } from '../icons';\r\nimport { COLORS, ComponentL, ComponentM, ComponentTextStyle, ComponentXL } from '../styles';\r\nimport { Size } from '../types';\r\nimport ModalContainer from './ModalContainer';\r\nimport {\r\n BackButtonWrapper,\r\n CloseButtonWrapper,\r\n Column,\r\n FlexContainer,\r\n ModalBody,\r\n ModalFooter,\r\n ModalHeaderActions,\r\n ModalHeaderActionsWithImage,\r\n ModalTitleSection,\r\n StyledModalHeader,\r\n ModalHoverModifier,\r\n ImageOverlay,\r\n ImageContainer,\r\n} from './ModalStyles';\r\n\r\nimport { ModalNote } from './ModalNote';\r\nimport { TooltipWrapper } from '../Tooltips';\r\nimport { ButtonAction, LeftFooterAction, LeftFooterButton, LeftFooterHyperlink } from './ModalTypes';\r\nimport { HyperLink, ImageWithFallbacks } from '..';\r\nimport { ImageWithFallbacksProps } from '../Image/ImageWithFallbacks';\r\nimport { useTheme } from 'styled-components';\r\n\r\nexport interface ModalDialogProps {\r\n /** Optional. Size of the modal. Defaults to 'medium' */\r\n size?: Size.Small | Size.Medium | Size.Large;\r\n /** Required. Current state of the modal. */\r\n isModalOpen: boolean;\r\n /** Optional. Content of the ModalDialog. */\r\n children?: React.ReactNode;\r\n /** Optional. Title of the ModalDialog. */\r\n title?: string | React.ReactNode;\r\n /** Optional. Content of the image to be shown in the header of the modal. */\r\n topImage?: any;\r\n /** Optional. Serves same purpose as 'topImage' except adds support for fallback options. Has higher priority than 'topImage'. */\r\n topImageWithFallbacksProps?: ImageWithFallbacksProps;\r\n /** Optional. If flag is set then overlay is added that converts image to grey color. */\r\n topImageGrayscale?: boolean;\r\n /** Optional. Collection of Buttons that will be shown in the footer on the right side of the ModalDialog. */\r\n buttons?: ButtonAction[];\r\n /** Optional. Left footer action that will be shown on the left side of the footer of ModalDialog. Can be a hyperlink, button or a note. */\r\n leftFooterAction?: LeftFooterAction;\r\n /** Optional. Tooltip that will be shown */\r\n tooltip?: string;\r\n /** */\r\n backButton?: () => void;\r\n closeAction: () => void;\r\n hideCloseButton?: boolean;\r\n submitAction: (event?: React.FormEvent<HTMLFormElement> | undefined) => void;\r\n note?: string | React.ReactNode;\r\n state?: string;\r\n icon?: React.ReactNode;\r\n zIndex?: number;\r\n contentOverflow?: string;\r\n width?: string;\r\n hasContentBorders?: boolean;\r\n shouldCloseOnOverlayClick?: boolean;\r\n}\r\n\r\nexport const ModalDialog: React.FunctionComponent<ModalDialogProps> = ({\r\n size,\r\n isModalOpen,\r\n title,\r\n topImage,\r\n topImageWithFallbacksProps,\r\n topImageGrayscale,\r\n buttons,\r\n leftFooterAction,\r\n backButton,\r\n closeAction,\r\n submitAction,\r\n tooltip,\r\n children,\r\n note,\r\n shouldCloseOnOverlayClick,\r\n state,\r\n icon,\r\n zIndex,\r\n contentOverflow,\r\n hideCloseButton,\r\n width,\r\n hasContentBorders,\r\n}) => {\r\n\r\n const theme = useTheme();\r\n const getMinWidth = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return '320px';\r\n case Size.Large:\r\n return '640px';\r\n case Size.Medium:\r\n default:\r\n return '480px';\r\n }\r\n };\r\n\r\n const getMaxWidth = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return '480px';\r\n case Size.Large:\r\n return '720px';\r\n case Size.Medium:\r\n default:\r\n return '640px';\r\n }\r\n };\r\n\r\n const getImageHeight = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return 160;\r\n case Size.Medium:\r\n return 200;\r\n case Size.Large:\r\n return 240;\r\n default:\r\n return 200;\r\n }\r\n };\r\n\r\n const getMarginBottom = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return '16px';\r\n case Size.Medium:\r\n return '24px';\r\n case Size.Large:\r\n return '32px';\r\n default:\r\n return '24px';\r\n }\r\n };\r\n\r\n const getPadding = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return '16px 16px 8px';\r\n case Size.Medium:\r\n return '24px 24px 20px';\r\n case Size.Large:\r\n return '32px';\r\n default:\r\n return '24px 24px 16px';\r\n }\r\n };\r\n\r\n const getMaxHeight = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return 'calc(100vh - 56px)';\r\n case Size.Medium:\r\n return 'calc(100vh - 76px)';\r\n case Size.Large:\r\n return 'calc(100vh - 96px)';\r\n default:\r\n return 'calc(100vh - 72px)';\r\n }\r\n };\r\n\r\n const ModalTitle = (title: string | React.ReactNode, size?: Size) => {\r\n if (typeof title === 'string') {\r\n switch (size) {\r\n case Size.Small:\r\n return <ComponentM textStyle={ComponentTextStyle.Bold}>{title}</ComponentM>;\r\n case Size.Medium:\r\n return <ComponentL textStyle={ComponentTextStyle.Bold}>{title}</ComponentL>;\r\n case Size.Large:\r\n return <ComponentXL textStyle={ComponentTextStyle.Bold}>{title}</ComponentXL>;\r\n default:\r\n return <ComponentL textStyle={ComponentTextStyle.Bold}>{title}</ComponentL>;\r\n }\r\n } else {\r\n return title;\r\n }\r\n };\r\n\r\n const ModalTootip = (tooltip: string) => {\r\n return (\r\n <ModalHoverModifier>\r\n <TooltipWrapper delay=\"0s\" size={Size.XSmall} align=\"center\" position=\"top\" withArrow={false} label={tooltip}>\r\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => {}}>\r\n <SystemIcons.Help size=\"24px\" color={COLORS.generateToken({componentType:'icon', defaultVariant:'subtle'}, theme)} />\r\n </IconButton>\r\n </TooltipWrapper>\r\n </ModalHoverModifier>\r\n );\r\n };\r\n\r\n const ModalCloseButton = (onClick: any) => {\r\n return (\r\n <CloseButtonWrapper $hasImage={!!topImage || !!topImageWithFallbacksProps} $size={size}>\r\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => onClick()} borderRadius={48}>\r\n <SystemIcons.Close size=\"24px\" color={COLORS.generateToken({componentType:'icon', defaultVariant:'subtle'}, theme)} />\r\n </IconButton>\r\n </CloseButtonWrapper>\r\n );\r\n };\r\n\r\n const ModalBackButton = () => {\r\n if (backButton) {\r\n return (\r\n <BackButtonWrapper $hasImage={!!topImage || !!topImageWithFallbacksProps} $size={size}>\r\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => backButton()} borderRadius={48}>\r\n <SystemIcons.ArrowLineLeft size=\"24px\" color={COLORS.generateToken({componentType:'icon', defaultVariant:'subtle'}, theme)} />\r\n </IconButton>\r\n </BackButtonWrapper>\r\n );\r\n }\r\n };\r\n\r\n const getLeftActionIconElement = (icon: React.ReactNode) => {\r\n return React.cloneElement(icon as React.ReactElement<any>, { size: size === Size.Small ? '20px' : size === Size.Large ? '28px' : '24px' });\r\n };\r\n\r\n const LeftFooterAction = (leftFooterAction: LeftFooterAction) => {\r\n const { text, actionType, disabled, icon, action } = leftFooterAction;\r\n switch (actionType) {\r\n case 'button':\r\n const button = leftFooterAction as LeftFooterButton;\r\n return (\r\n <TextButton\r\n id={'left-action-button'}\r\n type={button?.type}\r\n disabled={disabled}\r\n loading={button?.loading}\r\n icon={icon}\r\n size={size}\r\n onClick={action}\r\n variant={button?.variant ?? 'secondary'}\r\n style={{ order: -1, marginRight: 'auto' }}>\r\n {button?.children ?? button?.text}\r\n </TextButton>\r\n );\r\n case 'hyperlink':\r\n return (\r\n <HyperLink\r\n id=\"left-action-hyperlink\"\r\n className=\"footer-action\"\r\n href={(leftFooterAction as LeftFooterHyperlink).href}\r\n disabled={disabled}\r\n variant=\"default\"\r\n onClick={(e) => {\r\n if (action) {\r\n e.preventDefault();\r\n action(e);\r\n }\r\n }}>\r\n {text}\r\n {icon && getLeftActionIconElement(icon)}\r\n </HyperLink>\r\n );\r\n case 'note':\r\n return (\r\n <div className=\"footer-action note\">\r\n {icon && getLeftActionIconElement(icon)}\r\n <span>{text}</span>\r\n </div>\r\n );\r\n }\r\n };\r\n\r\n return (\r\n <ModalContainer\r\n showModal={isModalOpen}\r\n closeModal={closeAction}\r\n minWidth={getMinWidth()}\r\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\r\n maxWidth={getMaxWidth()}\r\n height=\"auto\"\r\n padding={getPadding()}\r\n zIndex={zIndex}\r\n width={width}>\r\n <Column>\r\n <form onSubmit={submitAction} style={{ display: 'flex', flexDirection: 'column', maxHeight: getMaxHeight() }}>\r\n {(topImage || topImageWithFallbacksProps) && (\r\n <StyledModalHeader $size={size} $height={getImageHeight()} $marginBottom={getMarginBottom()}>\r\n <ImageContainer $height={getImageHeight()}>\r\n {topImageGrayscale && <ImageOverlay $height={getImageHeight()} />}\r\n {topImage && <img src={topImage} alt=\"Modal top\" />}\r\n {!topImage && topImageWithFallbacksProps && (\r\n <ImageWithFallbacks\r\n loader={topImageWithFallbacksProps.loader}\r\n alt={topImageWithFallbacksProps.alt}\r\n fallbacks={topImageWithFallbacksProps.fallbacks}\r\n src={topImageWithFallbacksProps.src}\r\n />\r\n )}\r\n </ImageContainer>\r\n <ModalHeaderActionsWithImage $hasBackButton={!!backButton}>\r\n {ModalBackButton()}\r\n {!hideCloseButton && ModalCloseButton(closeAction)}\r\n </ModalHeaderActionsWithImage>\r\n </StyledModalHeader>\r\n )}\r\n <ModalTitleSection>\r\n <FlexContainer>\r\n {!(topImage || topImageWithFallbacksProps) && ModalBackButton()}\r\n {title && ModalTitle(title, size)}\r\n </FlexContainer>\r\n {(tooltip || !(topImage || topImageWithFallbacksProps)) && (\r\n <ModalHeaderActions>\r\n {tooltip && ModalTootip(tooltip)}\r\n {!(topImage || topImageWithFallbacksProps || hideCloseButton) && ModalCloseButton(closeAction)}\r\n </ModalHeaderActions>\r\n )}\r\n </ModalTitleSection>\r\n\r\n <ModalBody $size={size} $overflow={contentOverflow} $hasContentBorders={hasContentBorders}>\r\n {children}\r\n </ModalBody>\r\n\r\n {note && <ModalNote note={note} state={state} size={size} icon={icon} />}\r\n\r\n <ModalFooter $size={size}>\r\n {leftFooterAction && LeftFooterAction(leftFooterAction)}\r\n {buttons?.map((b, i) => (\r\n <TextButton key={b.id || i} icon={b.icon} id={b.id} disabled={b.disabled} loading={b.loading} size={size} onClick={b.action} type={b.type} variant={b.variant}>\r\n {b.children ?? b.text}\r\n </TextButton>\r\n ))}\r\n </ModalFooter>\r\n </form>\r\n </Column>\r\n </ModalContainer>\r\n );\r\n};\r\n\r\nexport default ModalDialog;\r\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,eAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,YAAA,GAAAN,OAAA;AAgBA,IAAAO,UAAA,GAAAP,OAAA;AACA,IAAAQ,SAAA,GAAAR,OAAA;AAEA,IAAAS,CAAA,GAAAT,OAAA;AAEA,IAAAU,iBAAA,GAAAV,OAAA;AAA6C,IAAAW,WAAA,GAAAX,OAAA;AAsCtC,MAAMY,WAAsD,GAAGC,IAAA,IAuBhE;EAAA,IAvBiE;IACrEC,IAAI;IACJC,WAAW;IACXC,KAAK;IACLC,QAAQ;IACRC,0BAA0B;IAC1BC,iBAAiB;IACjBC,OAAO;IACPC,gBAAgB;IAChBC,UAAU;IACVC,WAAW;IACXC,YAAY;IACZC,OAAO;IACPC,QAAQ;IACRC,IAAI;IACJC,yBAAyB;IACzBC,KAAK;IACLC,IAAI;IACJC,MAAM;IACNC,eAAe;IACfC,eAAe;IACfC,KAAK;IACLC;EACF,CAAC,GAAAtB,IAAA;EAEC,MAAMuB,KAAK,GAAG,IAAAC,0BAAQ,EAAC,CAAC;EACxB,MAAMC,WAAW,GAAGA,CAAA,KAAM;IACxB,QAAQxB,IAAI;MACV,KAAKyB,WAAI,CAACC,KAAK;QACb,OAAO,OAAO;MAChB,KAAKD,WAAI,CAACE,KAAK;QACb,OAAO,OAAO;MAChB,KAAKF,WAAI,CAACG,MAAM;MAChB;QACE,OAAO,OAAO;IAClB;EACF,CAAC;EAED,MAAMC,WAAW,GAAGA,CAAA,KAAM;IACxB,QAAQ7B,IAAI;MACV,KAAKyB,WAAI,CAACC,KAAK;QACb,OAAO,OAAO;MAChB,KAAKD,WAAI,CAACE,KAAK;QACb,OAAO,OAAO;MAChB,KAAKF,WAAI,CAACG,MAAM;MAChB;QACE,OAAO,OAAO;IAClB;EACF,CAAC;EAED,MAAME,cAAc,GAAGA,CAAA,KAAM;IAC3B,QAAQ9B,IAAI;MACV,KAAKyB,WAAI,CAACC,KAAK;QACb,OAAO,GAAG;MACZ,KAAKD,WAAI,CAACG,MAAM;QACd,OAAO,GAAG;MACZ,KAAKH,WAAI,CAACE,KAAK;QACb,OAAO,GAAG;MACZ;QACE,OAAO,GAAG;IACd;EACF,CAAC;EAED,MAAMI,eAAe,GAAGA,CAAA,KAAM;IAC5B,QAAQ/B,IAAI;MACV,KAAKyB,WAAI,CAACC,KAAK;QACb,OAAO,MAAM;MACf,KAAKD,WAAI,CAACG,MAAM;QACd,OAAO,MAAM;MACf,KAAKH,WAAI,CAACE,KAAK;QACb,OAAO,MAAM;MACf;QACE,OAAO,MAAM;IACjB;EACF,CAAC;EAED,MAAMK,UAAU,GAAGA,CAAA,KAAM;IACvB,QAAQhC,IAAI;MACV,KAAKyB,WAAI,CAACC,KAAK;QACb,OAAO,eAAe;MACxB,KAAKD,WAAI,CAACG,MAAM;QACd,OAAO,gBAAgB;MACzB,KAAKH,WAAI,CAACE,KAAK;QACb,OAAO,MAAM;MACf;QACE,OAAO,gBAAgB;IAC3B;EACF,CAAC;EAED,MAAMM,YAAY,GAAGA,CAAA,KAAM;IACzB,QAAQjC,IAAI;MACV,KAAKyB,WAAI,CAACC,KAAK;QACb,OAAO,oBAAoB;MAC7B,KAAKD,WAAI,CAACG,MAAM;QACd,OAAO,oBAAoB;MAC7B,KAAKH,WAAI,CAACE,KAAK;QACb,OAAO,oBAAoB;MAC7B;QACE,OAAO,oBAAoB;IAC/B;EACF,CAAC;EAED,MAAMO,UAAU,GAAGA,CAAChC,KAA+B,EAAEF,IAAW,KAAK;IACnE,IAAI,OAAOE,KAAK,KAAK,QAAQ,EAAE;MAC7B,QAAQF,IAAI;QACV,KAAKyB,WAAI,CAACC,KAAK;UACb,oBAAO,IAAA7B,WAAA,CAAAsC,GAAA,EAAC9C,OAAA,CAAA+C,UAAU;YAACC,SAAS,EAAEC,0BAAkB,CAACC,IAAK;YAAA3B,QAAA,EAAEV;UAAK,CAAa,CAAC;QAC7E,KAAKuB,WAAI,CAACG,MAAM;UACd,oBAAO,IAAA/B,WAAA,CAAAsC,GAAA,EAAC9C,OAAA,CAAAmD,UAAU;YAACH,SAAS,EAAEC,0BAAkB,CAACC,IAAK;YAAA3B,QAAA,EAAEV;UAAK,CAAa,CAAC;QAC7E,KAAKuB,WAAI,CAACE,KAAK;UACb,oBAAO,IAAA9B,WAAA,CAAAsC,GAAA,EAAC9C,OAAA,CAAAoD,WAAW;YAACJ,SAAS,EAAEC,0BAAkB,CAACC,IAAK;YAAA3B,QAAA,EAAEV;UAAK,CAAc,CAAC;QAC/E;UACE,oBAAO,IAAAL,WAAA,CAAAsC,GAAA,EAAC9C,OAAA,CAAAmD,UAAU;YAACH,SAAS,EAAEC,0BAAkB,CAACC,IAAK;YAAA3B,QAAA,EAAEV;UAAK,CAAa,CAAC;MAC/E;IACF,CAAC,MAAM;MACL,OAAOA,KAAK;IACd;EACF,CAAC;EAED,MAAMwC,WAAW,GAAI/B,OAAe,IAAK;IACvC,oBACE,IAAAd,WAAA,CAAAsC,GAAA,EAAC3C,YAAA,CAAAmD,kBAAkB;MAAA/B,QAAA,eACjB,IAAAf,WAAA,CAAAsC,GAAA,EAACzC,SAAA,CAAAkD,cAAc;QAACC,KAAK,EAAC,IAAI;QAAC7C,IAAI,EAAEyB,WAAI,CAACqB,MAAO;QAACC,KAAK,EAAC,QAAQ;QAACC,QAAQ,EAAC,KAAK;QAACC,SAAS,EAAE,KAAM;QAACC,KAAK,EAAEvC,OAAQ;QAAAC,QAAA,eAC3G,IAAAf,WAAA,CAAAsC,GAAA,EAAChD,OAAA,CAAAgE,UAAU;UAACC,OAAO,EAAC,WAAW;UAACC,KAAK,EAAC,UAAU;UAACC,MAAM,EAAEA,CAAA,KAAM,CAAC,CAAE;UAAA1C,QAAA,eAChE,IAAAf,WAAA,CAAAsC,GAAA,EAAC/C,MAAA,CAAAmE,WAAW,CAACC,IAAI;YAACxD,IAAI,EAAC,MAAM;YAACyD,KAAK,EAAEC,cAAM,CAACC,aAAa,CAAC;cAACC,aAAa,EAAC,MAAM;cAAEC,cAAc,EAAC;YAAQ,CAAC,EAAEvC,KAAK;UAAE,CAAE;QAAC,CAC3G;MAAC,CACC;IAAC,CACC,CAAC;EAEzB,CAAC;EAED,MAAMwC,gBAAgB,GAAIC,OAAY,IAAK;IACzC,oBACE,IAAAlE,WAAA,CAAAsC,GAAA,EAAC3C,YAAA,CAAAwE,kBAAkB;MAACC,SAAS,EAAE,CAAC,CAAC9D,QAAQ,IAAI,CAAC,CAACC,0BAA2B;MAAC8D,KAAK,EAAElE,IAAK;MAAAY,QAAA,eACrF,IAAAf,WAAA,CAAAsC,GAAA,EAAChD,OAAA,CAAAgE,UAAU;QAACC,OAAO,EAAC,WAAW;QAACC,KAAK,EAAC,UAAU;QAACC,MAAM,EAAEA,CAAA,KAAMS,OAAO,CAAC,CAAE;QAACI,YAAY,EAAE,EAAG;QAAAvD,QAAA,eACzF,IAAAf,WAAA,CAAAsC,GAAA,EAAC/C,MAAA,CAAAmE,WAAW,CAACa,KAAK;UAACpE,IAAI,EAAC,MAAM;UAACyD,KAAK,EAAEC,cAAM,CAACC,aAAa,CAAC;YAACC,aAAa,EAAC,MAAM;YAAEC,cAAc,EAAC;UAAQ,CAAC,EAAEvC,KAAK;QAAE,CAAE;MAAC,CAC5G;IAAC,CACK,CAAC;EAEzB,CAAC;EAED,MAAM+C,eAAe,GAAGA,CAAA,KAAM;IAC5B,IAAI7D,UAAU,EAAE;MACd,oBACE,IAAAX,WAAA,CAAAsC,GAAA,EAAC3C,YAAA,CAAA8E,iBAAiB;QAACL,SAAS,EAAE,CAAC,CAAC9D,QAAQ,IAAI,CAAC,CAACC,0BAA2B;QAAC8D,KAAK,EAAElE,IAAK;QAAAY,QAAA,eACpF,IAAAf,WAAA,CAAAsC,GAAA,EAAChD,OAAA,CAAAgE,UAAU;UAACC,OAAO,EAAC,WAAW;UAACC,KAAK,EAAC,UAAU;UAACC,MAAM,EAAEA,CAAA,KAAM9C,UAAU,CAAC,CAAE;UAAC2D,YAAY,EAAE,EAAG;UAAAvD,QAAA,eAC5F,IAAAf,WAAA,CAAAsC,GAAA,EAAC/C,MAAA,CAAAmE,WAAW,CAACgB,aAAa;YAACvE,IAAI,EAAC,MAAM;YAACyD,KAAK,EAAEC,cAAM,CAACC,aAAa,CAAC;cAACC,aAAa,EAAC,MAAM;cAAEC,cAAc,EAAC;YAAQ,CAAC,EAAEvC,KAAK;UAAE,CAAE;QAAC,CACpH;MAAC,CACI,CAAC;IAExB;EACF,CAAC;EAED,MAAMkD,wBAAwB,GAAIxD,IAAqB,IAAK;IAC1D,oBAAOyD,cAAK,CAACC,YAAY,CAAC1D,IAAI,EAA6B;MAAEhB,IAAI,EAAEA,IAAI,KAAKyB,WAAI,CAACC,KAAK,GAAG,MAAM,GAAG1B,IAAI,KAAKyB,WAAI,CAACE,KAAK,GAAG,MAAM,GAAG;IAAO,CAAC,CAAC;EAC5I,CAAC;EAED,MAAMgD,gBAAgB,GAAIpE,gBAAkC,IAAK;IAC/D,MAAM;MAAEqE,IAAI;MAAEC,UAAU;MAAEC,QAAQ;MAAE9D,IAAI;MAAEsC;IAAO,CAAC,GAAG/C,gBAAgB;IACrE,QAAQsE,UAAU;MAChB,KAAK,QAAQ;QACX,MAAME,MAAM,GAAGxE,gBAAoC;QACnD,oBACE,IAAAV,WAAA,CAAAsC,GAAA,EAAChD,OAAA,CAAA6F,UAAU;UACTC,EAAE,EAAE,oBAAqB;UACzBC,IAAI,EAAEH,MAAM,EAAEG,IAAK;UACnBJ,QAAQ,EAAEA,QAAS;UACnBK,OAAO,EAAEJ,MAAM,EAAEI,OAAQ;UACzBnE,IAAI,EAAEA,IAAK;UACXhB,IAAI,EAAEA,IAAK;UACX+D,OAAO,EAAET,MAAO;UAChBF,OAAO,EAAE2B,MAAM,EAAE3B,OAAO,IAAI,WAAY;UACxCgC,KAAK,EAAE;YAAEC,KAAK,EAAE,CAAC,CAAC;YAAEC,WAAW,EAAE;UAAO,CAAE;UAAA1E,QAAA,EACzCmE,MAAM,EAAEnE,QAAQ,IAAImE,MAAM,EAAEH;QAAI,CACvB,CAAC;MAEjB,KAAK,WAAW;QACd,oBACE,IAAA/E,WAAA,CAAA0F,IAAA,EAAC5F,CAAA,CAAA6F,SAAS;UACRP,EAAE,EAAC,uBAAuB;UAC1BQ,SAAS,EAAC,eAAe;UACzBC,IAAI,EAAGnF,gBAAgB,CAAyBmF,IAAK;UACrDZ,QAAQ,EAAEA,QAAS;UACnB1B,OAAO,EAAC,SAAS;UACjBW,OAAO,EAAG4B,CAAC,IAAK;YACd,IAAIrC,MAAM,EAAE;cACVqC,CAAC,CAACC,cAAc,CAAC,CAAC;cAClBtC,MAAM,CAACqC,CAAC,CAAC;YACX;UACF,CAAE;UAAA/E,QAAA,GACDgE,IAAI,EACJ5D,IAAI,IAAIwD,wBAAwB,CAACxD,IAAI,CAAC;QAAA,CAC9B,CAAC;MAEhB,KAAK,MAAM;QACT,oBACE,IAAAnB,WAAA,CAAA0F,IAAA;UAAKE,SAAS,EAAC,oBAAoB;UAAA7E,QAAA,GAChCI,IAAI,IAAIwD,wBAAwB,CAACxD,IAAI,CAAC,eACvC,IAAAnB,WAAA,CAAAsC,GAAA;YAAAvB,QAAA,EAAOgE;UAAI,CAAO,CAAC;QAAA,CAChB,CAAC;IAEZ;EACF,CAAC;EAED,oBACE,IAAA/E,WAAA,CAAAsC,GAAA,EAAC5C,eAAA,CAAAsG,OAAc;IACbC,SAAS,EAAE7F,WAAY;IACvB8F,UAAU,EAAEtF,WAAY;IACxBuF,QAAQ,EAAExE,WAAW,CAAC,CAAE;IACxBV,yBAAyB,EAAEA,yBAA0B;IACrDmF,QAAQ,EAAEpE,WAAW,CAAC,CAAE;IACxBqE,MAAM,EAAC,MAAM;IACbC,OAAO,EAAEnE,UAAU,CAAC,CAAE;IACtBf,MAAM,EAAEA,MAAO;IACfG,KAAK,EAAEA,KAAM;IAAAR,QAAA,eACb,IAAAf,WAAA,CAAAsC,GAAA,EAAC3C,YAAA,CAAA4G,MAAM;MAAAxF,QAAA,eACL,IAAAf,WAAA,CAAA0F,IAAA;QAAMc,QAAQ,EAAE3F,YAAa;QAAC0E,KAAK,EAAE;UAAEkB,OAAO,EAAE,MAAM;UAAEC,aAAa,EAAE,QAAQ;UAAEC,SAAS,EAAEvE,YAAY,CAAC;QAAE,CAAE;QAAArB,QAAA,GAC1G,CAACT,QAAQ,IAAIC,0BAA0B,kBACtC,IAAAP,WAAA,CAAA0F,IAAA,EAAC/F,YAAA,CAAAiH,iBAAiB;UAACvC,KAAK,EAAElE,IAAK;UAAC0G,OAAO,EAAE5E,cAAc,CAAC,CAAE;UAAC6E,aAAa,EAAE5E,eAAe,CAAC,CAAE;UAAAnB,QAAA,gBAC1F,IAAAf,WAAA,CAAA0F,IAAA,EAAC/F,YAAA,CAAAoH,cAAc;YAACF,OAAO,EAAE5E,cAAc,CAAC,CAAE;YAAAlB,QAAA,GACvCP,iBAAiB,iBAAI,IAAAR,WAAA,CAAAsC,GAAA,EAAC3C,YAAA,CAAAqH,YAAY;cAACH,OAAO,EAAE5E,cAAc,CAAC;YAAE,CAAE,CAAC,EAChE3B,QAAQ,iBAAI,IAAAN,WAAA,CAAAsC,GAAA;cAAK2E,GAAG,EAAE3G,QAAS;cAAC4G,GAAG,EAAC;YAAW,CAAE,CAAC,EAClD,CAAC5G,QAAQ,IAAIC,0BAA0B,iBACtC,IAAAP,WAAA,CAAAsC,GAAA,EAACxC,CAAA,CAAAqH,kBAAkB;cACjBC,MAAM,EAAE7G,0BAA0B,CAAC6G,MAAO;cAC1CF,GAAG,EAAE3G,0BAA0B,CAAC2G,GAAI;cACpCG,SAAS,EAAE9G,0BAA0B,CAAC8G,SAAU;cAChDJ,GAAG,EAAE1G,0BAA0B,CAAC0G;YAAI,CACrC,CACF;UAAA,CACa,CAAC,eACjB,IAAAjH,WAAA,CAAA0F,IAAA,EAAC/F,YAAA,CAAA2H,2BAA2B;YAACC,cAAc,EAAE,CAAC,CAAC5G,UAAW;YAAAI,QAAA,GACvDyD,eAAe,CAAC,CAAC,EACjB,CAAClD,eAAe,IAAI2C,gBAAgB,CAACrD,WAAW,CAAC;UAAA,CACvB,CAAC;QAAA,CACb,CACpB,eACD,IAAAZ,WAAA,CAAA0F,IAAA,EAAC/F,YAAA,CAAA6H,iBAAiB;UAAAzG,QAAA,gBAChB,IAAAf,WAAA,CAAA0F,IAAA,EAAC/F,YAAA,CAAA8H,aAAa;YAAA1G,QAAA,GACX,EAAET,QAAQ,IAAIC,0BAA0B,CAAC,IAAIiE,eAAe,CAAC,CAAC,EAC9DnE,KAAK,IAAIgC,UAAU,CAAChC,KAAK,EAAEF,IAAI,CAAC;UAAA,CACpB,CAAC,EACf,CAACW,OAAO,IAAI,EAAER,QAAQ,IAAIC,0BAA0B,CAAC,kBACpD,IAAAP,WAAA,CAAA0F,IAAA,EAAC/F,YAAA,CAAA+H,kBAAkB;YAAA3G,QAAA,GAChBD,OAAO,IAAI+B,WAAW,CAAC/B,OAAO,CAAC,EAC/B,EAAER,QAAQ,IAAIC,0BAA0B,IAAIe,eAAe,CAAC,IAAI2C,gBAAgB,CAACrD,WAAW,CAAC;UAAA,CAC5E,CACrB;QAAA,CACgB,CAAC,eAEpB,IAAAZ,WAAA,CAAAsC,GAAA,EAAC3C,YAAA,CAAAgI,SAAS;UAACtD,KAAK,EAAElE,IAAK;UAACyH,SAAS,EAAEvG,eAAgB;UAACwG,kBAAkB,EAAErG,iBAAkB;UAAAT,QAAA,EACvFA;QAAQ,CACA,CAAC,EAEXC,IAAI,iBAAI,IAAAhB,WAAA,CAAAsC,GAAA,EAAC1C,UAAA,CAAAkI,SAAS;UAAC9G,IAAI,EAAEA,IAAK;UAACE,KAAK,EAAEA,KAAM;UAACf,IAAI,EAAEA,IAAK;UAACgB,IAAI,EAAEA;QAAK,CAAE,CAAC,eAExE,IAAAnB,WAAA,CAAA0F,IAAA,EAAC/F,YAAA,CAAAoI,WAAW;UAAC1D,KAAK,EAAElE,IAAK;UAAAY,QAAA,GACtBL,gBAAgB,IAAIoE,gBAAgB,CAACpE,gBAAgB,CAAC,EACtDD,OAAO,EAAEuH,GAAG,CAAC,CAACC,CAAC,EAAEC,CAAC,kBACjB,IAAAlI,WAAA,CAAAsC,GAAA,EAAChD,OAAA,CAAA6F,UAAU;YAAiBhE,IAAI,EAAE8G,CAAC,CAAC9G,IAAK;YAACiE,EAAE,EAAE6C,CAAC,CAAC7C,EAAG;YAACH,QAAQ,EAAEgD,CAAC,CAAChD,QAAS;YAACK,OAAO,EAAE2C,CAAC,CAAC3C,OAAQ;YAACnF,IAAI,EAAEA,IAAK;YAAC+D,OAAO,EAAE+D,CAAC,CAACxE,MAAO;YAAC4B,IAAI,EAAE4C,CAAC,CAAC5C,IAAK;YAAC9B,OAAO,EAAE0E,CAAC,CAAC1E,OAAQ;YAAAxC,QAAA,EAC3JkH,CAAC,CAAClH,QAAQ,IAAIkH,CAAC,CAAClD;UAAI,GADNkD,CAAC,CAAC7C,EAAE,IAAI8C,CAEb,CACb,CAAC;QAAA,CACS,CAAC;MAAA,CACV;IAAC,CACD;EAAC,CACK,CAAC;AAErB,CAAC;AAACC,OAAA,CAAAlI,WAAA,GAAAA,WAAA;AAAAA,WAAA,CAAAmI,SAAA;EA5SAhI,WAAW,EAAAiI,UAAA,CAAArC,OAAA,CAAAsC,IAAA,CAAAC,UAAA;EAEXxH,QAAQ,EAAAsH,UAAA,CAAArC,OAAA,CAAAwC,IAAA;EAERnI,KAAK,EAAAgI,UAAA,CAAArC,OAAA,CAAAyC,SAAA,EAAAJ,UAAA,CAAArC,OAAA,CAAA0C,MAAA,EAAAL,UAAA,CAAArC,OAAA,CAAAwC,IAAA;EAELlI,QAAQ,EAAA+H,UAAA,CAAArC,OAAA,CAAA2C,GAAA;EAIRnI,iBAAiB,EAAA6H,UAAA,CAAArC,OAAA,CAAAsC,IAAA;EAEjB7H,OAAO,EAAA4H,UAAA,CAAArC,OAAA,CAAA4C,KAAA;EAIP9H,OAAO,EAAAuH,UAAA,CAAArC,OAAA,CAAA0C,MAAA;EAEP/H,UAAU,EAAA0H,UAAA,CAAArC,OAAA,CAAA6C,IAAA;EACVjI,WAAW,EAAAyH,UAAA,CAAArC,OAAA,CAAA6C,IAAA,CAAAN,UAAA;EACXjH,eAAe,EAAA+G,UAAA,CAAArC,OAAA,CAAAsC,IAAA;EACfzH,YAAY,EAAAwH,UAAA,CAAArC,OAAA,CAAA6C,IAAA,CAAAN,UAAA;EACZvH,IAAI,EAAAqH,UAAA,CAAArC,OAAA,CAAAyC,SAAA,EAAAJ,UAAA,CAAArC,OAAA,CAAA0C,MAAA,EAAAL,UAAA,CAAArC,OAAA,CAAAwC,IAAA;EACJtH,KAAK,EAAAmH,UAAA,CAAArC,OAAA,CAAA0C,MAAA;EACLvH,IAAI,EAAAkH,UAAA,CAAArC,OAAA,CAAAwC,IAAA;EACJpH,MAAM,EAAAiH,UAAA,CAAArC,OAAA,CAAA8C,MAAA;EACNzH,eAAe,EAAAgH,UAAA,CAAArC,OAAA,CAAA0C,MAAA;EACfnH,KAAK,EAAA8G,UAAA,CAAArC,OAAA,CAAA0C,MAAA;EACLlH,iBAAiB,EAAA6G,UAAA,CAAArC,OAAA,CAAAsC,IAAA;EACjBrH,yBAAyB,EAAAoH,UAAA,CAAArC,OAAA,CAAAsC;AAAA;AAAA,IAAAS,QAAA,GAAAZ,OAAA,CAAAnC,OAAA,GAiRZ/F,WAAW","ignoreList":[]}
1
+ {"version":3,"file":"ModalDialog.cjs","names":["_react","_interopRequireDefault","require","_Button","_icons","_styles","_types","_ModalContainer","_ModalStyles","_ModalNote","_Tooltips","_","_styledComponents","_jsxRuntime","ModalDialog","_ref","size","isModalOpen","title","topImage","topImageWithFallbacksProps","topImageGrayscale","buttons","leftFooterAction","backButton","closeAction","submitAction","tooltip","children","note","shouldCloseOnOverlayClick","state","icon","zIndex","contentOverflow","hideCloseButton","width","hasContentBorders","className","id","theme","useTheme","getMinWidth","Size","Small","Large","Medium","getMaxWidth","getImageHeight","getMarginBottom","getPadding","getMaxHeight","ModalTitle","jsx","ComponentM","textStyle","ComponentTextStyle","Bold","ComponentL","ComponentXL","ModalTootip","ModalHoverModifier","TooltipWrapper","delay","XSmall","align","position","withArrow","label","IconButton","variant","shape","action","SystemIcons","Help","color","COLORS","generateToken","componentType","defaultVariant","ModalCloseButton","onClick","CloseButtonWrapper","$hasImage","$size","borderRadius","Close","ModalBackButton","BackButtonWrapper","ArrowLineLeft","getLeftActionIconElement","React","cloneElement","LeftFooterAction","text","actionType","disabled","button","TextButton","type","loading","style","order","marginRight","jsxs","HyperLink","href","e","preventDefault","default","showModal","closeModal","minWidth","maxWidth","height","padding","Column","onSubmit","display","flexDirection","maxHeight","StyledModalHeader","$height","$marginBottom","ImageContainer","ImageOverlay","src","alt","ImageWithFallbacks","loader","fallbacks","ModalHeaderActionsWithImage","$hasBackButton","ModalTitleSection","FlexContainer","ModalHeaderActions","ModalBody","$overflow","$hasContentBorders","ModalNote","ModalFooter","map","b","i","exports","propTypes","_propTypes","bool","isRequired","node","oneOfType","string","any","array","func","number","_default"],"sources":["../../src/Modals/ModalDialog.tsx"],"sourcesContent":["import React from 'react';\r\nimport { TextButton, IconButton } from '../Button';\r\nimport { SystemIcons } from '../icons';\r\nimport { COLORS, ComponentL, ComponentM, ComponentTextStyle, ComponentXL } from '../styles';\r\nimport { Size } from '../types';\r\nimport ModalContainer from './ModalContainer';\r\nimport {\r\n BackButtonWrapper,\r\n CloseButtonWrapper,\r\n Column,\r\n FlexContainer,\r\n ModalBody,\r\n ModalFooter,\r\n ModalHeaderActions,\r\n ModalHeaderActionsWithImage,\r\n ModalTitleSection,\r\n StyledModalHeader,\r\n ModalHoverModifier,\r\n ImageOverlay,\r\n ImageContainer,\r\n} from './ModalStyles';\r\n\r\nimport { ModalNote } from './ModalNote';\r\nimport { TooltipWrapper } from '../Tooltips';\r\nimport { ButtonAction, LeftFooterAction, LeftFooterButton, LeftFooterHyperlink } from './ModalTypes';\r\nimport { HyperLink, ImageWithFallbacks } from '..';\r\nimport { ImageWithFallbacksProps } from '../Image/ImageWithFallbacks';\r\nimport { useTheme } from 'styled-components';\r\n\r\nexport interface ModalDialogProps {\r\n /** Optional. Size of the modal. Defaults to 'medium' */\r\n size?: Size.Small | Size.Medium | Size.Large;\r\n /** Required. Current state of the modal. */\r\n isModalOpen: boolean;\r\n /** Optional. Content of the ModalDialog. */\r\n children?: React.ReactNode;\r\n /** Optional. Title of the ModalDialog. */\r\n title?: string | React.ReactNode;\r\n /** Optional. Content of the image to be shown in the header of the modal. */\r\n topImage?: any;\r\n /** Optional. Serves same purpose as 'topImage' except adds support for fallback options. Has higher priority than 'topImage'. */\r\n topImageWithFallbacksProps?: ImageWithFallbacksProps;\r\n /** Optional. If flag is set then overlay is added that converts image to grey color. */\r\n topImageGrayscale?: boolean;\r\n /** Optional. Collection of Buttons that will be shown in the footer on the right side of the ModalDialog. */\r\n buttons?: ButtonAction[];\r\n /** Optional. Left footer action that will be shown on the left side of the footer of ModalDialog. Can be a hyperlink, button or a note. */\r\n leftFooterAction?: LeftFooterAction;\r\n /** Optional. Tooltip that will be shown */\r\n tooltip?: string;\r\n /** */\r\n backButton?: () => void;\r\n className?: string;\r\n id?: string;\r\n closeAction: () => void;\r\n hideCloseButton?: boolean;\r\n submitAction: (event?: React.FormEvent<HTMLFormElement> | undefined) => void;\r\n note?: string | React.ReactNode;\r\n state?: string;\r\n icon?: React.ReactNode;\r\n zIndex?: number;\r\n contentOverflow?: string;\r\n width?: string;\r\n hasContentBorders?: boolean;\r\n shouldCloseOnOverlayClick?: boolean;\r\n}\r\n\r\nexport const ModalDialog: React.FunctionComponent<ModalDialogProps> = ({\r\n size,\r\n isModalOpen,\r\n title,\r\n topImage,\r\n topImageWithFallbacksProps,\r\n topImageGrayscale,\r\n buttons,\r\n leftFooterAction,\r\n backButton,\r\n closeAction,\r\n submitAction,\r\n tooltip,\r\n children,\r\n note,\r\n shouldCloseOnOverlayClick,\r\n state,\r\n icon,\r\n zIndex,\r\n contentOverflow,\r\n hideCloseButton,\r\n width,\r\n hasContentBorders,\r\n className,\r\n id,\r\n}) => {\r\n\r\n const theme = useTheme();\r\n const getMinWidth = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return '320px';\r\n case Size.Large:\r\n return '640px';\r\n case Size.Medium:\r\n default:\r\n return '480px';\r\n }\r\n };\r\n\r\n const getMaxWidth = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return '480px';\r\n case Size.Large:\r\n return '720px';\r\n case Size.Medium:\r\n default:\r\n return '640px';\r\n }\r\n };\r\n\r\n const getImageHeight = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return 160;\r\n case Size.Medium:\r\n return 200;\r\n case Size.Large:\r\n return 240;\r\n default:\r\n return 200;\r\n }\r\n };\r\n\r\n const getMarginBottom = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return '16px';\r\n case Size.Medium:\r\n return '24px';\r\n case Size.Large:\r\n return '32px';\r\n default:\r\n return '24px';\r\n }\r\n };\r\n\r\n const getPadding = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return '16px 16px 8px';\r\n case Size.Medium:\r\n return '24px 24px 20px';\r\n case Size.Large:\r\n return '32px';\r\n default:\r\n return '24px 24px 16px';\r\n }\r\n };\r\n\r\n const getMaxHeight = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return 'calc(100vh - 56px)';\r\n case Size.Medium:\r\n return 'calc(100vh - 76px)';\r\n case Size.Large:\r\n return 'calc(100vh - 96px)';\r\n default:\r\n return 'calc(100vh - 72px)';\r\n }\r\n };\r\n\r\n const ModalTitle = (title: string | React.ReactNode, size?: Size) => {\r\n if (typeof title === 'string') {\r\n switch (size) {\r\n case Size.Small:\r\n return <ComponentM textStyle={ComponentTextStyle.Bold}>{title}</ComponentM>;\r\n case Size.Medium:\r\n return <ComponentL textStyle={ComponentTextStyle.Bold}>{title}</ComponentL>;\r\n case Size.Large:\r\n return <ComponentXL textStyle={ComponentTextStyle.Bold}>{title}</ComponentXL>;\r\n default:\r\n return <ComponentL textStyle={ComponentTextStyle.Bold}>{title}</ComponentL>;\r\n }\r\n } else {\r\n return title;\r\n }\r\n };\r\n\r\n const ModalTootip = (tooltip: string) => {\r\n return (\r\n <ModalHoverModifier>\r\n <TooltipWrapper delay=\"0s\" size={Size.XSmall} align=\"center\" position=\"top\" withArrow={false} label={tooltip}>\r\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => {}}>\r\n <SystemIcons.Help size=\"24px\" color={COLORS.generateToken({componentType:'icon', defaultVariant:'subtle'}, theme)} />\r\n </IconButton>\r\n </TooltipWrapper>\r\n </ModalHoverModifier>\r\n );\r\n };\r\n\r\n const ModalCloseButton = (onClick: any) => {\r\n return (\r\n <CloseButtonWrapper $hasImage={!!topImage || !!topImageWithFallbacksProps} $size={size}>\r\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => onClick()} borderRadius={48}>\r\n <SystemIcons.Close size=\"24px\" color={COLORS.generateToken({componentType:'icon', defaultVariant:'subtle'}, theme)} />\r\n </IconButton>\r\n </CloseButtonWrapper>\r\n );\r\n };\r\n\r\n const ModalBackButton = () => {\r\n if (backButton) {\r\n return (\r\n <BackButtonWrapper $hasImage={!!topImage || !!topImageWithFallbacksProps} $size={size}>\r\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => backButton()} borderRadius={48}>\r\n <SystemIcons.ArrowLineLeft size=\"24px\" color={COLORS.generateToken({componentType:'icon', defaultVariant:'subtle'}, theme)} />\r\n </IconButton>\r\n </BackButtonWrapper>\r\n );\r\n }\r\n };\r\n\r\n const getLeftActionIconElement = (icon: React.ReactNode) => {\r\n return React.cloneElement(icon as React.ReactElement<any>, { size: size === Size.Small ? '20px' : size === Size.Large ? '28px' : '24px' });\r\n };\r\n\r\n const LeftFooterAction = (leftFooterAction: LeftFooterAction) => {\r\n const { text, actionType, disabled, icon, action } = leftFooterAction;\r\n switch (actionType) {\r\n case 'button':\r\n const button = leftFooterAction as LeftFooterButton;\r\n return (\r\n <TextButton\r\n id={'left-action-button'}\r\n type={button?.type}\r\n disabled={disabled}\r\n loading={button?.loading}\r\n icon={icon}\r\n size={size}\r\n onClick={action}\r\n variant={button?.variant ?? 'secondary'}\r\n style={{ order: -1, marginRight: 'auto' }}>\r\n {button?.children ?? button?.text}\r\n </TextButton>\r\n );\r\n case 'hyperlink':\r\n return (\r\n <HyperLink\r\n id=\"left-action-hyperlink\"\r\n className=\"footer-action\"\r\n href={(leftFooterAction as LeftFooterHyperlink).href}\r\n disabled={disabled}\r\n variant=\"default\"\r\n onClick={(e) => {\r\n if (action) {\r\n e.preventDefault();\r\n action(e);\r\n }\r\n }}>\r\n {text}\r\n {icon && getLeftActionIconElement(icon)}\r\n </HyperLink>\r\n );\r\n case 'note':\r\n return (\r\n <div className=\"footer-action note\">\r\n {icon && getLeftActionIconElement(icon)}\r\n <span>{text}</span>\r\n </div>\r\n );\r\n }\r\n };\r\n\r\n return (\r\n <ModalContainer\r\n className={className}\r\n id={id}\r\n showModal={isModalOpen}\r\n closeModal={closeAction}\r\n minWidth={getMinWidth()}\r\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\r\n maxWidth={getMaxWidth()}\r\n height=\"auto\"\r\n padding={getPadding()}\r\n zIndex={zIndex}\r\n width={width}>\r\n <Column>\r\n <form onSubmit={submitAction} style={{ display: 'flex', flexDirection: 'column', maxHeight: getMaxHeight() }}>\r\n {(topImage || topImageWithFallbacksProps) && (\r\n <StyledModalHeader $size={size} $height={getImageHeight()} $marginBottom={getMarginBottom()}>\r\n <ImageContainer $height={getImageHeight()}>\r\n {topImageGrayscale && <ImageOverlay $height={getImageHeight()} />}\r\n {topImage && <img src={topImage} alt=\"Modal top\" />}\r\n {!topImage && topImageWithFallbacksProps && (\r\n <ImageWithFallbacks\r\n loader={topImageWithFallbacksProps.loader}\r\n alt={topImageWithFallbacksProps.alt}\r\n fallbacks={topImageWithFallbacksProps.fallbacks}\r\n src={topImageWithFallbacksProps.src}\r\n />\r\n )}\r\n </ImageContainer>\r\n <ModalHeaderActionsWithImage $hasBackButton={!!backButton}>\r\n {ModalBackButton()}\r\n {!hideCloseButton && ModalCloseButton(closeAction)}\r\n </ModalHeaderActionsWithImage>\r\n </StyledModalHeader>\r\n )}\r\n <ModalTitleSection>\r\n <FlexContainer>\r\n {!(topImage || topImageWithFallbacksProps) && ModalBackButton()}\r\n {title && ModalTitle(title, size)}\r\n </FlexContainer>\r\n {(tooltip || !(topImage || topImageWithFallbacksProps)) && (\r\n <ModalHeaderActions>\r\n {tooltip && ModalTootip(tooltip)}\r\n {!(topImage || topImageWithFallbacksProps || hideCloseButton) && ModalCloseButton(closeAction)}\r\n </ModalHeaderActions>\r\n )}\r\n </ModalTitleSection>\r\n\r\n <ModalBody $size={size} $overflow={contentOverflow} $hasContentBorders={hasContentBorders}>\r\n {children}\r\n </ModalBody>\r\n\r\n {note && <ModalNote note={note} state={state} size={size} icon={icon} />}\r\n\r\n <ModalFooter $size={size}>\r\n {leftFooterAction && LeftFooterAction(leftFooterAction)}\r\n {buttons?.map((b, i) => (\r\n <TextButton key={b.id || i} icon={b.icon} id={b.id} disabled={b.disabled} loading={b.loading} size={size} onClick={b.action} type={b.type} variant={b.variant}>\r\n {b.children ?? b.text}\r\n </TextButton>\r\n ))}\r\n </ModalFooter>\r\n </form>\r\n </Column>\r\n </ModalContainer>\r\n );\r\n};\r\n\r\nexport default ModalDialog;\r\n"],"mappings":"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","ignoreList":[]}
@@ -25,6 +25,8 @@ export interface ModalDialogProps {
25
25
  tooltip?: string;
26
26
  /** */
27
27
  backButton?: () => void;
28
+ className?: string;
29
+ id?: string;
28
30
  closeAction: () => void;
29
31
  hideCloseButton?: boolean;
30
32
  submitAction: (event?: React.FormEvent<HTMLFormElement> | undefined) => void;
@@ -34,7 +34,9 @@ export const ModalDialog = _ref => {
34
34
  contentOverflow,
35
35
  hideCloseButton,
36
36
  width,
37
- hasContentBorders
37
+ hasContentBorders,
38
+ className,
39
+ id
38
40
  } = _ref;
39
41
  const theme = useTheme();
40
42
  const getMinWidth = () => {
@@ -255,6 +257,8 @@ export const ModalDialog = _ref => {
255
257
  }
256
258
  };
257
259
  return /*#__PURE__*/_jsx(ModalContainer, {
260
+ className: className,
261
+ id: id,
258
262
  showModal: isModalOpen,
259
263
  closeModal: closeAction,
260
264
  minWidth: getMinWidth(),
@@ -336,6 +340,8 @@ ModalDialog.propTypes = {
336
340
  buttons: _pt.array,
337
341
  tooltip: _pt.string,
338
342
  backButton: _pt.func,
343
+ className: _pt.string,
344
+ id: _pt.string,
339
345
  closeAction: _pt.func.isRequired,
340
346
  hideCloseButton: _pt.bool,
341
347
  submitAction: _pt.func.isRequired,
@@ -1 +1 @@
1
- {"version":3,"file":"ModalDialog.js","names":["React","TextButton","IconButton","SystemIcons","COLORS","ComponentL","ComponentM","ComponentTextStyle","ComponentXL","Size","ModalContainer","BackButtonWrapper","CloseButtonWrapper","Column","FlexContainer","ModalBody","ModalFooter","ModalHeaderActions","ModalHeaderActionsWithImage","ModalTitleSection","StyledModalHeader","ModalHoverModifier","ImageOverlay","ImageContainer","ModalNote","TooltipWrapper","HyperLink","ImageWithFallbacks","useTheme","jsx","_jsx","jsxs","_jsxs","ModalDialog","_ref","size","isModalOpen","title","topImage","topImageWithFallbacksProps","topImageGrayscale","buttons","leftFooterAction","backButton","closeAction","submitAction","tooltip","children","note","shouldCloseOnOverlayClick","state","icon","zIndex","contentOverflow","hideCloseButton","width","hasContentBorders","theme","getMinWidth","Small","Large","Medium","getMaxWidth","getImageHeight","getMarginBottom","getPadding","getMaxHeight","ModalTitle","textStyle","Bold","ModalTootip","delay","XSmall","align","position","withArrow","label","variant","shape","action","Help","color","generateToken","componentType","defaultVariant","ModalCloseButton","onClick","$hasImage","$size","borderRadius","Close","ModalBackButton","ArrowLineLeft","getLeftActionIconElement","cloneElement","LeftFooterAction","text","actionType","disabled","button","id","type","loading","style","order","marginRight","className","href","e","preventDefault","showModal","closeModal","minWidth","maxWidth","height","padding","onSubmit","display","flexDirection","maxHeight","$height","$marginBottom","src","alt","loader","fallbacks","$hasBackButton","$overflow","$hasContentBorders","map","b","i","propTypes","_pt","bool","isRequired","node","oneOfType","string","any","array","func","number"],"sources":["../../src/Modals/ModalDialog.tsx"],"sourcesContent":["import React from 'react';\r\nimport { TextButton, IconButton } from '../Button';\r\nimport { SystemIcons } from '../icons';\r\nimport { COLORS, ComponentL, ComponentM, ComponentTextStyle, ComponentXL } from '../styles';\r\nimport { Size } from '../types';\r\nimport ModalContainer from './ModalContainer';\r\nimport {\r\n BackButtonWrapper,\r\n CloseButtonWrapper,\r\n Column,\r\n FlexContainer,\r\n ModalBody,\r\n ModalFooter,\r\n ModalHeaderActions,\r\n ModalHeaderActionsWithImage,\r\n ModalTitleSection,\r\n StyledModalHeader,\r\n ModalHoverModifier,\r\n ImageOverlay,\r\n ImageContainer,\r\n} from './ModalStyles';\r\n\r\nimport { ModalNote } from './ModalNote';\r\nimport { TooltipWrapper } from '../Tooltips';\r\nimport { ButtonAction, LeftFooterAction, LeftFooterButton, LeftFooterHyperlink } from './ModalTypes';\r\nimport { HyperLink, ImageWithFallbacks } from '..';\r\nimport { ImageWithFallbacksProps } from '../Image/ImageWithFallbacks';\r\nimport { useTheme } from 'styled-components';\r\n\r\nexport interface ModalDialogProps {\r\n /** Optional. Size of the modal. Defaults to 'medium' */\r\n size?: Size.Small | Size.Medium | Size.Large;\r\n /** Required. Current state of the modal. */\r\n isModalOpen: boolean;\r\n /** Optional. Content of the ModalDialog. */\r\n children?: React.ReactNode;\r\n /** Optional. Title of the ModalDialog. */\r\n title?: string | React.ReactNode;\r\n /** Optional. Content of the image to be shown in the header of the modal. */\r\n topImage?: any;\r\n /** Optional. Serves same purpose as 'topImage' except adds support for fallback options. Has higher priority than 'topImage'. */\r\n topImageWithFallbacksProps?: ImageWithFallbacksProps;\r\n /** Optional. If flag is set then overlay is added that converts image to grey color. */\r\n topImageGrayscale?: boolean;\r\n /** Optional. Collection of Buttons that will be shown in the footer on the right side of the ModalDialog. */\r\n buttons?: ButtonAction[];\r\n /** Optional. Left footer action that will be shown on the left side of the footer of ModalDialog. Can be a hyperlink, button or a note. */\r\n leftFooterAction?: LeftFooterAction;\r\n /** Optional. Tooltip that will be shown */\r\n tooltip?: string;\r\n /** */\r\n backButton?: () => void;\r\n closeAction: () => void;\r\n hideCloseButton?: boolean;\r\n submitAction: (event?: React.FormEvent<HTMLFormElement> | undefined) => void;\r\n note?: string | React.ReactNode;\r\n state?: string;\r\n icon?: React.ReactNode;\r\n zIndex?: number;\r\n contentOverflow?: string;\r\n width?: string;\r\n hasContentBorders?: boolean;\r\n shouldCloseOnOverlayClick?: boolean;\r\n}\r\n\r\nexport const ModalDialog: React.FunctionComponent<ModalDialogProps> = ({\r\n size,\r\n isModalOpen,\r\n title,\r\n topImage,\r\n topImageWithFallbacksProps,\r\n topImageGrayscale,\r\n buttons,\r\n leftFooterAction,\r\n backButton,\r\n closeAction,\r\n submitAction,\r\n tooltip,\r\n children,\r\n note,\r\n shouldCloseOnOverlayClick,\r\n state,\r\n icon,\r\n zIndex,\r\n contentOverflow,\r\n hideCloseButton,\r\n width,\r\n hasContentBorders,\r\n}) => {\r\n\r\n const theme = useTheme();\r\n const getMinWidth = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return '320px';\r\n case Size.Large:\r\n return '640px';\r\n case Size.Medium:\r\n default:\r\n return '480px';\r\n }\r\n };\r\n\r\n const getMaxWidth = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return '480px';\r\n case Size.Large:\r\n return '720px';\r\n case Size.Medium:\r\n default:\r\n return '640px';\r\n }\r\n };\r\n\r\n const getImageHeight = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return 160;\r\n case Size.Medium:\r\n return 200;\r\n case Size.Large:\r\n return 240;\r\n default:\r\n return 200;\r\n }\r\n };\r\n\r\n const getMarginBottom = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return '16px';\r\n case Size.Medium:\r\n return '24px';\r\n case Size.Large:\r\n return '32px';\r\n default:\r\n return '24px';\r\n }\r\n };\r\n\r\n const getPadding = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return '16px 16px 8px';\r\n case Size.Medium:\r\n return '24px 24px 20px';\r\n case Size.Large:\r\n return '32px';\r\n default:\r\n return '24px 24px 16px';\r\n }\r\n };\r\n\r\n const getMaxHeight = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return 'calc(100vh - 56px)';\r\n case Size.Medium:\r\n return 'calc(100vh - 76px)';\r\n case Size.Large:\r\n return 'calc(100vh - 96px)';\r\n default:\r\n return 'calc(100vh - 72px)';\r\n }\r\n };\r\n\r\n const ModalTitle = (title: string | React.ReactNode, size?: Size) => {\r\n if (typeof title === 'string') {\r\n switch (size) {\r\n case Size.Small:\r\n return <ComponentM textStyle={ComponentTextStyle.Bold}>{title}</ComponentM>;\r\n case Size.Medium:\r\n return <ComponentL textStyle={ComponentTextStyle.Bold}>{title}</ComponentL>;\r\n case Size.Large:\r\n return <ComponentXL textStyle={ComponentTextStyle.Bold}>{title}</ComponentXL>;\r\n default:\r\n return <ComponentL textStyle={ComponentTextStyle.Bold}>{title}</ComponentL>;\r\n }\r\n } else {\r\n return title;\r\n }\r\n };\r\n\r\n const ModalTootip = (tooltip: string) => {\r\n return (\r\n <ModalHoverModifier>\r\n <TooltipWrapper delay=\"0s\" size={Size.XSmall} align=\"center\" position=\"top\" withArrow={false} label={tooltip}>\r\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => {}}>\r\n <SystemIcons.Help size=\"24px\" color={COLORS.generateToken({componentType:'icon', defaultVariant:'subtle'}, theme)} />\r\n </IconButton>\r\n </TooltipWrapper>\r\n </ModalHoverModifier>\r\n );\r\n };\r\n\r\n const ModalCloseButton = (onClick: any) => {\r\n return (\r\n <CloseButtonWrapper $hasImage={!!topImage || !!topImageWithFallbacksProps} $size={size}>\r\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => onClick()} borderRadius={48}>\r\n <SystemIcons.Close size=\"24px\" color={COLORS.generateToken({componentType:'icon', defaultVariant:'subtle'}, theme)} />\r\n </IconButton>\r\n </CloseButtonWrapper>\r\n );\r\n };\r\n\r\n const ModalBackButton = () => {\r\n if (backButton) {\r\n return (\r\n <BackButtonWrapper $hasImage={!!topImage || !!topImageWithFallbacksProps} $size={size}>\r\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => backButton()} borderRadius={48}>\r\n <SystemIcons.ArrowLineLeft size=\"24px\" color={COLORS.generateToken({componentType:'icon', defaultVariant:'subtle'}, theme)} />\r\n </IconButton>\r\n </BackButtonWrapper>\r\n );\r\n }\r\n };\r\n\r\n const getLeftActionIconElement = (icon: React.ReactNode) => {\r\n return React.cloneElement(icon as React.ReactElement<any>, { size: size === Size.Small ? '20px' : size === Size.Large ? '28px' : '24px' });\r\n };\r\n\r\n const LeftFooterAction = (leftFooterAction: LeftFooterAction) => {\r\n const { text, actionType, disabled, icon, action } = leftFooterAction;\r\n switch (actionType) {\r\n case 'button':\r\n const button = leftFooterAction as LeftFooterButton;\r\n return (\r\n <TextButton\r\n id={'left-action-button'}\r\n type={button?.type}\r\n disabled={disabled}\r\n loading={button?.loading}\r\n icon={icon}\r\n size={size}\r\n onClick={action}\r\n variant={button?.variant ?? 'secondary'}\r\n style={{ order: -1, marginRight: 'auto' }}>\r\n {button?.children ?? button?.text}\r\n </TextButton>\r\n );\r\n case 'hyperlink':\r\n return (\r\n <HyperLink\r\n id=\"left-action-hyperlink\"\r\n className=\"footer-action\"\r\n href={(leftFooterAction as LeftFooterHyperlink).href}\r\n disabled={disabled}\r\n variant=\"default\"\r\n onClick={(e) => {\r\n if (action) {\r\n e.preventDefault();\r\n action(e);\r\n }\r\n }}>\r\n {text}\r\n {icon && getLeftActionIconElement(icon)}\r\n </HyperLink>\r\n );\r\n case 'note':\r\n return (\r\n <div className=\"footer-action note\">\r\n {icon && getLeftActionIconElement(icon)}\r\n <span>{text}</span>\r\n </div>\r\n );\r\n }\r\n };\r\n\r\n return (\r\n <ModalContainer\r\n showModal={isModalOpen}\r\n closeModal={closeAction}\r\n minWidth={getMinWidth()}\r\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\r\n maxWidth={getMaxWidth()}\r\n height=\"auto\"\r\n padding={getPadding()}\r\n zIndex={zIndex}\r\n width={width}>\r\n <Column>\r\n <form onSubmit={submitAction} style={{ display: 'flex', flexDirection: 'column', maxHeight: getMaxHeight() }}>\r\n {(topImage || topImageWithFallbacksProps) && (\r\n <StyledModalHeader $size={size} $height={getImageHeight()} $marginBottom={getMarginBottom()}>\r\n <ImageContainer $height={getImageHeight()}>\r\n {topImageGrayscale && <ImageOverlay $height={getImageHeight()} />}\r\n {topImage && <img src={topImage} alt=\"Modal top\" />}\r\n {!topImage && topImageWithFallbacksProps && (\r\n <ImageWithFallbacks\r\n loader={topImageWithFallbacksProps.loader}\r\n alt={topImageWithFallbacksProps.alt}\r\n fallbacks={topImageWithFallbacksProps.fallbacks}\r\n src={topImageWithFallbacksProps.src}\r\n />\r\n )}\r\n </ImageContainer>\r\n <ModalHeaderActionsWithImage $hasBackButton={!!backButton}>\r\n {ModalBackButton()}\r\n {!hideCloseButton && ModalCloseButton(closeAction)}\r\n </ModalHeaderActionsWithImage>\r\n </StyledModalHeader>\r\n )}\r\n <ModalTitleSection>\r\n <FlexContainer>\r\n {!(topImage || topImageWithFallbacksProps) && ModalBackButton()}\r\n {title && ModalTitle(title, size)}\r\n </FlexContainer>\r\n {(tooltip || !(topImage || topImageWithFallbacksProps)) && (\r\n <ModalHeaderActions>\r\n {tooltip && ModalTootip(tooltip)}\r\n {!(topImage || topImageWithFallbacksProps || hideCloseButton) && ModalCloseButton(closeAction)}\r\n </ModalHeaderActions>\r\n )}\r\n </ModalTitleSection>\r\n\r\n <ModalBody $size={size} $overflow={contentOverflow} $hasContentBorders={hasContentBorders}>\r\n {children}\r\n </ModalBody>\r\n\r\n {note && <ModalNote note={note} state={state} size={size} icon={icon} />}\r\n\r\n <ModalFooter $size={size}>\r\n {leftFooterAction && LeftFooterAction(leftFooterAction)}\r\n {buttons?.map((b, i) => (\r\n <TextButton key={b.id || i} icon={b.icon} id={b.id} disabled={b.disabled} loading={b.loading} size={size} onClick={b.action} type={b.type} variant={b.variant}>\r\n {b.children ?? b.text}\r\n </TextButton>\r\n ))}\r\n </ModalFooter>\r\n </form>\r\n </Column>\r\n </ModalContainer>\r\n );\r\n};\r\n\r\nexport default ModalDialog;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ModalDialog.js","names":["React","TextButton","IconButton","SystemIcons","COLORS","ComponentL","ComponentM","ComponentTextStyle","ComponentXL","Size","ModalContainer","BackButtonWrapper","CloseButtonWrapper","Column","FlexContainer","ModalBody","ModalFooter","ModalHeaderActions","ModalHeaderActionsWithImage","ModalTitleSection","StyledModalHeader","ModalHoverModifier","ImageOverlay","ImageContainer","ModalNote","TooltipWrapper","HyperLink","ImageWithFallbacks","useTheme","jsx","_jsx","jsxs","_jsxs","ModalDialog","_ref","size","isModalOpen","title","topImage","topImageWithFallbacksProps","topImageGrayscale","buttons","leftFooterAction","backButton","closeAction","submitAction","tooltip","children","note","shouldCloseOnOverlayClick","state","icon","zIndex","contentOverflow","hideCloseButton","width","hasContentBorders","className","id","theme","getMinWidth","Small","Large","Medium","getMaxWidth","getImageHeight","getMarginBottom","getPadding","getMaxHeight","ModalTitle","textStyle","Bold","ModalTootip","delay","XSmall","align","position","withArrow","label","variant","shape","action","Help","color","generateToken","componentType","defaultVariant","ModalCloseButton","onClick","$hasImage","$size","borderRadius","Close","ModalBackButton","ArrowLineLeft","getLeftActionIconElement","cloneElement","LeftFooterAction","text","actionType","disabled","button","type","loading","style","order","marginRight","href","e","preventDefault","showModal","closeModal","minWidth","maxWidth","height","padding","onSubmit","display","flexDirection","maxHeight","$height","$marginBottom","src","alt","loader","fallbacks","$hasBackButton","$overflow","$hasContentBorders","map","b","i","propTypes","_pt","bool","isRequired","node","oneOfType","string","any","array","func","number"],"sources":["../../src/Modals/ModalDialog.tsx"],"sourcesContent":["import React from 'react';\r\nimport { TextButton, IconButton } from '../Button';\r\nimport { SystemIcons } from '../icons';\r\nimport { COLORS, ComponentL, ComponentM, ComponentTextStyle, ComponentXL } from '../styles';\r\nimport { Size } from '../types';\r\nimport ModalContainer from './ModalContainer';\r\nimport {\r\n BackButtonWrapper,\r\n CloseButtonWrapper,\r\n Column,\r\n FlexContainer,\r\n ModalBody,\r\n ModalFooter,\r\n ModalHeaderActions,\r\n ModalHeaderActionsWithImage,\r\n ModalTitleSection,\r\n StyledModalHeader,\r\n ModalHoverModifier,\r\n ImageOverlay,\r\n ImageContainer,\r\n} from './ModalStyles';\r\n\r\nimport { ModalNote } from './ModalNote';\r\nimport { TooltipWrapper } from '../Tooltips';\r\nimport { ButtonAction, LeftFooterAction, LeftFooterButton, LeftFooterHyperlink } from './ModalTypes';\r\nimport { HyperLink, ImageWithFallbacks } from '..';\r\nimport { ImageWithFallbacksProps } from '../Image/ImageWithFallbacks';\r\nimport { useTheme } from 'styled-components';\r\n\r\nexport interface ModalDialogProps {\r\n /** Optional. Size of the modal. Defaults to 'medium' */\r\n size?: Size.Small | Size.Medium | Size.Large;\r\n /** Required. Current state of the modal. */\r\n isModalOpen: boolean;\r\n /** Optional. Content of the ModalDialog. */\r\n children?: React.ReactNode;\r\n /** Optional. Title of the ModalDialog. */\r\n title?: string | React.ReactNode;\r\n /** Optional. Content of the image to be shown in the header of the modal. */\r\n topImage?: any;\r\n /** Optional. Serves same purpose as 'topImage' except adds support for fallback options. Has higher priority than 'topImage'. */\r\n topImageWithFallbacksProps?: ImageWithFallbacksProps;\r\n /** Optional. If flag is set then overlay is added that converts image to grey color. */\r\n topImageGrayscale?: boolean;\r\n /** Optional. Collection of Buttons that will be shown in the footer on the right side of the ModalDialog. */\r\n buttons?: ButtonAction[];\r\n /** Optional. Left footer action that will be shown on the left side of the footer of ModalDialog. Can be a hyperlink, button or a note. */\r\n leftFooterAction?: LeftFooterAction;\r\n /** Optional. Tooltip that will be shown */\r\n tooltip?: string;\r\n /** */\r\n backButton?: () => void;\r\n className?: string;\r\n id?: string;\r\n closeAction: () => void;\r\n hideCloseButton?: boolean;\r\n submitAction: (event?: React.FormEvent<HTMLFormElement> | undefined) => void;\r\n note?: string | React.ReactNode;\r\n state?: string;\r\n icon?: React.ReactNode;\r\n zIndex?: number;\r\n contentOverflow?: string;\r\n width?: string;\r\n hasContentBorders?: boolean;\r\n shouldCloseOnOverlayClick?: boolean;\r\n}\r\n\r\nexport const ModalDialog: React.FunctionComponent<ModalDialogProps> = ({\r\n size,\r\n isModalOpen,\r\n title,\r\n topImage,\r\n topImageWithFallbacksProps,\r\n topImageGrayscale,\r\n buttons,\r\n leftFooterAction,\r\n backButton,\r\n closeAction,\r\n submitAction,\r\n tooltip,\r\n children,\r\n note,\r\n shouldCloseOnOverlayClick,\r\n state,\r\n icon,\r\n zIndex,\r\n contentOverflow,\r\n hideCloseButton,\r\n width,\r\n hasContentBorders,\r\n className,\r\n id,\r\n}) => {\r\n\r\n const theme = useTheme();\r\n const getMinWidth = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return '320px';\r\n case Size.Large:\r\n return '640px';\r\n case Size.Medium:\r\n default:\r\n return '480px';\r\n }\r\n };\r\n\r\n const getMaxWidth = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return '480px';\r\n case Size.Large:\r\n return '720px';\r\n case Size.Medium:\r\n default:\r\n return '640px';\r\n }\r\n };\r\n\r\n const getImageHeight = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return 160;\r\n case Size.Medium:\r\n return 200;\r\n case Size.Large:\r\n return 240;\r\n default:\r\n return 200;\r\n }\r\n };\r\n\r\n const getMarginBottom = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return '16px';\r\n case Size.Medium:\r\n return '24px';\r\n case Size.Large:\r\n return '32px';\r\n default:\r\n return '24px';\r\n }\r\n };\r\n\r\n const getPadding = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return '16px 16px 8px';\r\n case Size.Medium:\r\n return '24px 24px 20px';\r\n case Size.Large:\r\n return '32px';\r\n default:\r\n return '24px 24px 16px';\r\n }\r\n };\r\n\r\n const getMaxHeight = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return 'calc(100vh - 56px)';\r\n case Size.Medium:\r\n return 'calc(100vh - 76px)';\r\n case Size.Large:\r\n return 'calc(100vh - 96px)';\r\n default:\r\n return 'calc(100vh - 72px)';\r\n }\r\n };\r\n\r\n const ModalTitle = (title: string | React.ReactNode, size?: Size) => {\r\n if (typeof title === 'string') {\r\n switch (size) {\r\n case Size.Small:\r\n return <ComponentM textStyle={ComponentTextStyle.Bold}>{title}</ComponentM>;\r\n case Size.Medium:\r\n return <ComponentL textStyle={ComponentTextStyle.Bold}>{title}</ComponentL>;\r\n case Size.Large:\r\n return <ComponentXL textStyle={ComponentTextStyle.Bold}>{title}</ComponentXL>;\r\n default:\r\n return <ComponentL textStyle={ComponentTextStyle.Bold}>{title}</ComponentL>;\r\n }\r\n } else {\r\n return title;\r\n }\r\n };\r\n\r\n const ModalTootip = (tooltip: string) => {\r\n return (\r\n <ModalHoverModifier>\r\n <TooltipWrapper delay=\"0s\" size={Size.XSmall} align=\"center\" position=\"top\" withArrow={false} label={tooltip}>\r\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => {}}>\r\n <SystemIcons.Help size=\"24px\" color={COLORS.generateToken({componentType:'icon', defaultVariant:'subtle'}, theme)} />\r\n </IconButton>\r\n </TooltipWrapper>\r\n </ModalHoverModifier>\r\n );\r\n };\r\n\r\n const ModalCloseButton = (onClick: any) => {\r\n return (\r\n <CloseButtonWrapper $hasImage={!!topImage || !!topImageWithFallbacksProps} $size={size}>\r\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => onClick()} borderRadius={48}>\r\n <SystemIcons.Close size=\"24px\" color={COLORS.generateToken({componentType:'icon', defaultVariant:'subtle'}, theme)} />\r\n </IconButton>\r\n </CloseButtonWrapper>\r\n );\r\n };\r\n\r\n const ModalBackButton = () => {\r\n if (backButton) {\r\n return (\r\n <BackButtonWrapper $hasImage={!!topImage || !!topImageWithFallbacksProps} $size={size}>\r\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => backButton()} borderRadius={48}>\r\n <SystemIcons.ArrowLineLeft size=\"24px\" color={COLORS.generateToken({componentType:'icon', defaultVariant:'subtle'}, theme)} />\r\n </IconButton>\r\n </BackButtonWrapper>\r\n );\r\n }\r\n };\r\n\r\n const getLeftActionIconElement = (icon: React.ReactNode) => {\r\n return React.cloneElement(icon as React.ReactElement<any>, { size: size === Size.Small ? '20px' : size === Size.Large ? '28px' : '24px' });\r\n };\r\n\r\n const LeftFooterAction = (leftFooterAction: LeftFooterAction) => {\r\n const { text, actionType, disabled, icon, action } = leftFooterAction;\r\n switch (actionType) {\r\n case 'button':\r\n const button = leftFooterAction as LeftFooterButton;\r\n return (\r\n <TextButton\r\n id={'left-action-button'}\r\n type={button?.type}\r\n disabled={disabled}\r\n loading={button?.loading}\r\n icon={icon}\r\n size={size}\r\n onClick={action}\r\n variant={button?.variant ?? 'secondary'}\r\n style={{ order: -1, marginRight: 'auto' }}>\r\n {button?.children ?? button?.text}\r\n </TextButton>\r\n );\r\n case 'hyperlink':\r\n return (\r\n <HyperLink\r\n id=\"left-action-hyperlink\"\r\n className=\"footer-action\"\r\n href={(leftFooterAction as LeftFooterHyperlink).href}\r\n disabled={disabled}\r\n variant=\"default\"\r\n onClick={(e) => {\r\n if (action) {\r\n e.preventDefault();\r\n action(e);\r\n }\r\n }}>\r\n {text}\r\n {icon && getLeftActionIconElement(icon)}\r\n </HyperLink>\r\n );\r\n case 'note':\r\n return (\r\n <div className=\"footer-action note\">\r\n {icon && getLeftActionIconElement(icon)}\r\n <span>{text}</span>\r\n </div>\r\n );\r\n }\r\n };\r\n\r\n return (\r\n <ModalContainer\r\n className={className}\r\n id={id}\r\n showModal={isModalOpen}\r\n closeModal={closeAction}\r\n minWidth={getMinWidth()}\r\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\r\n maxWidth={getMaxWidth()}\r\n height=\"auto\"\r\n padding={getPadding()}\r\n zIndex={zIndex}\r\n width={width}>\r\n <Column>\r\n <form onSubmit={submitAction} style={{ display: 'flex', flexDirection: 'column', maxHeight: getMaxHeight() }}>\r\n {(topImage || topImageWithFallbacksProps) && (\r\n <StyledModalHeader $size={size} $height={getImageHeight()} $marginBottom={getMarginBottom()}>\r\n <ImageContainer $height={getImageHeight()}>\r\n {topImageGrayscale && <ImageOverlay $height={getImageHeight()} />}\r\n {topImage && <img src={topImage} alt=\"Modal top\" />}\r\n {!topImage && topImageWithFallbacksProps && (\r\n <ImageWithFallbacks\r\n loader={topImageWithFallbacksProps.loader}\r\n alt={topImageWithFallbacksProps.alt}\r\n fallbacks={topImageWithFallbacksProps.fallbacks}\r\n src={topImageWithFallbacksProps.src}\r\n />\r\n )}\r\n </ImageContainer>\r\n <ModalHeaderActionsWithImage $hasBackButton={!!backButton}>\r\n {ModalBackButton()}\r\n {!hideCloseButton && ModalCloseButton(closeAction)}\r\n </ModalHeaderActionsWithImage>\r\n </StyledModalHeader>\r\n )}\r\n <ModalTitleSection>\r\n <FlexContainer>\r\n {!(topImage || topImageWithFallbacksProps) && ModalBackButton()}\r\n {title && ModalTitle(title, size)}\r\n </FlexContainer>\r\n {(tooltip || !(topImage || topImageWithFallbacksProps)) && (\r\n <ModalHeaderActions>\r\n {tooltip && ModalTootip(tooltip)}\r\n {!(topImage || topImageWithFallbacksProps || hideCloseButton) && ModalCloseButton(closeAction)}\r\n </ModalHeaderActions>\r\n )}\r\n </ModalTitleSection>\r\n\r\n <ModalBody $size={size} $overflow={contentOverflow} $hasContentBorders={hasContentBorders}>\r\n {children}\r\n </ModalBody>\r\n\r\n {note && <ModalNote note={note} state={state} size={size} icon={icon} />}\r\n\r\n <ModalFooter $size={size}>\r\n {leftFooterAction && LeftFooterAction(leftFooterAction)}\r\n {buttons?.map((b, i) => (\r\n <TextButton key={b.id || i} icon={b.icon} id={b.id} disabled={b.disabled} loading={b.loading} size={size} onClick={b.action} type={b.type} variant={b.variant}>\r\n {b.children ?? b.text}\r\n </TextButton>\r\n ))}\r\n </ModalFooter>\r\n </form>\r\n </Column>\r\n </ModalContainer>\r\n );\r\n};\r\n\r\nexport default ModalDialog;\r\n"],"mappings":"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","ignoreList":[]}
@@ -290,21 +290,15 @@ const Table = props => {
290
290
  const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);
291
291
  switch (selectAllState) {
292
292
  case 'all':
293
- const all = [...selected].filter(item => !currentList.includes(item));
294
- setSelected(all);
295
- props.onSelectionChange && props.onSelectionChange(all);
293
+ setSelected([...selected].filter(item => !currentList.includes(item)));
296
294
  setSelectAllState('none');
297
295
  break;
298
296
  case 'none':
299
- const none = [...selected, ...currentList];
300
- setSelected(none);
301
- props.onSelectionChange && props.onSelectionChange(none);
297
+ setSelected([...selected, ...currentList]);
302
298
  setSelectAllState('all');
303
299
  break;
304
300
  case 'some':
305
- const some = [...selected, ...currentList.filter(item => !selected.includes(item))];
306
- setSelected(some);
307
- props.onSelectionChange && props.onSelectionChange(some);
301
+ setSelected([...selected, ...currentList.filter(item => !selected.includes(item))]);
308
302
  setSelectAllState('all');
309
303
  break;
310
304
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Table.cjs","names":["React","_interopRequireWildcard","require","_types","_TableStyles","_LoadingIndicator","_TableHeaders","_interopRequireDefault","_TableFooter","_TableBody","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","Table","props","onPreviousPageClick","onNextPageClick","onRowsPerPageChange","onTriggerSortingChange","columns","rows","remoteOperations","pagination","showLoadingIndicator","selectable","multiSelect","keyExpr","sortProps","accordion","collapsed","collapsedRows","rowsPerPageLabel","loaderZIndex","rowsPerPage","setRowsPerPage","useState","filteredRows","setFilteredRows","currentPageRows","setCurrentPageRows","currentPage","setCurrentPage","sort","setSort","from","setFrom","to","setTo","total","setTotal","isCollapsed","setIsCollapsed","selectAllState","setSelectAllState","selected","setSelected","undefined","useEffect","column","direction","allowClearingSort","selectedRows","currentList","map","row","count","item","includes","filterAndSortRows","tmpFilteredRows","matchFilterCriteria","filterValue","key","toLowerCase","indexOf","b","rowsFrom","rowsTo","slice","sortTableColumn","columnKey","sortDirection","previousPage","nextPage","changeRowsPerPage","value","onRowClick","selectedText","window","getSelection","toString","currentSelection","existing","splice","onSelectionChange","onSelectAllClick","all","none","some","jsxs","TableWrapper","className","border","children","jsx","sortByColumn","prevPage","StyledTableSpinner","$zindex","LoadingIndicator","size","Size","Medium","_default","exports"],"sources":["../../src/Table/Table.tsx"],"sourcesContent":["/**\r\n * Import React libraries.\r\n */\r\nimport * as React from 'react';\r\n\r\n/**\r\n * Import custom components.\r\n */\r\nimport {Size} from '../types'\r\n\r\n/**\r\n * Import custom styles.\r\n */\r\nimport {StyledTable, StyledTableSpinner, TableWrapper} from './TableStyles';\r\n\r\n/**\r\n * Import custom types.\r\n */\r\nimport {TableProps, TableColumn, TableSortingDirection, TableSortProps} from './TableTypes';\r\nimport {LoadingIndicator} from '../LoadingIndicator';\r\nimport TableHeader from './TableHeaders';\r\nimport TableFooter from './TableFooter';\r\nimport TableBody from './TableBody';\r\n\r\nconst Table: React.FunctionComponent<TableProps> = (props: TableProps) => {\r\n let {\r\n onPreviousPageClick,\r\n onNextPageClick,\r\n onRowsPerPageChange,\r\n onTriggerSortingChange,\r\n columns,\r\n rows,\r\n remoteOperations,\r\n pagination,\r\n showLoadingIndicator,\r\n selectable,\r\n multiSelect,\r\n keyExpr,\r\n sortProps,\r\n accordion,\r\n collapsed = true,\r\n\r\n collapsedRows,\r\n rowsPerPageLabel,\r\n loaderZIndex\r\n } = props;\r\n\r\n // States used within the component\r\n const [rowsPerPage, setRowsPerPage] = React.useState<number>(10);\r\n const [filteredRows, setFilteredRows] = React.useState<any[]>([]);\r\n const [currentPageRows, setCurrentPageRows] = React.useState<any[]>([]);\r\n const [currentPage, setCurrentPage] = React.useState<number>(1);\r\n const [sort, setSort] = React.useState<TableSortProps | undefined>();\r\n const [from, setFrom] = React.useState<number>();\r\n const [to, setTo] = React.useState<number>();\r\n const [total, setTotal] = React.useState<number>();\r\n\r\n const [isCollapsed, setIsCollapsed] = React.useState(true);\r\n\r\n const [selectAllState, setSelectAllState] = React.useState<'all' | 'some' | 'none'>('none');\r\n\r\n const [selected, setSelected] = React.useState<any | any[]>(multiSelect ? [] : undefined);\r\n\r\n React.useEffect(() => {\r\n setSort({\r\n column: sortProps?.column ?? '', \r\n direction: sortProps?.direction ?? 'asc', \r\n allowClearingSort: sortProps?.allowClearingSort === undefined ? true : sortProps.allowClearingSort\r\n });\r\n }, [sortProps])\r\n\r\n React.useEffect(() => {\r\n setSelected(props.selectedRows || (multiSelect ? [] : undefined))\r\n }, [props.selectedRows, multiSelect])\r\n\r\n /**\r\n * update select all checkbox state\r\n */\r\n React.useEffect(() => {\r\n if (multiSelect) {\r\n const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);\r\n const count = selected.filter((item: any) => currentList.includes(item)).length;\r\n\r\n setSelectAllState(count === currentList.length ? 'all' : count > 0 ? 'some' : 'none');\r\n }\r\n }, [currentPageRows, multiSelect, selected, keyExpr])\r\n\r\n /**\r\n * Takes care of remote pagination.\r\n * Works only in case remote pagination is set to true.\r\n */\r\n React.useEffect(() => {\r\n if (remoteOperations) {\r\n setCurrentPageRows(rows);\r\n\r\n // Let's assign pagination values\r\n setFrom(pagination?.from);\r\n setTo(pagination?.to);\r\n setTotal(pagination?.total);\r\n setCurrentPage(pagination?.currentPage!);\r\n setRowsPerPage(pagination?.rowsPerPage!);\r\n }\r\n }, [remoteOperations, pagination, rows]);\r\n\r\n /**\r\n * Sets number of rows to display when accordion.\r\n */\r\n React.useEffect(() => {\r\n if (!accordion) return;\r\n\r\n setRowsPerPage(isCollapsed ? collapsedRows || 10 : rows.length);\r\n }, [rows, accordion, collapsedRows, isCollapsed])\r\n\r\n React.useEffect(() => {\r\n if (!accordion) return;\r\n\r\n setIsCollapsed(!!collapsed);\r\n }, [accordion, collapsed])\r\n\r\n /**\r\n * Filters out a rows by specific column filters and sorts them if any sorting is set.\r\n * @returns Filtered and sorted rows.\r\n */\r\n const filterAndSortRows = (): any[] => {\r\n let tmpFilteredRows = rows.filter((row) => {\r\n // Let's start with matched filter criteria\r\n let matchFilterCriteria = true;\r\n\r\n // Let's go through columns\r\n for (const column of columns) {\r\n // Let's check if filter value is specified for the column\r\n // And if it doesn't match the current row column value\r\n // Then let's update match filter criteria to failed\r\n if (column.filterValue && row[column.key].toLowerCase().indexOf(column.filterValue.toLowerCase()) === -1) {\r\n matchFilterCriteria = false;\r\n }\r\n }\r\n\r\n // Let's return row only in case match filter criteria succeeds\r\n if (matchFilterCriteria) {\r\n return row;\r\n }\r\n });\r\n\r\n // Let's apply sorting if needed\r\n if (!!sort?.column && !!sort?.direction) {\r\n // Let's sort the rows\r\n tmpFilteredRows.sort((a, b) => {\r\n if (a[sort.column!] > b[sort.column!]) {\r\n return sort.direction! === 'asc' ? 1 : -1;\r\n } else if (a[sort.column!] < b[sort.column!]) {\r\n return sort.direction! === 'asc' ? -1 : 1;\r\n } else {\r\n return 0;\r\n }\r\n });\r\n }\r\n\r\n // Let's return filtered rows\r\n return tmpFilteredRows;\r\n };\r\n\r\n /**\r\n * Takes care of local pagination.\r\n * Works only in case remote pagination is not defined or is set to false.\r\n */\r\n React.useEffect(() => {\r\n if (!remoteOperations) {\r\n // Let's retrieve temporary filtered rows and update globally filtered rows\r\n const tmpFilteredRows = filterAndSortRows();\r\n setFilteredRows(tmpFilteredRows);\r\n setTotal(tmpFilteredRows.length);\r\n\r\n // Assign rows from and rows to\r\n const rowsFrom = (currentPage - 1) * rowsPerPage;\r\n const rowsTo = rowsFrom + rowsPerPage >= tmpFilteredRows.length ? tmpFilteredRows.length : rowsFrom + rowsPerPage;\r\n\r\n // Set from and to values\r\n setFrom(rowsFrom + 1);\r\n setTo(rowsTo);\r\n\r\n // Filter out the rows\r\n setCurrentPageRows(tmpFilteredRows.slice(rowsFrom, rowsTo));\r\n }\r\n }, [rowsPerPage, rows, currentPage, columns, sort, remoteOperations]);\r\n\r\n\r\n /**\r\n * Applies a specific sorting to a column.\r\n * If no sorting exists, then applies ascending initially\r\n * @param column - Column to which sorting should be applied.\r\n */\r\n const sortTableColumn = (column: TableColumn): void => {\r\n let columnKey = '';\r\n let sortDirection: TableSortingDirection | undefined = undefined;\r\n\r\n if (sort?.column !== column.key) {\r\n columnKey = column.key;\r\n sortDirection = 'asc';\r\n } else {\r\n if (sort?.direction === 'desc' && sort?.allowClearingSort) {\r\n columnKey = '';\r\n sortDirection = undefined;\r\n } else {\r\n columnKey = sort.column;\r\n sortDirection = sort.direction === 'asc' ? 'desc' : 'asc';\r\n }\r\n }\r\n\r\n if(columnKey == '')\r\n setSort({ column: '', direction: 'asc', allowClearingSort: sort?.allowClearingSort});\r\n else\r\n setSort({column: columnKey, direction: sortDirection!, allowClearingSort: sort?.allowClearingSort});\r\n\r\n remoteOperations && onTriggerSortingChange && onTriggerSortingChange(columnKey, sortDirection);\r\n };\r\n\r\n /**\r\n * Navigates user back to the previous page and updates the current table page.\r\n */\r\n const previousPage = () => {\r\n if (remoteOperations) {\r\n // Let's inform parent component about page change\r\n if (onPreviousPageClick) {\r\n onPreviousPageClick();\r\n }\r\n } else {\r\n // Let's change the page within the component\r\n setCurrentPage(currentPage > 1 ? currentPage - 1 : 1);\r\n }\r\n };\r\n\r\n /**\r\n * Navigates user to the next page and updates the current table page.\r\n */\r\n const nextPage = () => {\r\n if (remoteOperations) {\r\n // Let's inform parent component about page change\r\n if (onNextPageClick) {\r\n onNextPageClick();\r\n }\r\n } else {\r\n // Let's change the page within the component\r\n setCurrentPage(currentPage * rowsPerPage >= filteredRows.length ? currentPage : currentPage + 1);\r\n }\r\n };\r\n\r\n /**\r\n * Updates the rows per page value and refreshes the table content accordingly.\r\n * @param value - Newly selected rows per page value.\r\n */\r\n const changeRowsPerPage = (value: number) => {\r\n // Let's check if we are using remote pagination\r\n if (remoteOperations) {\r\n // Inform parent component about rows per page change\r\n if (onRowsPerPageChange) {\r\n onRowsPerPageChange(value);\r\n }\r\n } else {\r\n // Let's reset current page to 1\r\n setCurrentPage(1);\r\n }\r\n\r\n // Let's set rows per page\r\n setRowsPerPage(value);\r\n };\r\n\r\n\r\n /**\r\n * Function which is called when a mouse click happens on a row to pass data to the parent component.\r\n * @param row - Row in which the link is located.\r\n */\r\n const onRowClick = (row: any): void => {\r\n const selectedText = window?.getSelection()?.toString();\r\n\r\n if (selectedText?.length === 0 && selectable) {\r\n const value = keyExpr ? row[keyExpr] : row;\r\n let currentSelection = value;\r\n if (!!multiSelect) {\r\n const existing = selected?.indexOf(value);\r\n if (existing > -1) {\r\n currentSelection = [...selected];\r\n currentSelection.splice(existing, 1);\r\n } else {\r\n currentSelection = [...selected, currentSelection];\r\n }\r\n }\r\n\r\n setSelected(currentSelection)\r\n props.onSelectionChange && props.onSelectionChange(currentSelection);\r\n }\r\n };\r\n\r\n /**\r\n * Function which is called when user clicks checkbox to select or deselect all rows.\r\n */\r\n const onSelectAllClick = () => {\r\n const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);\r\n\r\n switch (selectAllState) {\r\n case 'all':\r\n const all = [...selected].filter(item => !currentList.includes(item));\r\n setSelected(all);\r\n props.onSelectionChange && props.onSelectionChange(all);\r\n setSelectAllState('none');\r\n break;\r\n case 'none':\r\n const none = [...selected, ...currentList]\r\n setSelected(none);\r\n props.onSelectionChange && props.onSelectionChange(none);\r\n setSelectAllState('all');\r\n break;\r\n case 'some':\r\n const some = [...selected, ...currentList.filter(item => !selected.includes(item))];\r\n setSelected(some);\r\n props.onSelectionChange && props.onSelectionChange(some);\r\n setSelectAllState('all');\r\n break;\r\n }\r\n };\r\n\r\n /**\r\n * Return Table component.\r\n */\r\n return (\r\n <TableWrapper className={props.border ? 'border' : undefined}>\r\n <TableHeader {...props}/>\r\n <TableBody {...props}\r\n currentPageRows={currentPageRows}\r\n selected={selected}\r\n onRowClick={onRowClick}\r\n sortByColumn={sortTableColumn}\r\n onSelectAllClick={onSelectAllClick}\r\n sortProps={sort}\r\n selectAllState={selectAllState}/>\r\n <TableFooter {...props}\r\n onRowsPerPageChange={changeRowsPerPage}\r\n rowsPerPage={rowsPerPage}\r\n setIsCollapsed={setIsCollapsed}\r\n isCollapsed={isCollapsed}\r\n from={from}\r\n to={to}\r\n total={total}\r\n nextPage={nextPage}\r\n prevPage={previousPage}/>\r\n {showLoadingIndicator && (\r\n <StyledTableSpinner $zindex={loaderZIndex}>\r\n <LoadingIndicator size={Size.Medium}/>\r\n </StyledTableSpinner>\r\n )}\r\n </TableWrapper>\r\n );\r\n};\r\n\r\nexport default Table;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Table.cjs","names":["React","_interopRequireWildcard","require","_types","_TableStyles","_LoadingIndicator","_TableHeaders","_interopRequireDefault","_TableFooter","_TableBody","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","Table","props","onPreviousPageClick","onNextPageClick","onRowsPerPageChange","onTriggerSortingChange","columns","rows","remoteOperations","pagination","showLoadingIndicator","selectable","multiSelect","keyExpr","sortProps","accordion","collapsed","collapsedRows","rowsPerPageLabel","loaderZIndex","rowsPerPage","setRowsPerPage","useState","filteredRows","setFilteredRows","currentPageRows","setCurrentPageRows","currentPage","setCurrentPage","sort","setSort","from","setFrom","to","setTo","total","setTotal","isCollapsed","setIsCollapsed","selectAllState","setSelectAllState","selected","setSelected","undefined","useEffect","column","direction","allowClearingSort","selectedRows","currentList","map","row","count","item","includes","filterAndSortRows","tmpFilteredRows","matchFilterCriteria","filterValue","key","toLowerCase","indexOf","b","rowsFrom","rowsTo","slice","sortTableColumn","columnKey","sortDirection","previousPage","nextPage","changeRowsPerPage","value","onRowClick","selectedText","window","getSelection","toString","currentSelection","existing","splice","onSelectionChange","onSelectAllClick","jsxs","TableWrapper","className","border","children","jsx","sortByColumn","prevPage","StyledTableSpinner","$zindex","LoadingIndicator","size","Size","Medium","_default","exports"],"sources":["../../src/Table/Table.tsx"],"sourcesContent":["/**\r\n * Import React libraries.\r\n */\r\nimport * as React from 'react';\r\n\r\n/**\r\n * Import custom components.\r\n */\r\nimport {Size} from '../types'\r\n\r\n/**\r\n * Import custom styles.\r\n */\r\nimport {StyledTable, StyledTableSpinner, TableWrapper} from './TableStyles';\r\n\r\n/**\r\n * Import custom types.\r\n */\r\nimport {TableProps, TableColumn, TableSortingDirection, TableSortProps} from './TableTypes';\r\nimport {LoadingIndicator} from '../LoadingIndicator';\r\nimport TableHeader from './TableHeaders';\r\nimport TableFooter from './TableFooter';\r\nimport TableBody from './TableBody';\r\n\r\nconst Table: React.FunctionComponent<TableProps> = (props: TableProps) => {\r\n let {\r\n onPreviousPageClick,\r\n onNextPageClick,\r\n onRowsPerPageChange,\r\n onTriggerSortingChange,\r\n columns,\r\n rows,\r\n remoteOperations,\r\n pagination,\r\n showLoadingIndicator,\r\n selectable,\r\n multiSelect,\r\n keyExpr,\r\n sortProps,\r\n accordion,\r\n collapsed = true,\r\n\r\n collapsedRows,\r\n rowsPerPageLabel,\r\n loaderZIndex\r\n } = props;\r\n\r\n // States used within the component\r\n const [rowsPerPage, setRowsPerPage] = React.useState<number>(10);\r\n const [filteredRows, setFilteredRows] = React.useState<any[]>([]);\r\n const [currentPageRows, setCurrentPageRows] = React.useState<any[]>([]);\r\n const [currentPage, setCurrentPage] = React.useState<number>(1);\r\n const [sort, setSort] = React.useState<TableSortProps | undefined>();\r\n const [from, setFrom] = React.useState<number>();\r\n const [to, setTo] = React.useState<number>();\r\n const [total, setTotal] = React.useState<number>();\r\n\r\n const [isCollapsed, setIsCollapsed] = React.useState(true);\r\n\r\n const [selectAllState, setSelectAllState] = React.useState<'all' | 'some' | 'none'>('none');\r\n\r\n const [selected, setSelected] = React.useState<any | any[]>(multiSelect ? [] : undefined);\r\n\r\n React.useEffect(() => {\r\n setSort({\r\n column: sortProps?.column ?? '', \r\n direction: sortProps?.direction ?? 'asc', \r\n allowClearingSort: sortProps?.allowClearingSort === undefined ? true : sortProps.allowClearingSort\r\n });\r\n }, [sortProps])\r\n\r\n React.useEffect(() => {\r\n setSelected(props.selectedRows || (multiSelect ? [] : undefined))\r\n }, [props.selectedRows, multiSelect])\r\n\r\n /**\r\n * update select all checkbox state\r\n */\r\n React.useEffect(() => {\r\n if (multiSelect) {\r\n const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);\r\n const count = selected.filter((item: any) => currentList.includes(item)).length;\r\n\r\n setSelectAllState(count === currentList.length ? 'all' : count > 0 ? 'some' : 'none');\r\n }\r\n }, [currentPageRows, multiSelect, selected, keyExpr])\r\n\r\n /**\r\n * Takes care of remote pagination.\r\n * Works only in case remote pagination is set to true.\r\n */\r\n React.useEffect(() => {\r\n if (remoteOperations) {\r\n setCurrentPageRows(rows);\r\n\r\n // Let's assign pagination values\r\n setFrom(pagination?.from);\r\n setTo(pagination?.to);\r\n setTotal(pagination?.total);\r\n setCurrentPage(pagination?.currentPage!);\r\n setRowsPerPage(pagination?.rowsPerPage!);\r\n }\r\n }, [remoteOperations, pagination, rows]);\r\n\r\n /**\r\n * Sets number of rows to display when accordion.\r\n */\r\n React.useEffect(() => {\r\n if (!accordion) return;\r\n\r\n setRowsPerPage(isCollapsed ? collapsedRows || 10 : rows.length);\r\n }, [rows, accordion, collapsedRows, isCollapsed])\r\n\r\n React.useEffect(() => {\r\n if (!accordion) return;\r\n\r\n setIsCollapsed(!!collapsed);\r\n }, [accordion, collapsed])\r\n\r\n /**\r\n * Filters out a rows by specific column filters and sorts them if any sorting is set.\r\n * @returns Filtered and sorted rows.\r\n */\r\n const filterAndSortRows = (): any[] => {\r\n let tmpFilteredRows = rows.filter((row) => {\r\n // Let's start with matched filter criteria\r\n let matchFilterCriteria = true;\r\n\r\n // Let's go through columns\r\n for (const column of columns) {\r\n // Let's check if filter value is specified for the column\r\n // And if it doesn't match the current row column value\r\n // Then let's update match filter criteria to failed\r\n if (column.filterValue && row[column.key].toLowerCase().indexOf(column.filterValue.toLowerCase()) === -1) {\r\n matchFilterCriteria = false;\r\n }\r\n }\r\n\r\n // Let's return row only in case match filter criteria succeeds\r\n if (matchFilterCriteria) {\r\n return row;\r\n }\r\n });\r\n\r\n // Let's apply sorting if needed\r\n if (!!sort?.column && !!sort?.direction) {\r\n // Let's sort the rows\r\n tmpFilteredRows.sort((a, b) => {\r\n if (a[sort.column!] > b[sort.column!]) {\r\n return sort.direction! === 'asc' ? 1 : -1;\r\n } else if (a[sort.column!] < b[sort.column!]) {\r\n return sort.direction! === 'asc' ? -1 : 1;\r\n } else {\r\n return 0;\r\n }\r\n });\r\n }\r\n\r\n // Let's return filtered rows\r\n return tmpFilteredRows;\r\n };\r\n\r\n /**\r\n * Takes care of local pagination.\r\n * Works only in case remote pagination is not defined or is set to false.\r\n */\r\n React.useEffect(() => {\r\n if (!remoteOperations) {\r\n // Let's retrieve temporary filtered rows and update globally filtered rows\r\n const tmpFilteredRows = filterAndSortRows();\r\n setFilteredRows(tmpFilteredRows);\r\n setTotal(tmpFilteredRows.length);\r\n\r\n // Assign rows from and rows to\r\n const rowsFrom = (currentPage - 1) * rowsPerPage;\r\n const rowsTo = rowsFrom + rowsPerPage >= tmpFilteredRows.length ? tmpFilteredRows.length : rowsFrom + rowsPerPage;\r\n\r\n // Set from and to values\r\n setFrom(rowsFrom + 1);\r\n setTo(rowsTo);\r\n\r\n // Filter out the rows\r\n setCurrentPageRows(tmpFilteredRows.slice(rowsFrom, rowsTo));\r\n }\r\n }, [rowsPerPage, rows, currentPage, columns, sort, remoteOperations]);\r\n\r\n\r\n /**\r\n * Applies a specific sorting to a column.\r\n * If no sorting exists, then applies ascending initially\r\n * @param column - Column to which sorting should be applied.\r\n */\r\n const sortTableColumn = (column: TableColumn): void => {\r\n let columnKey = '';\r\n let sortDirection: TableSortingDirection | undefined = undefined;\r\n\r\n if (sort?.column !== column.key) {\r\n columnKey = column.key;\r\n sortDirection = 'asc';\r\n } else {\r\n if (sort?.direction === 'desc' && sort?.allowClearingSort) {\r\n columnKey = '';\r\n sortDirection = undefined;\r\n } else {\r\n columnKey = sort.column;\r\n sortDirection = sort.direction === 'asc' ? 'desc' : 'asc';\r\n }\r\n }\r\n\r\n if(columnKey == '')\r\n setSort({ column: '', direction: 'asc', allowClearingSort: sort?.allowClearingSort});\r\n else\r\n setSort({column: columnKey, direction: sortDirection!, allowClearingSort: sort?.allowClearingSort});\r\n\r\n remoteOperations && onTriggerSortingChange && onTriggerSortingChange(columnKey, sortDirection);\r\n };\r\n\r\n /**\r\n * Navigates user back to the previous page and updates the current table page.\r\n */\r\n const previousPage = () => {\r\n if (remoteOperations) {\r\n // Let's inform parent component about page change\r\n if (onPreviousPageClick) {\r\n onPreviousPageClick();\r\n }\r\n } else {\r\n // Let's change the page within the component\r\n setCurrentPage(currentPage > 1 ? currentPage - 1 : 1);\r\n }\r\n };\r\n\r\n /**\r\n * Navigates user to the next page and updates the current table page.\r\n */\r\n const nextPage = () => {\r\n if (remoteOperations) {\r\n // Let's inform parent component about page change\r\n if (onNextPageClick) {\r\n onNextPageClick();\r\n }\r\n } else {\r\n // Let's change the page within the component\r\n setCurrentPage(currentPage * rowsPerPage >= filteredRows.length ? currentPage : currentPage + 1);\r\n }\r\n };\r\n\r\n /**\r\n * Updates the rows per page value and refreshes the table content accordingly.\r\n * @param value - Newly selected rows per page value.\r\n */\r\n const changeRowsPerPage = (value: number) => {\r\n // Let's check if we are using remote pagination\r\n if (remoteOperations) {\r\n // Inform parent component about rows per page change\r\n if (onRowsPerPageChange) {\r\n onRowsPerPageChange(value);\r\n }\r\n } else {\r\n // Let's reset current page to 1\r\n setCurrentPage(1);\r\n }\r\n\r\n // Let's set rows per page\r\n setRowsPerPage(value);\r\n };\r\n\r\n\r\n /**\r\n * Function which is called when a mouse click happens on a row to pass data to the parent component.\r\n * @param row - Row in which the link is located.\r\n */\r\n const onRowClick = (row: any): void => {\r\n const selectedText = window?.getSelection()?.toString();\r\n\r\n if (selectedText?.length === 0 && selectable) {\r\n const value = keyExpr ? row[keyExpr] : row;\r\n let currentSelection = value;\r\n if (!!multiSelect) {\r\n const existing = selected?.indexOf(value);\r\n if (existing > -1) {\r\n currentSelection = [...selected];\r\n currentSelection.splice(existing, 1);\r\n } else {\r\n currentSelection = [...selected, currentSelection];\r\n }\r\n }\r\n\r\n setSelected(currentSelection)\r\n props.onSelectionChange && props.onSelectionChange(currentSelection);\r\n }\r\n };\r\n\r\n /**\r\n * Function which is called when user clicks checkbox to select or deselect all rows.\r\n */\r\n const onSelectAllClick = () => {\r\n const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);\r\n\r\n switch (selectAllState) {\r\n case 'all':\r\n setSelected([...selected].filter(item => !currentList.includes(item)));\r\n setSelectAllState('none');\r\n break;\r\n case 'none':\r\n setSelected([...selected, ...currentList]);\r\n setSelectAllState('all');\r\n break;\r\n case 'some':\r\n setSelected([...selected, ...currentList.filter(item => !selected.includes(item))]);\r\n setSelectAllState('all');\r\n break;\r\n }\r\n };\r\n\r\n /**\r\n * Return Table component.\r\n */\r\n return (\r\n <TableWrapper className={props.border ? 'border' : undefined}>\r\n <TableHeader {...props}/>\r\n <TableBody {...props}\r\n currentPageRows={currentPageRows}\r\n selected={selected}\r\n onRowClick={onRowClick}\r\n sortByColumn={sortTableColumn}\r\n onSelectAllClick={onSelectAllClick}\r\n sortProps={sort}\r\n selectAllState={selectAllState}/>\r\n <TableFooter {...props}\r\n onRowsPerPageChange={changeRowsPerPage}\r\n rowsPerPage={rowsPerPage}\r\n setIsCollapsed={setIsCollapsed}\r\n isCollapsed={isCollapsed}\r\n from={from}\r\n to={to}\r\n total={total}\r\n nextPage={nextPage}\r\n prevPage={previousPage}/>\r\n {showLoadingIndicator && (\r\n <StyledTableSpinner $zindex={loaderZIndex}>\r\n <LoadingIndicator size={Size.Medium}/>\r\n </StyledTableSpinner>\r\n )}\r\n </TableWrapper>\r\n );\r\n};\r\n\r\nexport default Table;\r\n"],"mappings":"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","ignoreList":[]}
@@ -289,21 +289,15 @@ const Table = props => {
289
289
  const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);
290
290
  switch (selectAllState) {
291
291
  case 'all':
292
- const all = [...selected].filter(item => !currentList.includes(item));
293
- setSelected(all);
294
- props.onSelectionChange && props.onSelectionChange(all);
292
+ setSelected([...selected].filter(item => !currentList.includes(item)));
295
293
  setSelectAllState('none');
296
294
  break;
297
295
  case 'none':
298
- const none = [...selected, ...currentList];
299
- setSelected(none);
300
- props.onSelectionChange && props.onSelectionChange(none);
296
+ setSelected([...selected, ...currentList]);
301
297
  setSelectAllState('all');
302
298
  break;
303
299
  case 'some':
304
- const some = [...selected, ...currentList.filter(item => !selected.includes(item))];
305
- setSelected(some);
306
- props.onSelectionChange && props.onSelectionChange(some);
300
+ setSelected([...selected, ...currentList.filter(item => !selected.includes(item))]);
307
301
  setSelectAllState('all');
308
302
  break;
309
303
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","names":["React","Size","StyledTableSpinner","TableWrapper","LoadingIndicator","TableHeader","TableFooter","TableBody","jsx","_jsx","jsxs","_jsxs","Table","props","onPreviousPageClick","onNextPageClick","onRowsPerPageChange","onTriggerSortingChange","columns","rows","remoteOperations","pagination","showLoadingIndicator","selectable","multiSelect","keyExpr","sortProps","accordion","collapsed","collapsedRows","rowsPerPageLabel","loaderZIndex","rowsPerPage","setRowsPerPage","useState","filteredRows","setFilteredRows","currentPageRows","setCurrentPageRows","currentPage","setCurrentPage","sort","setSort","from","setFrom","to","setTo","total","setTotal","isCollapsed","setIsCollapsed","selectAllState","setSelectAllState","selected","setSelected","undefined","useEffect","column","direction","allowClearingSort","selectedRows","currentList","map","row","count","filter","item","includes","length","filterAndSortRows","tmpFilteredRows","matchFilterCriteria","filterValue","key","toLowerCase","indexOf","a","b","rowsFrom","rowsTo","slice","sortTableColumn","columnKey","sortDirection","previousPage","nextPage","changeRowsPerPage","value","onRowClick","selectedText","window","getSelection","toString","currentSelection","existing","splice","onSelectionChange","onSelectAllClick","all","none","some","className","border","children","_objectSpread","sortByColumn","prevPage","$zindex","size","Medium"],"sources":["../../src/Table/Table.tsx"],"sourcesContent":["/**\r\n * Import React libraries.\r\n */\r\nimport * as React from 'react';\r\n\r\n/**\r\n * Import custom components.\r\n */\r\nimport {Size} from '../types'\r\n\r\n/**\r\n * Import custom styles.\r\n */\r\nimport {StyledTable, StyledTableSpinner, TableWrapper} from './TableStyles';\r\n\r\n/**\r\n * Import custom types.\r\n */\r\nimport {TableProps, TableColumn, TableSortingDirection, TableSortProps} from './TableTypes';\r\nimport {LoadingIndicator} from '../LoadingIndicator';\r\nimport TableHeader from './TableHeaders';\r\nimport TableFooter from './TableFooter';\r\nimport TableBody from './TableBody';\r\n\r\nconst Table: React.FunctionComponent<TableProps> = (props: TableProps) => {\r\n let {\r\n onPreviousPageClick,\r\n onNextPageClick,\r\n onRowsPerPageChange,\r\n onTriggerSortingChange,\r\n columns,\r\n rows,\r\n remoteOperations,\r\n pagination,\r\n showLoadingIndicator,\r\n selectable,\r\n multiSelect,\r\n keyExpr,\r\n sortProps,\r\n accordion,\r\n collapsed = true,\r\n\r\n collapsedRows,\r\n rowsPerPageLabel,\r\n loaderZIndex\r\n } = props;\r\n\r\n // States used within the component\r\n const [rowsPerPage, setRowsPerPage] = React.useState<number>(10);\r\n const [filteredRows, setFilteredRows] = React.useState<any[]>([]);\r\n const [currentPageRows, setCurrentPageRows] = React.useState<any[]>([]);\r\n const [currentPage, setCurrentPage] = React.useState<number>(1);\r\n const [sort, setSort] = React.useState<TableSortProps | undefined>();\r\n const [from, setFrom] = React.useState<number>();\r\n const [to, setTo] = React.useState<number>();\r\n const [total, setTotal] = React.useState<number>();\r\n\r\n const [isCollapsed, setIsCollapsed] = React.useState(true);\r\n\r\n const [selectAllState, setSelectAllState] = React.useState<'all' | 'some' | 'none'>('none');\r\n\r\n const [selected, setSelected] = React.useState<any | any[]>(multiSelect ? [] : undefined);\r\n\r\n React.useEffect(() => {\r\n setSort({\r\n column: sortProps?.column ?? '', \r\n direction: sortProps?.direction ?? 'asc', \r\n allowClearingSort: sortProps?.allowClearingSort === undefined ? true : sortProps.allowClearingSort\r\n });\r\n }, [sortProps])\r\n\r\n React.useEffect(() => {\r\n setSelected(props.selectedRows || (multiSelect ? [] : undefined))\r\n }, [props.selectedRows, multiSelect])\r\n\r\n /**\r\n * update select all checkbox state\r\n */\r\n React.useEffect(() => {\r\n if (multiSelect) {\r\n const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);\r\n const count = selected.filter((item: any) => currentList.includes(item)).length;\r\n\r\n setSelectAllState(count === currentList.length ? 'all' : count > 0 ? 'some' : 'none');\r\n }\r\n }, [currentPageRows, multiSelect, selected, keyExpr])\r\n\r\n /**\r\n * Takes care of remote pagination.\r\n * Works only in case remote pagination is set to true.\r\n */\r\n React.useEffect(() => {\r\n if (remoteOperations) {\r\n setCurrentPageRows(rows);\r\n\r\n // Let's assign pagination values\r\n setFrom(pagination?.from);\r\n setTo(pagination?.to);\r\n setTotal(pagination?.total);\r\n setCurrentPage(pagination?.currentPage!);\r\n setRowsPerPage(pagination?.rowsPerPage!);\r\n }\r\n }, [remoteOperations, pagination, rows]);\r\n\r\n /**\r\n * Sets number of rows to display when accordion.\r\n */\r\n React.useEffect(() => {\r\n if (!accordion) return;\r\n\r\n setRowsPerPage(isCollapsed ? collapsedRows || 10 : rows.length);\r\n }, [rows, accordion, collapsedRows, isCollapsed])\r\n\r\n React.useEffect(() => {\r\n if (!accordion) return;\r\n\r\n setIsCollapsed(!!collapsed);\r\n }, [accordion, collapsed])\r\n\r\n /**\r\n * Filters out a rows by specific column filters and sorts them if any sorting is set.\r\n * @returns Filtered and sorted rows.\r\n */\r\n const filterAndSortRows = (): any[] => {\r\n let tmpFilteredRows = rows.filter((row) => {\r\n // Let's start with matched filter criteria\r\n let matchFilterCriteria = true;\r\n\r\n // Let's go through columns\r\n for (const column of columns) {\r\n // Let's check if filter value is specified for the column\r\n // And if it doesn't match the current row column value\r\n // Then let's update match filter criteria to failed\r\n if (column.filterValue && row[column.key].toLowerCase().indexOf(column.filterValue.toLowerCase()) === -1) {\r\n matchFilterCriteria = false;\r\n }\r\n }\r\n\r\n // Let's return row only in case match filter criteria succeeds\r\n if (matchFilterCriteria) {\r\n return row;\r\n }\r\n });\r\n\r\n // Let's apply sorting if needed\r\n if (!!sort?.column && !!sort?.direction) {\r\n // Let's sort the rows\r\n tmpFilteredRows.sort((a, b) => {\r\n if (a[sort.column!] > b[sort.column!]) {\r\n return sort.direction! === 'asc' ? 1 : -1;\r\n } else if (a[sort.column!] < b[sort.column!]) {\r\n return sort.direction! === 'asc' ? -1 : 1;\r\n } else {\r\n return 0;\r\n }\r\n });\r\n }\r\n\r\n // Let's return filtered rows\r\n return tmpFilteredRows;\r\n };\r\n\r\n /**\r\n * Takes care of local pagination.\r\n * Works only in case remote pagination is not defined or is set to false.\r\n */\r\n React.useEffect(() => {\r\n if (!remoteOperations) {\r\n // Let's retrieve temporary filtered rows and update globally filtered rows\r\n const tmpFilteredRows = filterAndSortRows();\r\n setFilteredRows(tmpFilteredRows);\r\n setTotal(tmpFilteredRows.length);\r\n\r\n // Assign rows from and rows to\r\n const rowsFrom = (currentPage - 1) * rowsPerPage;\r\n const rowsTo = rowsFrom + rowsPerPage >= tmpFilteredRows.length ? tmpFilteredRows.length : rowsFrom + rowsPerPage;\r\n\r\n // Set from and to values\r\n setFrom(rowsFrom + 1);\r\n setTo(rowsTo);\r\n\r\n // Filter out the rows\r\n setCurrentPageRows(tmpFilteredRows.slice(rowsFrom, rowsTo));\r\n }\r\n }, [rowsPerPage, rows, currentPage, columns, sort, remoteOperations]);\r\n\r\n\r\n /**\r\n * Applies a specific sorting to a column.\r\n * If no sorting exists, then applies ascending initially\r\n * @param column - Column to which sorting should be applied.\r\n */\r\n const sortTableColumn = (column: TableColumn): void => {\r\n let columnKey = '';\r\n let sortDirection: TableSortingDirection | undefined = undefined;\r\n\r\n if (sort?.column !== column.key) {\r\n columnKey = column.key;\r\n sortDirection = 'asc';\r\n } else {\r\n if (sort?.direction === 'desc' && sort?.allowClearingSort) {\r\n columnKey = '';\r\n sortDirection = undefined;\r\n } else {\r\n columnKey = sort.column;\r\n sortDirection = sort.direction === 'asc' ? 'desc' : 'asc';\r\n }\r\n }\r\n\r\n if(columnKey == '')\r\n setSort({ column: '', direction: 'asc', allowClearingSort: sort?.allowClearingSort});\r\n else\r\n setSort({column: columnKey, direction: sortDirection!, allowClearingSort: sort?.allowClearingSort});\r\n\r\n remoteOperations && onTriggerSortingChange && onTriggerSortingChange(columnKey, sortDirection);\r\n };\r\n\r\n /**\r\n * Navigates user back to the previous page and updates the current table page.\r\n */\r\n const previousPage = () => {\r\n if (remoteOperations) {\r\n // Let's inform parent component about page change\r\n if (onPreviousPageClick) {\r\n onPreviousPageClick();\r\n }\r\n } else {\r\n // Let's change the page within the component\r\n setCurrentPage(currentPage > 1 ? currentPage - 1 : 1);\r\n }\r\n };\r\n\r\n /**\r\n * Navigates user to the next page and updates the current table page.\r\n */\r\n const nextPage = () => {\r\n if (remoteOperations) {\r\n // Let's inform parent component about page change\r\n if (onNextPageClick) {\r\n onNextPageClick();\r\n }\r\n } else {\r\n // Let's change the page within the component\r\n setCurrentPage(currentPage * rowsPerPage >= filteredRows.length ? currentPage : currentPage + 1);\r\n }\r\n };\r\n\r\n /**\r\n * Updates the rows per page value and refreshes the table content accordingly.\r\n * @param value - Newly selected rows per page value.\r\n */\r\n const changeRowsPerPage = (value: number) => {\r\n // Let's check if we are using remote pagination\r\n if (remoteOperations) {\r\n // Inform parent component about rows per page change\r\n if (onRowsPerPageChange) {\r\n onRowsPerPageChange(value);\r\n }\r\n } else {\r\n // Let's reset current page to 1\r\n setCurrentPage(1);\r\n }\r\n\r\n // Let's set rows per page\r\n setRowsPerPage(value);\r\n };\r\n\r\n\r\n /**\r\n * Function which is called when a mouse click happens on a row to pass data to the parent component.\r\n * @param row - Row in which the link is located.\r\n */\r\n const onRowClick = (row: any): void => {\r\n const selectedText = window?.getSelection()?.toString();\r\n\r\n if (selectedText?.length === 0 && selectable) {\r\n const value = keyExpr ? row[keyExpr] : row;\r\n let currentSelection = value;\r\n if (!!multiSelect) {\r\n const existing = selected?.indexOf(value);\r\n if (existing > -1) {\r\n currentSelection = [...selected];\r\n currentSelection.splice(existing, 1);\r\n } else {\r\n currentSelection = [...selected, currentSelection];\r\n }\r\n }\r\n\r\n setSelected(currentSelection)\r\n props.onSelectionChange && props.onSelectionChange(currentSelection);\r\n }\r\n };\r\n\r\n /**\r\n * Function which is called when user clicks checkbox to select or deselect all rows.\r\n */\r\n const onSelectAllClick = () => {\r\n const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);\r\n\r\n switch (selectAllState) {\r\n case 'all':\r\n const all = [...selected].filter(item => !currentList.includes(item));\r\n setSelected(all);\r\n props.onSelectionChange && props.onSelectionChange(all);\r\n setSelectAllState('none');\r\n break;\r\n case 'none':\r\n const none = [...selected, ...currentList]\r\n setSelected(none);\r\n props.onSelectionChange && props.onSelectionChange(none);\r\n setSelectAllState('all');\r\n break;\r\n case 'some':\r\n const some = [...selected, ...currentList.filter(item => !selected.includes(item))];\r\n setSelected(some);\r\n props.onSelectionChange && props.onSelectionChange(some);\r\n setSelectAllState('all');\r\n break;\r\n }\r\n };\r\n\r\n /**\r\n * Return Table component.\r\n */\r\n return (\r\n <TableWrapper className={props.border ? 'border' : undefined}>\r\n <TableHeader {...props}/>\r\n <TableBody {...props}\r\n currentPageRows={currentPageRows}\r\n selected={selected}\r\n onRowClick={onRowClick}\r\n sortByColumn={sortTableColumn}\r\n onSelectAllClick={onSelectAllClick}\r\n sortProps={sort}\r\n selectAllState={selectAllState}/>\r\n <TableFooter {...props}\r\n onRowsPerPageChange={changeRowsPerPage}\r\n rowsPerPage={rowsPerPage}\r\n setIsCollapsed={setIsCollapsed}\r\n isCollapsed={isCollapsed}\r\n from={from}\r\n to={to}\r\n total={total}\r\n nextPage={nextPage}\r\n prevPage={previousPage}/>\r\n {showLoadingIndicator && (\r\n <StyledTableSpinner $zindex={loaderZIndex}>\r\n <LoadingIndicator size={Size.Medium}/>\r\n </StyledTableSpinner>\r\n )}\r\n </TableWrapper>\r\n );\r\n};\r\n\r\nexport default Table;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Table.js","names":["React","Size","StyledTableSpinner","TableWrapper","LoadingIndicator","TableHeader","TableFooter","TableBody","jsx","_jsx","jsxs","_jsxs","Table","props","onPreviousPageClick","onNextPageClick","onRowsPerPageChange","onTriggerSortingChange","columns","rows","remoteOperations","pagination","showLoadingIndicator","selectable","multiSelect","keyExpr","sortProps","accordion","collapsed","collapsedRows","rowsPerPageLabel","loaderZIndex","rowsPerPage","setRowsPerPage","useState","filteredRows","setFilteredRows","currentPageRows","setCurrentPageRows","currentPage","setCurrentPage","sort","setSort","from","setFrom","to","setTo","total","setTotal","isCollapsed","setIsCollapsed","selectAllState","setSelectAllState","selected","setSelected","undefined","useEffect","column","direction","allowClearingSort","selectedRows","currentList","map","row","count","filter","item","includes","length","filterAndSortRows","tmpFilteredRows","matchFilterCriteria","filterValue","key","toLowerCase","indexOf","a","b","rowsFrom","rowsTo","slice","sortTableColumn","columnKey","sortDirection","previousPage","nextPage","changeRowsPerPage","value","onRowClick","selectedText","window","getSelection","toString","currentSelection","existing","splice","onSelectionChange","onSelectAllClick","className","border","children","_objectSpread","sortByColumn","prevPage","$zindex","size","Medium"],"sources":["../../src/Table/Table.tsx"],"sourcesContent":["/**\r\n * Import React libraries.\r\n */\r\nimport * as React from 'react';\r\n\r\n/**\r\n * Import custom components.\r\n */\r\nimport {Size} from '../types'\r\n\r\n/**\r\n * Import custom styles.\r\n */\r\nimport {StyledTable, StyledTableSpinner, TableWrapper} from './TableStyles';\r\n\r\n/**\r\n * Import custom types.\r\n */\r\nimport {TableProps, TableColumn, TableSortingDirection, TableSortProps} from './TableTypes';\r\nimport {LoadingIndicator} from '../LoadingIndicator';\r\nimport TableHeader from './TableHeaders';\r\nimport TableFooter from './TableFooter';\r\nimport TableBody from './TableBody';\r\n\r\nconst Table: React.FunctionComponent<TableProps> = (props: TableProps) => {\r\n let {\r\n onPreviousPageClick,\r\n onNextPageClick,\r\n onRowsPerPageChange,\r\n onTriggerSortingChange,\r\n columns,\r\n rows,\r\n remoteOperations,\r\n pagination,\r\n showLoadingIndicator,\r\n selectable,\r\n multiSelect,\r\n keyExpr,\r\n sortProps,\r\n accordion,\r\n collapsed = true,\r\n\r\n collapsedRows,\r\n rowsPerPageLabel,\r\n loaderZIndex\r\n } = props;\r\n\r\n // States used within the component\r\n const [rowsPerPage, setRowsPerPage] = React.useState<number>(10);\r\n const [filteredRows, setFilteredRows] = React.useState<any[]>([]);\r\n const [currentPageRows, setCurrentPageRows] = React.useState<any[]>([]);\r\n const [currentPage, setCurrentPage] = React.useState<number>(1);\r\n const [sort, setSort] = React.useState<TableSortProps | undefined>();\r\n const [from, setFrom] = React.useState<number>();\r\n const [to, setTo] = React.useState<number>();\r\n const [total, setTotal] = React.useState<number>();\r\n\r\n const [isCollapsed, setIsCollapsed] = React.useState(true);\r\n\r\n const [selectAllState, setSelectAllState] = React.useState<'all' | 'some' | 'none'>('none');\r\n\r\n const [selected, setSelected] = React.useState<any | any[]>(multiSelect ? [] : undefined);\r\n\r\n React.useEffect(() => {\r\n setSort({\r\n column: sortProps?.column ?? '', \r\n direction: sortProps?.direction ?? 'asc', \r\n allowClearingSort: sortProps?.allowClearingSort === undefined ? true : sortProps.allowClearingSort\r\n });\r\n }, [sortProps])\r\n\r\n React.useEffect(() => {\r\n setSelected(props.selectedRows || (multiSelect ? [] : undefined))\r\n }, [props.selectedRows, multiSelect])\r\n\r\n /**\r\n * update select all checkbox state\r\n */\r\n React.useEffect(() => {\r\n if (multiSelect) {\r\n const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);\r\n const count = selected.filter((item: any) => currentList.includes(item)).length;\r\n\r\n setSelectAllState(count === currentList.length ? 'all' : count > 0 ? 'some' : 'none');\r\n }\r\n }, [currentPageRows, multiSelect, selected, keyExpr])\r\n\r\n /**\r\n * Takes care of remote pagination.\r\n * Works only in case remote pagination is set to true.\r\n */\r\n React.useEffect(() => {\r\n if (remoteOperations) {\r\n setCurrentPageRows(rows);\r\n\r\n // Let's assign pagination values\r\n setFrom(pagination?.from);\r\n setTo(pagination?.to);\r\n setTotal(pagination?.total);\r\n setCurrentPage(pagination?.currentPage!);\r\n setRowsPerPage(pagination?.rowsPerPage!);\r\n }\r\n }, [remoteOperations, pagination, rows]);\r\n\r\n /**\r\n * Sets number of rows to display when accordion.\r\n */\r\n React.useEffect(() => {\r\n if (!accordion) return;\r\n\r\n setRowsPerPage(isCollapsed ? collapsedRows || 10 : rows.length);\r\n }, [rows, accordion, collapsedRows, isCollapsed])\r\n\r\n React.useEffect(() => {\r\n if (!accordion) return;\r\n\r\n setIsCollapsed(!!collapsed);\r\n }, [accordion, collapsed])\r\n\r\n /**\r\n * Filters out a rows by specific column filters and sorts them if any sorting is set.\r\n * @returns Filtered and sorted rows.\r\n */\r\n const filterAndSortRows = (): any[] => {\r\n let tmpFilteredRows = rows.filter((row) => {\r\n // Let's start with matched filter criteria\r\n let matchFilterCriteria = true;\r\n\r\n // Let's go through columns\r\n for (const column of columns) {\r\n // Let's check if filter value is specified for the column\r\n // And if it doesn't match the current row column value\r\n // Then let's update match filter criteria to failed\r\n if (column.filterValue && row[column.key].toLowerCase().indexOf(column.filterValue.toLowerCase()) === -1) {\r\n matchFilterCriteria = false;\r\n }\r\n }\r\n\r\n // Let's return row only in case match filter criteria succeeds\r\n if (matchFilterCriteria) {\r\n return row;\r\n }\r\n });\r\n\r\n // Let's apply sorting if needed\r\n if (!!sort?.column && !!sort?.direction) {\r\n // Let's sort the rows\r\n tmpFilteredRows.sort((a, b) => {\r\n if (a[sort.column!] > b[sort.column!]) {\r\n return sort.direction! === 'asc' ? 1 : -1;\r\n } else if (a[sort.column!] < b[sort.column!]) {\r\n return sort.direction! === 'asc' ? -1 : 1;\r\n } else {\r\n return 0;\r\n }\r\n });\r\n }\r\n\r\n // Let's return filtered rows\r\n return tmpFilteredRows;\r\n };\r\n\r\n /**\r\n * Takes care of local pagination.\r\n * Works only in case remote pagination is not defined or is set to false.\r\n */\r\n React.useEffect(() => {\r\n if (!remoteOperations) {\r\n // Let's retrieve temporary filtered rows and update globally filtered rows\r\n const tmpFilteredRows = filterAndSortRows();\r\n setFilteredRows(tmpFilteredRows);\r\n setTotal(tmpFilteredRows.length);\r\n\r\n // Assign rows from and rows to\r\n const rowsFrom = (currentPage - 1) * rowsPerPage;\r\n const rowsTo = rowsFrom + rowsPerPage >= tmpFilteredRows.length ? tmpFilteredRows.length : rowsFrom + rowsPerPage;\r\n\r\n // Set from and to values\r\n setFrom(rowsFrom + 1);\r\n setTo(rowsTo);\r\n\r\n // Filter out the rows\r\n setCurrentPageRows(tmpFilteredRows.slice(rowsFrom, rowsTo));\r\n }\r\n }, [rowsPerPage, rows, currentPage, columns, sort, remoteOperations]);\r\n\r\n\r\n /**\r\n * Applies a specific sorting to a column.\r\n * If no sorting exists, then applies ascending initially\r\n * @param column - Column to which sorting should be applied.\r\n */\r\n const sortTableColumn = (column: TableColumn): void => {\r\n let columnKey = '';\r\n let sortDirection: TableSortingDirection | undefined = undefined;\r\n\r\n if (sort?.column !== column.key) {\r\n columnKey = column.key;\r\n sortDirection = 'asc';\r\n } else {\r\n if (sort?.direction === 'desc' && sort?.allowClearingSort) {\r\n columnKey = '';\r\n sortDirection = undefined;\r\n } else {\r\n columnKey = sort.column;\r\n sortDirection = sort.direction === 'asc' ? 'desc' : 'asc';\r\n }\r\n }\r\n\r\n if(columnKey == '')\r\n setSort({ column: '', direction: 'asc', allowClearingSort: sort?.allowClearingSort});\r\n else\r\n setSort({column: columnKey, direction: sortDirection!, allowClearingSort: sort?.allowClearingSort});\r\n\r\n remoteOperations && onTriggerSortingChange && onTriggerSortingChange(columnKey, sortDirection);\r\n };\r\n\r\n /**\r\n * Navigates user back to the previous page and updates the current table page.\r\n */\r\n const previousPage = () => {\r\n if (remoteOperations) {\r\n // Let's inform parent component about page change\r\n if (onPreviousPageClick) {\r\n onPreviousPageClick();\r\n }\r\n } else {\r\n // Let's change the page within the component\r\n setCurrentPage(currentPage > 1 ? currentPage - 1 : 1);\r\n }\r\n };\r\n\r\n /**\r\n * Navigates user to the next page and updates the current table page.\r\n */\r\n const nextPage = () => {\r\n if (remoteOperations) {\r\n // Let's inform parent component about page change\r\n if (onNextPageClick) {\r\n onNextPageClick();\r\n }\r\n } else {\r\n // Let's change the page within the component\r\n setCurrentPage(currentPage * rowsPerPage >= filteredRows.length ? currentPage : currentPage + 1);\r\n }\r\n };\r\n\r\n /**\r\n * Updates the rows per page value and refreshes the table content accordingly.\r\n * @param value - Newly selected rows per page value.\r\n */\r\n const changeRowsPerPage = (value: number) => {\r\n // Let's check if we are using remote pagination\r\n if (remoteOperations) {\r\n // Inform parent component about rows per page change\r\n if (onRowsPerPageChange) {\r\n onRowsPerPageChange(value);\r\n }\r\n } else {\r\n // Let's reset current page to 1\r\n setCurrentPage(1);\r\n }\r\n\r\n // Let's set rows per page\r\n setRowsPerPage(value);\r\n };\r\n\r\n\r\n /**\r\n * Function which is called when a mouse click happens on a row to pass data to the parent component.\r\n * @param row - Row in which the link is located.\r\n */\r\n const onRowClick = (row: any): void => {\r\n const selectedText = window?.getSelection()?.toString();\r\n\r\n if (selectedText?.length === 0 && selectable) {\r\n const value = keyExpr ? row[keyExpr] : row;\r\n let currentSelection = value;\r\n if (!!multiSelect) {\r\n const existing = selected?.indexOf(value);\r\n if (existing > -1) {\r\n currentSelection = [...selected];\r\n currentSelection.splice(existing, 1);\r\n } else {\r\n currentSelection = [...selected, currentSelection];\r\n }\r\n }\r\n\r\n setSelected(currentSelection)\r\n props.onSelectionChange && props.onSelectionChange(currentSelection);\r\n }\r\n };\r\n\r\n /**\r\n * Function which is called when user clicks checkbox to select or deselect all rows.\r\n */\r\n const onSelectAllClick = () => {\r\n const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);\r\n\r\n switch (selectAllState) {\r\n case 'all':\r\n setSelected([...selected].filter(item => !currentList.includes(item)));\r\n setSelectAllState('none');\r\n break;\r\n case 'none':\r\n setSelected([...selected, ...currentList]);\r\n setSelectAllState('all');\r\n break;\r\n case 'some':\r\n setSelected([...selected, ...currentList.filter(item => !selected.includes(item))]);\r\n setSelectAllState('all');\r\n break;\r\n }\r\n };\r\n\r\n /**\r\n * Return Table component.\r\n */\r\n return (\r\n <TableWrapper className={props.border ? 'border' : undefined}>\r\n <TableHeader {...props}/>\r\n <TableBody {...props}\r\n currentPageRows={currentPageRows}\r\n selected={selected}\r\n onRowClick={onRowClick}\r\n sortByColumn={sortTableColumn}\r\n onSelectAllClick={onSelectAllClick}\r\n sortProps={sort}\r\n selectAllState={selectAllState}/>\r\n <TableFooter {...props}\r\n onRowsPerPageChange={changeRowsPerPage}\r\n rowsPerPage={rowsPerPage}\r\n setIsCollapsed={setIsCollapsed}\r\n isCollapsed={isCollapsed}\r\n from={from}\r\n to={to}\r\n total={total}\r\n nextPage={nextPage}\r\n prevPage={previousPage}/>\r\n {showLoadingIndicator && (\r\n <StyledTableSpinner $zindex={loaderZIndex}>\r\n <LoadingIndicator size={Size.Medium}/>\r\n </StyledTableSpinner>\r\n )}\r\n </TableWrapper>\r\n );\r\n};\r\n\r\nexport default Table;\r\n"],"mappings":"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","ignoreList":[]}