@laerdal/life-react-components 1.3.2-dev.2.full → 1.3.2-dev.21.full

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.
Files changed (139) hide show
  1. package/dist/esm/AuthPage/AuthPage.js +1 -1
  2. package/dist/esm/AuthPage/AuthPage.js.map +1 -1
  3. package/dist/esm/AuthPage/Information.js +1 -1
  4. package/dist/esm/AuthPage/Information.js.map +1 -1
  5. package/dist/esm/Banners/Banner.js +16 -16
  6. package/dist/esm/Banners/Banner.js.map +1 -1
  7. package/dist/esm/Button/DualFunctionButton.js +4 -0
  8. package/dist/esm/Button/DualFunctionButton.js.map +1 -1
  9. package/dist/esm/Button/Iconbutton.js +0 -1
  10. package/dist/esm/Button/Iconbutton.js.map +1 -1
  11. package/dist/esm/Dropdown/CommonStyling.js +4 -0
  12. package/dist/esm/Dropdown/CommonStyling.js.map +1 -1
  13. package/dist/esm/Dropdown/DropdownButton.js +5 -2
  14. package/dist/esm/Dropdown/DropdownButton.js.map +1 -1
  15. package/dist/esm/Dropdown/DropdownContent.js +6 -6
  16. package/dist/esm/Dropdown/DropdownContent.js.map +1 -1
  17. package/dist/esm/Dropdown/DropdownFilter.js.map +1 -1
  18. package/dist/esm/HyperLink/HyperLink.js +2 -1
  19. package/dist/esm/HyperLink/HyperLink.js.map +1 -1
  20. package/dist/esm/InputFields/Checkbox.js +23 -13
  21. package/dist/esm/InputFields/Checkbox.js.map +1 -1
  22. package/dist/esm/Modals/ModalDialog.js +7 -4
  23. package/dist/esm/Modals/ModalDialog.js.map +1 -1
  24. package/dist/esm/Modals/ModalNote.js +1 -1
  25. package/dist/esm/Modals/ModalNote.js.map +1 -1
  26. package/dist/esm/Table/Table.js +131 -181
  27. package/dist/esm/Table/Table.js.map +1 -1
  28. package/dist/esm/Table/TableBody.js +135 -0
  29. package/dist/esm/Table/TableBody.js.map +1 -0
  30. package/dist/esm/Table/TableFooter.js +68 -0
  31. package/dist/esm/Table/TableFooter.js.map +1 -0
  32. package/dist/esm/Table/TableHeaders.js +55 -0
  33. package/dist/esm/Table/TableHeaders.js.map +1 -0
  34. package/dist/esm/Table/TableStyles.js +181 -110
  35. package/dist/esm/Table/TableStyles.js.map +1 -1
  36. package/dist/esm/Table/__tests__/Table.test.js +162 -21
  37. package/dist/esm/Table/__tests__/Table.test.js.map +1 -1
  38. package/dist/esm/Tabs/TabLink.js +1 -0
  39. package/dist/esm/Tabs/TabLink.js.map +1 -1
  40. package/dist/esm/styles/typography.js +66 -66
  41. package/dist/esm/styles/typography.js.map +1 -1
  42. package/dist/js/AuthPage/AuthPage.js +1 -1
  43. package/dist/js/AuthPage/AuthPage.js.map +1 -1
  44. package/dist/js/AuthPage/Information.d.ts +1 -1
  45. package/dist/js/AuthPage/Information.js +1 -1
  46. package/dist/js/AuthPage/Information.js.map +1 -1
  47. package/dist/js/Banners/Banner.js +16 -19
  48. package/dist/js/Banners/Banner.js.map +1 -1
  49. package/dist/js/Button/DualFunctionButton.js +4 -0
  50. package/dist/js/Button/DualFunctionButton.js.map +1 -1
  51. package/dist/js/Button/Iconbutton.d.ts +2 -2
  52. package/dist/js/Button/Iconbutton.js +0 -1
  53. package/dist/js/Button/Iconbutton.js.map +1 -1
  54. package/dist/js/Dropdown/CommonStyling.js +1 -1
  55. package/dist/js/Dropdown/CommonStyling.js.map +1 -1
  56. package/dist/js/Dropdown/DropdownButton.d.ts +1 -1
  57. package/dist/js/Dropdown/DropdownButton.js +5 -2
  58. package/dist/js/Dropdown/DropdownButton.js.map +1 -1
  59. package/dist/js/Dropdown/DropdownButtonTypes.d.ts +1 -0
  60. package/dist/js/Dropdown/DropdownContent.js +8 -8
  61. package/dist/js/Dropdown/DropdownContent.js.map +1 -1
  62. package/dist/js/Dropdown/DropdownFilter.d.ts +1 -1
  63. package/dist/js/Dropdown/DropdownFilter.js.map +1 -1
  64. package/dist/js/HyperLink/HyperLink.d.ts +1 -1
  65. package/dist/js/HyperLink/HyperLink.js +2 -2
  66. package/dist/js/HyperLink/HyperLink.js.map +1 -1
  67. package/dist/js/InputFields/Checkbox.d.ts +3 -2
  68. package/dist/js/InputFields/Checkbox.js +13 -11
  69. package/dist/js/InputFields/Checkbox.js.map +1 -1
  70. package/dist/js/Modals/ModalDialog.d.ts +2 -1
  71. package/dist/js/Modals/ModalDialog.js +7 -4
  72. package/dist/js/Modals/ModalDialog.js.map +1 -1
  73. package/dist/js/Modals/ModalNote.d.ts +1 -1
  74. package/dist/js/Modals/ModalNote.js +1 -1
  75. package/dist/js/Modals/ModalNote.js.map +1 -1
  76. package/dist/js/Table/Table.js +166 -209
  77. package/dist/js/Table/Table.js.map +1 -1
  78. package/dist/js/Table/TableBody.d.ts +9 -0
  79. package/dist/js/Table/TableBody.js +167 -0
  80. package/dist/js/Table/TableBody.js.map +1 -0
  81. package/dist/js/Table/TableFooter.d.ts +15 -0
  82. package/dist/js/Table/TableFooter.js +95 -0
  83. package/dist/js/Table/TableFooter.js.map +1 -0
  84. package/dist/js/Table/TableHeaders.d.ts +9 -0
  85. package/dist/js/Table/TableHeaders.js +77 -0
  86. package/dist/js/Table/TableHeaders.js.map +1 -0
  87. package/dist/js/Table/TableStyles.d.ts +19 -7
  88. package/dist/js/Table/TableStyles.js +66 -16
  89. package/dist/js/Table/TableStyles.js.map +1 -1
  90. package/dist/js/Table/TableTypes.d.ts +26 -16
  91. package/dist/js/Table/__tests__/Table.test.js +172 -30
  92. package/dist/js/Table/__tests__/Table.test.js.map +1 -1
  93. package/dist/js/Tabs/TabLink.js +1 -1
  94. package/dist/js/Tabs/TabLink.js.map +1 -1
  95. package/dist/js/styles/typography.d.ts +6 -6
  96. package/dist/js/styles/typography.js +66 -66
  97. package/dist/js/styles/typography.js.map +1 -1
  98. package/dist/umd/AuthPage/AuthPage.js +1 -1
  99. package/dist/umd/AuthPage/AuthPage.js.map +1 -1
  100. package/dist/umd/AuthPage/Information.js +1 -1
  101. package/dist/umd/AuthPage/Information.js.map +1 -1
  102. package/dist/umd/Banners/Banner.js +16 -16
  103. package/dist/umd/Banners/Banner.js.map +1 -1
  104. package/dist/umd/Button/DualFunctionButton.js +4 -0
  105. package/dist/umd/Button/DualFunctionButton.js.map +1 -1
  106. package/dist/umd/Button/Iconbutton.js +0 -1
  107. package/dist/umd/Button/Iconbutton.js.map +1 -1
  108. package/dist/umd/Dropdown/CommonStyling.js +4 -0
  109. package/dist/umd/Dropdown/CommonStyling.js.map +1 -1
  110. package/dist/umd/Dropdown/DropdownButton.js +5 -2
  111. package/dist/umd/Dropdown/DropdownButton.js.map +1 -1
  112. package/dist/umd/Dropdown/DropdownContent.js +6 -6
  113. package/dist/umd/Dropdown/DropdownContent.js.map +1 -1
  114. package/dist/umd/Dropdown/DropdownFilter.js.map +1 -1
  115. package/dist/umd/HyperLink/HyperLink.js +2 -1
  116. package/dist/umd/HyperLink/HyperLink.js.map +1 -1
  117. package/dist/umd/InputFields/Checkbox.js +23 -13
  118. package/dist/umd/InputFields/Checkbox.js.map +1 -1
  119. package/dist/umd/Modals/ModalDialog.js +7 -4
  120. package/dist/umd/Modals/ModalDialog.js.map +1 -1
  121. package/dist/umd/Modals/ModalNote.js +1 -1
  122. package/dist/umd/Modals/ModalNote.js.map +1 -1
  123. package/dist/umd/Table/Table.js +157 -188
  124. package/dist/umd/Table/Table.js.map +1 -1
  125. package/dist/umd/Table/TableBody.js +270 -0
  126. package/dist/umd/Table/TableBody.js.map +1 -0
  127. package/dist/umd/Table/TableFooter.js +89 -0
  128. package/dist/umd/Table/TableFooter.js.map +1 -0
  129. package/dist/umd/Table/TableHeaders.js +91 -0
  130. package/dist/umd/Table/TableHeaders.js.map +1 -0
  131. package/dist/umd/Table/TableStyles.js +185 -115
  132. package/dist/umd/Table/TableStyles.js.map +1 -1
  133. package/dist/umd/Table/__tests__/Table.test.js +164 -25
  134. package/dist/umd/Table/__tests__/Table.test.js.map +1 -1
  135. package/dist/umd/Tabs/TabLink.js +1 -0
  136. package/dist/umd/Tabs/TabLink.js.map +1 -1
  137. package/dist/umd/styles/typography.js +66 -66
  138. package/dist/umd/styles/typography.js.map +1 -1
  139. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Modals/ModalDialog.tsx"],"names":["React","Button","IconButton","ArrowLineLeft","Close","Help","COLORS","ComponentL","ComponentM","ComponentTextStyle","ComponentXL","Size","ModalContainer","BackButtonWrapper","CloseButtonWrapper","Column","FlexContainer","ModalBody","ModalFooter","ModalHeaderActions","ModalHeaderActionsWithImage","ModalTitleSection","StyledModalHeader","ModalHoverModifier","ModalNote","TooltipWrapper","HyperLink","ModalDialog","size","isModalOpen","closeModalAndClearInput","title","topImage","buttons","leftFooterAction","backButton","closeAction","submitAction","tooltip","children","note","state","getMinWidth","Small","Large","Medium","getMaxWidth","getImageHeight","getMarginBottom","getPadding","ModalTitle","Bold","ModalTootip","XSmall","neutral_600","ModalCloseButton","onClick","black","ModalBackButton","getLeftActionIconElement","icon","cloneElement","LeftFooterAction","text","actionType","disabled","action","type","loading","variant","order","marginRight","href","map","b","i","id"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { Button, IconButton } from '../Button';\nimport { ArrowLineLeft, Close, Help } from '../icons/systemicons/SystemIcons';\nimport { COLORS, ComponentL, ComponentM, ComponentTextStyle, ComponentXL } from '../styles';\nimport { Size } from '../types';\nimport ModalContainer from './ModalContainer';\nimport {\n BackButtonWrapper,\n CloseButtonWrapper,\n Column,\n FlexContainer,\n ModalBody,\n ModalFooter,\n ModalHeaderActions,\n ModalHeaderActionsWithImage,\n ModalTitleSection,\n StyledModalHeader,\n ModalHoverModifier\n} from './ModalStyles';\n\nimport { ModalNote } from './ModalNote';\nimport { TooltipWrapper } from '../Tooltips';\nimport { ButtonAction, LeftFooterAction, LeftFooterButton, LeftFooterHyperlink } from './ModalTypes';\nimport { ReactNode } from 'react';\nimport { HyperLink } from '..';\n\ninterface NewModalProps {\n size?: Size;\n isModalOpen: boolean;\n closeModalAndClearInput: any;\n title?: string;\n topImage?: any;\n buttons?: ButtonAction[];\n leftFooterAction?: LeftFooterAction;\n tooltip?: string;\n backButton?: () => void;\n closeAction: () => void;\n submitAction: (event?: React.FormEvent<HTMLFormElement> | undefined) => void;\n note?: string;\n state?: string;\n}\n\nexport const ModalDialog: React.FunctionComponent<NewModalProps> = ({\n size,\n isModalOpen,\n closeModalAndClearInput,\n title,\n topImage,\n buttons,\n leftFooterAction,\n backButton,\n closeAction,\n submitAction,\n tooltip,\n children,\n note,\n state,\n}) => {\n const getMinWidth = () => {\n switch (size) {\n case Size.Small:\n return '320px';\n case Size.Large:\n return '640px';\n case Size.Medium:\n default:\n return '480px';\n }\n };\n\n const getMaxWidth = () => {\n switch (size) {\n case Size.Small:\n return '480px';\n case Size.Large:\n return '720px';\n case Size.Medium:\n default:\n return '640px';\n }\n };\n\n const getImageHeight = () => {\n switch (size) {\n case Size.Small:\n return 160;\n case Size.Medium:\n return 200;\n case Size.Large:\n return 240;\n default:\n return 200;\n }\n };\n\n const getMarginBottom = () => {\n switch (size) {\n case Size.Small:\n return '16px';\n case Size.Medium:\n return '24px';\n case Size.Large:\n return '32px';\n default:\n return '24px';\n }\n };\n\n const getPadding = () => {\n switch (size) {\n case Size.Small:\n return '16px 16px 8px';\n case Size.Medium:\n return '24px 24px 20px';\n case Size.Large:\n return '32px';\n default:\n return '24px 24px 16px';\n }\n };\n\n const ModalTitle = (title: string, size?: Size) => {\n switch (size) {\n case Size.Small:\n return <ComponentM textStyle={ComponentTextStyle.Bold}>{title}</ComponentM>;\n case Size.Medium:\n return <ComponentL textStyle={ComponentTextStyle.Bold}>{title}</ComponentL>;\n case Size.Large:\n return <ComponentXL textStyle={ComponentTextStyle.Bold}>{title}</ComponentXL>;\n default:\n return <ComponentL textStyle={ComponentTextStyle.Bold}>{title}</ComponentL>;\n }\n };\n\n const ModalTootip = (tooltip: string) => {\n return (\n <ModalHoverModifier>\n <TooltipWrapper delay=\"0s\" size={Size.XSmall} align=\"center\" position=\"top\" withArrow={false} label={tooltip}>\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => {}}>\n <Help size=\"24px\" color={COLORS.neutral_600} />\n </IconButton>\n </TooltipWrapper>\n </ModalHoverModifier>\n );\n };\n\n const ModalCloseButton = (onClick: any) => {\n return (\n <CloseButtonWrapper hasImage={!!topImage} size={size}>\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => onClick()} borderRadius={48}>\n <Close size=\"24px\" color={COLORS.black} />\n </IconButton>\n </CloseButtonWrapper>\n );\n };\n\n const ModalBackButton = () => {\n if (backButton) {\n return (\n <BackButtonWrapper hasImage={!!topImage} size={size}>\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => backButton()} borderRadius={48}>\n <ArrowLineLeft size=\"24px\" color={COLORS.black} />\n </IconButton>\n </BackButtonWrapper>\n );\n }\n };\n\n const getLeftActionIconElement = (icon: ReactNode) => {\n return React.cloneElement(icon as React.ReactElement, { size: size === Size.Small ? '20px' : size === Size.Large ? '28px' : '24px' });\n };\n\n const LeftFooterAction = (leftFooterAction: LeftFooterAction) => {\n const { text, actionType, disabled, icon, action } = leftFooterAction;\n switch (actionType) {\n case 'button':\n return (\n <Button\n id={'left-action-button'}\n type={(leftFooterAction as LeftFooterButton)?.type}\n disabled={disabled}\n loading={(leftFooterAction as LeftFooterButton)?.loading}\n icon={icon}\n size={size}\n onClick={action}\n variant={(leftFooterAction as LeftFooterButton)?.variant ?? 'secondary'}\n style={{ order: -1, marginRight: 'auto' }}>\n {text}\n </Button>\n );\n case 'hyperlink':\n return (\n <HyperLink id=\"left-action-hyperlink\" className=\"footer-action\" href={(leftFooterAction as LeftFooterHyperlink).href} disabled={disabled} variant=\"default\">\n {icon && getLeftActionIconElement(icon)}\n {text}\n </HyperLink>\n );\n case 'note':\n return (\n <div className=\"footer-action note\">\n {icon && getLeftActionIconElement(icon)}\n <span>{text}</span>\n </div>\n );\n }\n };\n\n return (\n <ModalContainer showModal={isModalOpen} closeModal={closeModalAndClearInput} minWidth={getMinWidth()} maxWidth={getMaxWidth()} modalHeight=\"auto\" padding={getPadding()}>\n <Column>\n <form onSubmit={submitAction}>\n {topImage && (\n <StyledModalHeader size={size} height={getImageHeight()} marginBottom={getMarginBottom()}>\n <img src={topImage} alt=\"Modal top\" />\n <ModalHeaderActionsWithImage hasBackButton={!!backButton}>\n {ModalBackButton()}\n {ModalCloseButton(closeAction)}\n </ModalHeaderActionsWithImage>\n </StyledModalHeader>\n )}\n <ModalTitleSection>\n <FlexContainer>\n {!topImage && ModalBackButton()}\n {title && ModalTitle(title, size)}\n </FlexContainer>\n <ModalHeaderActions>\n {tooltip && ModalTootip(tooltip)}\n {!topImage && ModalCloseButton(closeAction)}\n </ModalHeaderActions>\n </ModalTitleSection>\n\n <ModalBody size={size}>{children}</ModalBody>\n\n {note && <ModalNote note={note} state={state} size={size} />}\n\n <ModalFooter size={size}>\n {leftFooterAction && LeftFooterAction(leftFooterAction)}\n {buttons?.map((b, i) => (\n <Button key={b.id || i} id={b.id} disabled={b.disabled} loading={b.loading} size={size} onClick={b.action} type={b.type} variant={b.variant}>\n {b.text}\n </Button>\n ))}\n </ModalFooter>\n </form>\n </Column>\n </ModalContainer>\n );\n};\n\nexport default ModalDialog;\n"],"file":"ModalDialog.js"}
1
+ {"version":3,"sources":["../../../src/Modals/ModalDialog.tsx"],"names":["React","Button","IconButton","ArrowLineLeft","Close","Help","COLORS","ComponentL","ComponentM","ComponentTextStyle","ComponentXL","Size","ModalContainer","BackButtonWrapper","CloseButtonWrapper","Column","FlexContainer","ModalBody","ModalFooter","ModalHeaderActions","ModalHeaderActionsWithImage","ModalTitleSection","StyledModalHeader","ModalHoverModifier","ModalNote","TooltipWrapper","HyperLink","ModalDialog","size","isModalOpen","closeModalAndClearInput","title","topImage","buttons","leftFooterAction","backButton","closeAction","submitAction","tooltip","children","note","state","icon","getMinWidth","Small","Large","Medium","getMaxWidth","getImageHeight","getMarginBottom","getPadding","ModalTitle","Bold","ModalTootip","XSmall","neutral_600","ModalCloseButton","onClick","black","ModalBackButton","getLeftActionIconElement","cloneElement","LeftFooterAction","text","actionType","disabled","action","type","loading","variant","order","marginRight","href","map","b","i","id"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { Button, IconButton } from '../Button';\nimport { ArrowLineLeft, Close, Help } from '../icons/systemicons/SystemIcons';\nimport { COLORS, ComponentL, ComponentM, ComponentTextStyle, ComponentXL } from '../styles';\nimport { Size } from '../types';\nimport ModalContainer from './ModalContainer';\nimport {\n BackButtonWrapper,\n CloseButtonWrapper,\n Column,\n FlexContainer,\n ModalBody,\n ModalFooter,\n ModalHeaderActions,\n ModalHeaderActionsWithImage,\n ModalTitleSection,\n StyledModalHeader,\n ModalHoverModifier,\n} from './ModalStyles';\n\nimport { ModalNote } from './ModalNote';\nimport { TooltipWrapper } from '../Tooltips';\nimport { ButtonAction, LeftFooterAction, LeftFooterButton, LeftFooterHyperlink } from './ModalTypes';\nimport { ReactNode } from 'react';\nimport { HyperLink } from '..';\n\ninterface NewModalProps {\n size?: Size;\n isModalOpen: boolean;\n closeModalAndClearInput: any;\n title?: string;\n topImage?: any;\n buttons?: ButtonAction[];\n leftFooterAction?: LeftFooterAction;\n tooltip?: string;\n backButton?: () => void;\n closeAction: () => void;\n submitAction: (event?: React.FormEvent<HTMLFormElement> | undefined) => void;\n note?: string | React.ReactNode;\n state?: string;\n icon?: React.ReactNode;\n}\n\nexport const ModalDialog: React.FunctionComponent<NewModalProps> = ({\n size,\n isModalOpen,\n closeModalAndClearInput,\n title,\n topImage,\n buttons,\n leftFooterAction,\n backButton,\n closeAction,\n submitAction,\n tooltip,\n children,\n note,\n state,\n icon,\n}) => {\n const getMinWidth = () => {\n switch (size) {\n case Size.Small:\n return '320px';\n case Size.Large:\n return '640px';\n case Size.Medium:\n default:\n return '480px';\n }\n };\n\n const getMaxWidth = () => {\n switch (size) {\n case Size.Small:\n return '480px';\n case Size.Large:\n return '720px';\n case Size.Medium:\n default:\n return '640px';\n }\n };\n\n const getImageHeight = () => {\n switch (size) {\n case Size.Small:\n return 160;\n case Size.Medium:\n return 200;\n case Size.Large:\n return 240;\n default:\n return 200;\n }\n };\n\n const getMarginBottom = () => {\n switch (size) {\n case Size.Small:\n return '16px';\n case Size.Medium:\n return '24px';\n case Size.Large:\n return '32px';\n default:\n return '24px';\n }\n };\n\n const getPadding = () => {\n switch (size) {\n case Size.Small:\n return '16px 16px 8px';\n case Size.Medium:\n return '24px 24px 20px';\n case Size.Large:\n return '32px';\n default:\n return '24px 24px 16px';\n }\n };\n\n const ModalTitle = (title: string, size?: Size) => {\n switch (size) {\n case Size.Small:\n return <ComponentM textStyle={ComponentTextStyle.Bold}>{title}</ComponentM>;\n case Size.Medium:\n return <ComponentL textStyle={ComponentTextStyle.Bold}>{title}</ComponentL>;\n case Size.Large:\n return <ComponentXL textStyle={ComponentTextStyle.Bold}>{title}</ComponentXL>;\n default:\n return <ComponentL textStyle={ComponentTextStyle.Bold}>{title}</ComponentL>;\n }\n };\n\n const ModalTootip = (tooltip: string) => {\n return (\n <ModalHoverModifier>\n <TooltipWrapper delay=\"0s\" size={Size.XSmall} align=\"center\" position=\"top\" withArrow={false} label={tooltip}>\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => {}}>\n <Help size=\"24px\" color={COLORS.neutral_600} />\n </IconButton>\n </TooltipWrapper>\n </ModalHoverModifier>\n );\n };\n\n const ModalCloseButton = (onClick: any) => {\n return (\n <CloseButtonWrapper hasImage={!!topImage} size={size}>\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => onClick()} borderRadius={48}>\n <Close size=\"24px\" color={COLORS.black} />\n </IconButton>\n </CloseButtonWrapper>\n );\n };\n\n const ModalBackButton = () => {\n if (backButton) {\n return (\n <BackButtonWrapper hasImage={!!topImage} size={size}>\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => backButton()} borderRadius={48}>\n <ArrowLineLeft size=\"24px\" color={COLORS.black} />\n </IconButton>\n </BackButtonWrapper>\n );\n }\n };\n\n const getLeftActionIconElement = (icon: ReactNode) => {\n return React.cloneElement(icon as React.ReactElement, { size: size === Size.Small ? '20px' : size === Size.Large ? '28px' : '24px' });\n };\n\n const LeftFooterAction = (leftFooterAction: LeftFooterAction) => {\n const { text, actionType, disabled, icon, action } = leftFooterAction;\n switch (actionType) {\n case 'button':\n return (\n <Button\n id={'left-action-button'}\n type={(leftFooterAction as LeftFooterButton)?.type}\n disabled={disabled}\n loading={(leftFooterAction as LeftFooterButton)?.loading}\n icon={icon}\n size={size}\n onClick={action}\n variant={(leftFooterAction as LeftFooterButton)?.variant ?? 'secondary'}\n style={{ order: -1, marginRight: 'auto' }}>\n {text}\n </Button>\n );\n case 'hyperlink':\n return (\n <HyperLink id=\"left-action-hyperlink\" className=\"footer-action\" href={(leftFooterAction as LeftFooterHyperlink).href} disabled={disabled} variant=\"default\">\n {icon && getLeftActionIconElement(icon)}\n {text}\n </HyperLink>\n );\n case 'note':\n return (\n <div className=\"footer-action note\">\n {icon && getLeftActionIconElement(icon)}\n <span>{text}</span>\n </div>\n );\n }\n };\n\n return (\n <ModalContainer showModal={isModalOpen} closeModal={closeModalAndClearInput} minWidth={getMinWidth()} maxWidth={getMaxWidth()} modalHeight=\"auto\" padding={getPadding()}>\n <Column>\n <form onSubmit={submitAction}>\n {topImage && (\n <StyledModalHeader size={size} height={getImageHeight()} marginBottom={getMarginBottom()}>\n <img src={topImage} alt=\"Modal top\" />\n <ModalHeaderActionsWithImage hasBackButton={!!backButton}>\n {ModalBackButton()}\n {ModalCloseButton(closeAction)}\n </ModalHeaderActionsWithImage>\n </StyledModalHeader>\n )}\n <ModalTitleSection>\n <FlexContainer>\n {!topImage && ModalBackButton()}\n {title && ModalTitle(title, size)}\n </FlexContainer>\n <ModalHeaderActions>\n {tooltip && ModalTootip(tooltip)}\n {!topImage && ModalCloseButton(closeAction)}\n </ModalHeaderActions>\n </ModalTitleSection>\n\n <ModalBody size={size}>{children}</ModalBody>\n\n {note && <ModalNote note={note} state={state} size={size} icon={icon} />}\n\n <ModalFooter size={size}>\n {leftFooterAction && LeftFooterAction(leftFooterAction)}\n {buttons?.map((b, i) => (\n <Button key={b.id || i} id={b.id} disabled={b.disabled} loading={b.loading} size={size} onClick={b.action} type={b.type} variant={b.variant}>\n {b.text}\n </Button>\n ))}\n </ModalFooter>\n </form>\n </Column>\n </ModalContainer>\n );\n};\n\nexport default ModalDialog;\n"],"file":"ModalDialog.js"}
@@ -47,7 +47,7 @@ export const ModalNote = ({
47
47
  }
48
48
  };
49
49
  ModalNote.propTypes = {
50
- note: _pt.string.isRequired,
50
+ note: _pt.oneOfType([_pt.string, _pt.node]).isRequired,
51
51
  icon: _pt.node,
52
52
  state: _pt.string,
53
53
  size: _pt.string
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Modals/ModalNote.tsx"],"names":["React","COLORS","CheckComplete","Information","TechnicalWarning","ModalNoteSection","ModalNote","note","icon","size","state","stateVal","toLowerCase","correct_500","warning_500","primary_500"],"mappings":";AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,MAAT,QAAuB,IAAvB;AACA,SAASC,aAAT,EAAwBC,WAAxB,EAAqCC,gBAArC,QAA6D,kCAA7D;AACA,SAAQC,gBAAR,QAA+B,eAA/B;AASA,OAAO,MAAMC,SAA8C,GAAG,CAAC;AAACC,EAAAA,IAAD;AAAOC,EAAAA,IAAP;AAAaC,EAAAA,IAAb;AAAmBC,EAAAA,KAAK,GAAC;AAAzB,CAAD,KAAyC;AACnG,QAAMC,QAAQ,GAAGD,KAAK,CAACE,WAAN,EAAjB;;AAEA,UAAOD,QAAP;AACI,SAAK,UAAL;AAAiB,0BACb,oBAAC,gBAAD;AAAkB,QAAA,KAAK,EAAEA,QAAzB;AAAmC,QAAA,IAAI,EAAEF;AAAzC,SACKD,IAAI,GAAGA,IAAH,gBAAU,oBAAC,aAAD;AAAe,QAAA,KAAK,EAAEP,MAAM,CAACY;AAA7B,QADnB,eAEI,kCAAON,IAAP,CAFJ,CADa;;AAOjB,SAAK,SAAL;AAAgB,0BACZ,oBAAC,gBAAD;AAAkB,QAAA,KAAK,EAAEI,QAAzB;AAAmC,QAAA,IAAI,EAAEF;AAAzC,SACKD,IAAI,GAAGA,IAAH,gBAAU,oBAAC,gBAAD;AAAkB,QAAA,KAAK,EAAEP,MAAM,CAACa;AAAhC,QADnB,eAEI,kCAAOP,IAAP,CAFJ,CADY;;AAOhB,SAAK,UAAL;AAAiB,0BACb,oBAAC,gBAAD;AAAkB,QAAA,KAAK,EAAEI,QAAzB;AAAmC,QAAA,IAAI,EAAEF;AAAzC,SACKD,IAAI,GAAGA,IAAH,gBAAU,oBAAC,gBAAD;AAAkB,QAAA,KAAK,EAAEP,MAAM,CAACa;AAAhC,QADnB,eAEI,kCAAOP,IAAP,CAFJ,CADa;;AAOjB;AAAS,0BACL,oBAAC,gBAAD;AAAkB,QAAA,KAAK,EAAEI,QAAzB;AAAmC,QAAA,IAAI,EAAEF;AAAzC,SACKD,IAAI,GAAGA,IAAH,gBAAU,oBAAC,WAAD;AAAa,QAAA,KAAK,EAAEP,MAAM,CAACc,WAA3B;AAAwC,QAAA,SAAS,EAAEN;AAAnD,QADnB,eAEI,kCAAOF,IAAP,CAFJ,CADK;AAtBb;AA+BH,CAlCM;;AANHA,EAAAA,I;AACAC,EAAAA,I;AACAE,EAAAA,K;AACAD,EAAAA,I;;AAuCJ,eAAeH,SAAf","sourcesContent":["import * as React from 'react';\nimport { COLORS } from '..';\nimport { CheckComplete, Information, TechnicalWarning } from '../icons/systemicons/SystemIcons';\nimport {ModalNoteSection} from './ModalStyles'\n\ninterface NoteProps {\n note: string;\n icon?: React.ReactNode;\n state?: string;\n size?: string;\n}\n\nexport const ModalNote : React.FunctionComponent<NoteProps> = ({note, icon, size, state='neutral'}) => { \n const stateVal = state.toLowerCase();\n\n switch(stateVal) {\n case 'positive': return (\n <ModalNoteSection state={stateVal} size={size}>\n {icon ? icon : <CheckComplete color={COLORS.correct_500}/>}\n <span>{note}</span>\n </ModalNoteSection>\n );\n\n case 'warning': return (\n <ModalNoteSection state={stateVal} size={size}>\n {icon ? icon : <TechnicalWarning color={COLORS.warning_500}/>}\n <span>{note}</span>\n </ModalNoteSection>\n );\n\n case 'critical': return (\n <ModalNoteSection state={stateVal} size={size}>\n {icon ? icon : <TechnicalWarning color={COLORS.warning_500}/>}\n <span>{note}</span>\n </ModalNoteSection>\n );\n\n default: return (\n <ModalNoteSection state={stateVal} size={size}>\n {icon ? icon : <Information color={COLORS.primary_500} className={size}/>}\n <span>{note}</span>\n </ModalNoteSection>\n );\n }\n \n \n};\n\nexport default ModalNote;"],"file":"ModalNote.js"}
1
+ {"version":3,"sources":["../../../src/Modals/ModalNote.tsx"],"names":["React","COLORS","CheckComplete","Information","TechnicalWarning","ModalNoteSection","ModalNote","note","icon","size","state","stateVal","toLowerCase","correct_500","warning_500","primary_500"],"mappings":";AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,MAAT,QAAuB,IAAvB;AACA,SAASC,aAAT,EAAwBC,WAAxB,EAAqCC,gBAArC,QAA6D,kCAA7D;AACA,SAASC,gBAAT,QAAiC,eAAjC;AASA,OAAO,MAAMC,SAA6C,GAAG,CAAC;AAAEC,EAAAA,IAAF;AAAQC,EAAAA,IAAR;AAAcC,EAAAA,IAAd;AAAoBC,EAAAA,KAAK,GAAG;AAA5B,CAAD,KAA6C;AACxG,QAAMC,QAAQ,GAAGD,KAAK,CAACE,WAAN,EAAjB;;AAEA,UAAQD,QAAR;AACE,SAAK,UAAL;AACE,0BACE,oBAAC,gBAAD;AAAkB,QAAA,KAAK,EAAEA,QAAzB;AAAmC,QAAA,IAAI,EAAEF;AAAzC,SACGD,IAAI,GAAGA,IAAH,gBAAU,oBAAC,aAAD;AAAe,QAAA,KAAK,EAAEP,MAAM,CAACY;AAA7B,QADjB,eAEE,kCAAON,IAAP,CAFF,CADF;;AAOF,SAAK,SAAL;AACE,0BACE,oBAAC,gBAAD;AAAkB,QAAA,KAAK,EAAEI,QAAzB;AAAmC,QAAA,IAAI,EAAEF;AAAzC,SACGD,IAAI,GAAGA,IAAH,gBAAU,oBAAC,gBAAD;AAAkB,QAAA,KAAK,EAAEP,MAAM,CAACa;AAAhC,QADjB,eAEE,kCAAOP,IAAP,CAFF,CADF;;AAOF,SAAK,UAAL;AACE,0BACE,oBAAC,gBAAD;AAAkB,QAAA,KAAK,EAAEI,QAAzB;AAAmC,QAAA,IAAI,EAAEF;AAAzC,SACGD,IAAI,GAAGA,IAAH,gBAAU,oBAAC,gBAAD;AAAkB,QAAA,KAAK,EAAEP,MAAM,CAACa;AAAhC,QADjB,eAEE,kCAAOP,IAAP,CAFF,CADF;;AAOF;AACE,0BACE,oBAAC,gBAAD;AAAkB,QAAA,KAAK,EAAEI,QAAzB;AAAmC,QAAA,IAAI,EAAEF;AAAzC,SACGD,IAAI,GAAGA,IAAH,gBAAU,oBAAC,WAAD;AAAa,QAAA,KAAK,EAAEP,MAAM,CAACc,WAA3B;AAAwC,QAAA,SAAS,EAAEN;AAAnD,QADjB,eAEE,kCAAOF,IAAP,CAFF,CADF;AA1BJ;AAiCD,CApCM;;AANLA,EAAAA,I;AACAC,EAAAA,I;AACAE,EAAAA,K;AACAD,EAAAA,I;;AAyCF,eAAeH,SAAf","sourcesContent":["import * as React from 'react';\nimport { COLORS } from '..';\nimport { CheckComplete, Information, TechnicalWarning } from '../icons/systemicons/SystemIcons';\nimport { ModalNoteSection } from './ModalStyles';\n\ninterface NoteProps {\n note: string | React.ReactNode;\n icon?: React.ReactNode;\n state?: string;\n size?: string;\n}\n\nexport const ModalNote: React.FunctionComponent<NoteProps> = ({ note, icon, size, state = 'neutral' }) => {\n const stateVal = state.toLowerCase();\n\n switch (stateVal) {\n case 'positive':\n return (\n <ModalNoteSection state={stateVal} size={size}>\n {icon ? icon : <CheckComplete color={COLORS.correct_500} />}\n <span>{note}</span>\n </ModalNoteSection>\n );\n\n case 'warning':\n return (\n <ModalNoteSection state={stateVal} size={size}>\n {icon ? icon : <TechnicalWarning color={COLORS.warning_500} />}\n <span>{note}</span>\n </ModalNoteSection>\n );\n\n case 'critical':\n return (\n <ModalNoteSection state={stateVal} size={size}>\n {icon ? icon : <TechnicalWarning color={COLORS.warning_500} />}\n <span>{note}</span>\n </ModalNoteSection>\n );\n\n default:\n return (\n <ModalNoteSection state={stateVal} size={size}>\n {icon ? icon : <Information color={COLORS.primary_500} className={size} />}\n <span>{note}</span>\n </ModalNoteSection>\n );\n }\n};\n\nexport default ModalNote;\n"],"file":"ModalNote.js"}
@@ -1,3 +1,5 @@
1
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
1
3
  /**
2
4
  * Import React libraries.
3
5
  */
@@ -6,39 +8,40 @@ import * as React from 'react';
6
8
  * Import custom components.
7
9
  */
8
10
 
9
- import { MoreVertical, ChevronRight, ChevronLeft, ArrowLineDown, ArrowLineUp } from '../icons/systemicons/SystemIcons';
10
- import { SystemIcons as icons } from '../icons/index';
11
- import { DropdownFilter } from '../Dropdown/index';
12
- import { IconButton, Button } from '../Button/index';
13
11
  import { Size } from '../types';
14
12
  /**
15
13
  * Import custom styles.
16
14
  */
17
15
 
18
- import { COLORS } from '../styles';
19
- import { TableHeaderRowCol, TableColumnHeaderCol, TableContainer, TableDataCol, TableDataRow, TableFooterCol, TableWrapper, TableLoadingIndicator } from './TableStyles';
16
+ import { StyledTable, StyledTableSpinner, TableWrapper } from './TableStyles';
20
17
  /**
21
18
  * Import custom types.
22
19
  */
23
20
 
24
21
  import { LoadingIndicator } from '../LoadingIndicator';
22
+ import TableHeader from './TableHeaders';
23
+ import TableFooter from './TableFooter';
24
+ import TableBody from './TableBody';
25
+
26
+ const Table = props => {
27
+ let {
28
+ onPreviousPageClick,
29
+ onNextPageClick,
30
+ onRowsPerPageChange,
31
+ onTriggerSortingChange,
32
+ columns,
33
+ rows,
34
+ remoteOperations,
35
+ pagination,
36
+ showLoadingIndicator,
37
+ selectable,
38
+ multiSelect,
39
+ keyExpr,
40
+ accordion,
41
+ collapsed = true,
42
+ collapsedRows
43
+ } = props; // States used within the component
25
44
 
26
- const Table = ({
27
- rowClick,
28
- linkClick,
29
- iconClick,
30
- previousPageClick,
31
- nextPageClick,
32
- rowsPerPageChange,
33
- triggerSortingChange,
34
- title,
35
- columns,
36
- rows,
37
- remotePagination,
38
- pagination,
39
- showLoadingIndicator
40
- }) => {
41
- // States used within the component
42
45
  const [rowsPerPage, setRowsPerPage] = React.useState(10);
43
46
  const [filteredRows, setFilteredRows] = React.useState([]);
44
47
  const [currentPageRows, setCurrentPageRows] = React.useState([]);
@@ -48,13 +51,30 @@ const Table = ({
48
51
  const [from, setFrom] = React.useState();
49
52
  const [to, setTo] = React.useState();
50
53
  const [total, setTotal] = React.useState();
54
+ const [isCollapsed, setIsCollapsed] = React.useState(true);
55
+ const [selectAllState, setSelectAllState] = React.useState('none');
56
+ const [selected, setSelected] = React.useState(multiSelect ? [] : undefined);
57
+ React.useEffect(() => {
58
+ setSelected(props.selectedRows || (multiSelect ? [] : undefined));
59
+ }, [props.selectedRows, multiSelect]);
60
+ /**
61
+ * update select all checkbox state
62
+ */
63
+
64
+ React.useEffect(() => {
65
+ if (multiSelect) {
66
+ const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);
67
+ const count = selected.filter(item => currentList.includes(item)).length;
68
+ setSelectAllState(count === currentList.length ? 'all' : count > 0 ? 'some' : 'none');
69
+ }
70
+ }, [currentPageRows, multiSelect, selected, keyExpr]);
51
71
  /**
52
72
  * Takes care of local pagination.
53
73
  * Works only in case remote pagination is not defined or is set to false.
54
74
  */
55
75
 
56
76
  React.useEffect(() => {
57
- if (!remotePagination) {
77
+ if (!remoteOperations) {
58
78
  // Let's retrieve temporary filtered rows and update globally filtered rows
59
79
  const tmpFilteredRows = filterAndSortRows();
60
80
  setFilteredRows(tmpFilteredRows);
@@ -68,14 +88,14 @@ const Table = ({
68
88
 
69
89
  setCurrentPageRows(tmpFilteredRows.slice(rowsFrom, rowsTo));
70
90
  }
71
- }, [rowsPerPage, rows, currentPage, columns, sortedColumn, sortedDirection, remotePagination]);
91
+ }, [rowsPerPage, rows, currentPage, columns, sortedColumn, sortedDirection, remoteOperations]);
72
92
  /**
73
93
  * Takes care of remote pagination.
74
94
  * Works only in case remote pagination is set to true.
75
95
  */
76
96
 
77
97
  React.useEffect(() => {
78
- if (remotePagination) {
98
+ if (remoteOperations) {
79
99
  setCurrentPageRows(rows); // Let's assign pagination values
80
100
 
81
101
  setFrom(pagination?.from);
@@ -84,7 +104,19 @@ const Table = ({
84
104
  setCurrentPage(pagination?.currentPage);
85
105
  setRowsPerPage(pagination?.rowsPerPage);
86
106
  }
87
- }, [remotePagination, pagination, rows]);
107
+ }, [remoteOperations, pagination, rows]);
108
+ /**
109
+ * Sets number of rows to display when accordion.
110
+ */
111
+
112
+ React.useEffect(() => {
113
+ if (!accordion) return;
114
+ setRowsPerPage(isCollapsed ? collapsedRows || 10 : rows.length);
115
+ }, [rows, accordion, collapsedRows, isCollapsed]);
116
+ React.useEffect(() => {
117
+ if (!accordion) return;
118
+ setIsCollapsed(!!collapsed);
119
+ }, [accordion, collapsed]);
88
120
  /**
89
121
  * Filters out a rows by specific column filters and sorts them if any sorting is set.
90
122
  * @returns Filtered and sorted rows.
@@ -153,8 +185,8 @@ const Table = ({
153
185
  setSortedColumn(column.key);
154
186
  setSortedDirection('desc'); // Let's trigger remote sorting trigger function
155
187
 
156
- if (remotePagination && triggerSortingChange) {
157
- triggerSortingChange(column.key, 'desc');
188
+ if (remoteOperations && onTriggerSortingChange) {
189
+ onTriggerSortingChange(column.key, 'desc');
158
190
  }
159
191
  } else {
160
192
  tmpColumn.sortingDirection = 'asc'; // Update sorted column and direction
@@ -162,8 +194,8 @@ const Table = ({
162
194
  setSortedColumn(column.key);
163
195
  setSortedDirection('asc'); // Let's trigger remote sorting trigger function
164
196
 
165
- if (remotePagination && triggerSortingChange) {
166
- triggerSortingChange(column.key, 'asc');
197
+ if (remoteOperations && onTriggerSortingChange) {
198
+ onTriggerSortingChange(column.key, 'asc');
167
199
  }
168
200
  }
169
201
  } else {
@@ -173,8 +205,8 @@ const Table = ({
173
205
  setSortedColumn(column.key);
174
206
  setSortedDirection('asc'); // Let's trigger remote sorting trigger function
175
207
 
176
- if (remotePagination && triggerSortingChange) {
177
- triggerSortingChange(column.key, 'asc');
208
+ if (remoteOperations && onTriggerSortingChange) {
209
+ onTriggerSortingChange(column.key, 'asc');
178
210
  }
179
211
  }
180
212
  } else if (tmpColumn.sortingDirection !== undefined) {
@@ -191,10 +223,10 @@ const Table = ({
191
223
 
192
224
 
193
225
  const previousPage = () => {
194
- if (remotePagination) {
226
+ if (remoteOperations) {
195
227
  // Let's inform parent component about page change
196
- if (previousPageClick) {
197
- previousPageClick();
228
+ if (onPreviousPageClick) {
229
+ onPreviousPageClick();
198
230
  }
199
231
  } else {
200
232
  // Let's change the page within the component
@@ -207,10 +239,10 @@ const Table = ({
207
239
 
208
240
 
209
241
  const nextPage = () => {
210
- if (remotePagination) {
242
+ if (remoteOperations) {
211
243
  // Let's inform parent component about page change
212
- if (nextPageClick) {
213
- nextPageClick();
244
+ if (onNextPageClick) {
245
+ onNextPageClick();
214
246
  }
215
247
  } else {
216
248
  // Let's change the page within the component
@@ -225,10 +257,10 @@ const Table = ({
225
257
 
226
258
  const changeRowsPerPage = value => {
227
259
  // Let's check if we are using remote pagination
228
- if (remotePagination) {
260
+ if (remoteOperations) {
229
261
  // Inform parent component about rows per page change
230
- if (rowsPerPageChange) {
231
- rowsPerPageChange(parseInt(value));
262
+ if (onRowsPerPageChange) {
263
+ onRowsPerPageChange(value);
232
264
  }
233
265
  } else {
234
266
  // Let's reset current page to 1
@@ -236,172 +268,90 @@ const Table = ({
236
268
  } // Let's set rows per page
237
269
 
238
270
 
239
- setRowsPerPage(parseInt(value));
240
- };
241
- /**
242
- * Renders the table header.
243
- */
244
-
245
-
246
- const renderHeader = () => {
247
- return /*#__PURE__*/React.createElement("thead", null, title && /*#__PURE__*/React.createElement("tr", {
248
- "data-testid": "TestTableHeaderRow"
249
- }, /*#__PURE__*/React.createElement(TableHeaderRowCol, {
250
- colSpan: columns.length
251
- }, /*#__PURE__*/React.createElement("div", null, title, /*#__PURE__*/React.createElement(MoreVertical, {
252
- size: "18px",
253
- color: COLORS.neutral_600
254
- })))), /*#__PURE__*/React.createElement("tr", {
255
- "data-testid": "TestTableColumnHeaderRow"
256
- }, columns.map(column => /*#__PURE__*/React.createElement(TableColumnHeaderCol, {
257
- onClick: () => sortTableColumn(column),
258
- key: column.key,
259
- style: {
260
- width: column.width
261
- },
262
- className: `${column.sortable ? 'sortable' : ''} ${!title ? 'no-border' : ''} ${column.justify ? `justify-${column.justify}` : ''}`
263
- }, column.name, column.sortingDirection === 'asc' ? /*#__PURE__*/React.createElement(ArrowLineUp, {
264
- size: "20px"
265
- }) : column.sortingDirection === 'desc' ? /*#__PURE__*/React.createElement(ArrowLineDown, {
266
- size: "20px"
267
- }) : ''))));
271
+ setRowsPerPage(value);
268
272
  };
269
273
  /**
270
- * Function which is called when a mouse click happens on a link to pass data to the parent component.
274
+ * Function which is called when a mouse click happens on a row to pass data to the parent component.
271
275
  * @param row - Row in which the link is located.
272
- * @param key - Key of the column for which the link is set.
273
- * @param event - Click event handler.
274
276
  */
275
277
 
276
278
 
277
- const onLinkClick = (row, key, event) => {
278
- if (linkClick) {
279
- event.stopPropagation();
280
- linkClick(row, key);
281
- }
282
- };
283
- /**
284
- * Function which is called when a mouse click happens on an icon to pass data to the parent component.
285
- * @param row - Row in which the icon is located.
286
- * @param key - Key of the column for which the icon is set.
287
- * @param event - Click event handler.
288
- */
289
-
279
+ const onRowClick = row => {
280
+ const selectedText = window?.getSelection()?.toString();
290
281
 
291
- const onIconClick = (row, key, event) => {
292
- if (iconClick) {
293
- event.stopPropagation();
294
- iconClick(row, key);
295
- }
296
- };
297
- /**
298
- * Function which is called when a mouse click happens on a row to pass data to the parent component.
299
- * @param row - Row in which the link is located.
300
- */
282
+ if (selectedText?.length === 0 && selectable) {
283
+ const value = keyExpr ? row[keyExpr] : row;
284
+ let currentSelection = value;
301
285
 
286
+ if (!!multiSelect) {
287
+ const existing = selected?.indexOf(value);
302
288
 
303
- const onRowClick = row => {
304
- const selectedText = window?.getSelection()?.toString(); // Let's trigger row click only if we haven't selected any text and action exists
289
+ if (existing > -1) {
290
+ currentSelection = [...selected];
291
+ currentSelection.splice(existing, 1);
292
+ } else {
293
+ currentSelection = [...selected, currentSelection];
294
+ }
295
+ }
305
296
 
306
- if (selectedText?.length === 0 && rowClick) {
307
- rowClick(row);
297
+ setSelected(currentSelection);
298
+ props.onSelectionChange && props.onSelectionChange(currentSelection);
308
299
  }
309
300
  };
310
301
  /**
311
- * Renders the table body.
302
+ * Function which is called when user clicks checkbox to select or deselect all rows.
312
303
  */
313
304
 
314
305
 
315
- const renderBody = () => {
316
- return /*#__PURE__*/React.createElement("tbody", null, currentPageRows.length > 0 ? currentPageRows.map((row, index) => /*#__PURE__*/React.createElement(TableDataRow, {
317
- key: `row_${index}`,
318
- onClick: () => onRowClick(row),
319
- "data-testid": "TestTableDataRow"
320
- }, columns.map(column => /*#__PURE__*/React.createElement(TableDataCol, {
321
- key: `row_${index}_${column.key}`,
322
- style: column.colorFn ? {
323
- color: column.colorFn(row, column.key),
324
- maxWidth: column.width
325
- } : {
326
- maxWidth: column.width
327
- },
328
- className: `${column.shortenText && `truncate-text`} ${column.justify ? `justify-${column.justify}` : ''} `,
329
- title: column.shortenText && row[column.key]
330
- }, column.isLink && row[column.key] ? /*#__PURE__*/React.createElement(Button, {
331
- size: Size.Small,
332
- variant: "tertiary",
333
- onClick: event => onLinkClick(row, column.key, event),
334
- style: column.colorFn && {
335
- color: column.colorFn(row, column.key)
336
- }
337
- }, row[column.key]) : column.isIcon && column.icon ? /*#__PURE__*/React.createElement(IconButton, {
338
- variant: "secondary",
339
- shape: "circular",
340
- useTransparentBackground: true,
341
- action: event => onIconClick(row, column.key, event)
342
- }, icons[column.icon]({
343
- size: '24',
344
- className: 'icon'
345
- })) : column.customContent ? column.customContent(row, column.key) : row[column.key])))) : /*#__PURE__*/React.createElement(TableDataRow, {
346
- className: "no-rows",
347
- "data-testid": "TestTableNoDataRow"
348
- }, /*#__PURE__*/React.createElement(TableDataCol, {
349
- colSpan: columns.length,
350
- className: "center"
351
- }, "There are no rows to display")));
352
- };
353
- /**
354
- * Renders the table footer.
355
- */
306
+ const onSelectAllClick = () => {
307
+ const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);
356
308
 
309
+ switch (selectAllState) {
310
+ case 'all':
311
+ setSelected([...selected].filter(item => !currentList.includes(item)));
312
+ setSelectAllState('none');
313
+ break;
357
314
 
358
- const renderFooter = () => {
359
- // Define local values used within the footer
360
- const rowsPerPageValues = ['10', '20', '50', '100'];
361
- return /*#__PURE__*/React.createElement("tfoot", null, /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement(TableFooterCol, {
362
- colSpan: columns.length,
363
- "data-testid": "TestTableFooterRow"
364
- }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("span", null, "Rows per page: "), /*#__PURE__*/React.createElement(DropdownFilter, {
365
- id: "rows-per-page",
366
- list: rowsPerPageValues.map(x => ({
367
- label: x
368
- })),
369
- disableSorting: true,
370
- onSelect: value => changeRowsPerPage(value),
371
- initalValue: rowsPerPage.toString(),
372
- isButton: true
373
- }), /*#__PURE__*/React.createElement("span", {
374
- className: "current-page-info"
375
- }, total === 0 ? 0 : from, "-", to, " of ", total), /*#__PURE__*/React.createElement("div", {
376
- className: "controls"
377
- }, /*#__PURE__*/React.createElement(IconButton, {
378
- variant: "secondary",
379
- shape: "circular",
380
- action: () => previousPage(),
381
- disabled: from === 1
382
- }, /*#__PURE__*/React.createElement(ChevronLeft, {
383
- size: "24",
384
- color: COLORS.neutral_600
385
- })), /*#__PURE__*/React.createElement(IconButton, {
386
- variant: "secondary",
387
- shape: "circular",
388
- action: () => nextPage(),
389
- disabled: to === total
390
- }, /*#__PURE__*/React.createElement(ChevronRight, {
391
- size: "24",
392
- color: COLORS.neutral_600
393
- })))))));
315
+ case 'none':
316
+ setSelected([...selected, ...currentList]);
317
+ setSelectAllState('all');
318
+ break;
319
+
320
+ case 'some':
321
+ setSelected([...selected, ...currentList.filter(item => !selected.includes(item))]);
322
+ setSelectAllState('all');
323
+ break;
324
+ }
394
325
  };
395
326
  /**
396
327
  * Return Table component.
397
328
  */
398
329
 
399
330
 
400
- return /*#__PURE__*/React.createElement(TableWrapper, null, /*#__PURE__*/React.createElement(TableContainer, {
331
+ return /*#__PURE__*/React.createElement(TableWrapper, null, /*#__PURE__*/React.createElement(StyledTable, {
401
332
  cellPadding: "0",
402
333
  cellSpacing: "0",
403
- "data-testid": "TestTable"
404
- }, renderHeader(), renderBody(), renderFooter()), showLoadingIndicator && /*#__PURE__*/React.createElement(TableLoadingIndicator, null, /*#__PURE__*/React.createElement(LoadingIndicator, {
334
+ "data-testid": "TestTable",
335
+ className: 'table'
336
+ }, /*#__PURE__*/React.createElement(TableHeader, _extends({}, props, {
337
+ sortByColumn: sortTableColumn,
338
+ onSelectAllClick: onSelectAllClick,
339
+ selectAllState: selectAllState
340
+ })), /*#__PURE__*/React.createElement(TableBody, _extends({}, props, {
341
+ currentPageRows: currentPageRows,
342
+ selected: selected,
343
+ onRowClick: onRowClick
344
+ })), /*#__PURE__*/React.createElement(TableFooter, _extends({}, props, {
345
+ onRowsPerPageChange: changeRowsPerPage,
346
+ rowsPerPage: rowsPerPage,
347
+ setIsCollapsed: setIsCollapsed,
348
+ isCollapsed: isCollapsed,
349
+ from: from,
350
+ to: to,
351
+ total: total,
352
+ nextPage: nextPage,
353
+ prevPage: previousPage
354
+ }))), showLoadingIndicator && /*#__PURE__*/React.createElement(StyledTableSpinner, null, /*#__PURE__*/React.createElement(LoadingIndicator, {
405
355
  size: Size.Medium,
406
356
  color: "#ffffff"
407
357
  })));