@coveord/plasma-mantine 52.26.6 → 52.27.1

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 (66) hide show
  1. package/.turbo/turbo-build.log +3 -3
  2. package/.turbo/turbo-test.log +35 -34
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/cjs/components/table/Table.d.ts.map +1 -1
  5. package/dist/cjs/components/table/Table.js +7 -3
  6. package/dist/cjs/components/table/Table.js.map +1 -1
  7. package/dist/cjs/components/table/Table.styles.d.ts +1 -0
  8. package/dist/cjs/components/table/Table.styles.d.ts.map +1 -1
  9. package/dist/cjs/components/table/Table.styles.js +6 -5
  10. package/dist/cjs/components/table/Table.styles.js.map +1 -1
  11. package/dist/cjs/components/table/Table.types.d.ts +8 -2
  12. package/dist/cjs/components/table/Table.types.d.ts.map +1 -1
  13. package/dist/cjs/components/table/layouts/RowLayout.js +2 -1
  14. package/dist/cjs/components/table/layouts/RowLayout.js.map +1 -1
  15. package/dist/cjs/components/table/table-columns-selector/TableColumnsSelector.d.ts +4 -0
  16. package/dist/cjs/components/table/table-columns-selector/TableColumnsSelector.d.ts.map +1 -0
  17. package/dist/cjs/components/table/table-columns-selector/TableColumnsSelector.js +99 -0
  18. package/dist/cjs/components/table/table-columns-selector/TableColumnsSelector.js.map +1 -0
  19. package/dist/cjs/components/table/table-columns-selector/TableColumnsSelector.styles.d.ts +10 -0
  20. package/dist/cjs/components/table/table-columns-selector/TableColumnsSelector.styles.d.ts.map +1 -0
  21. package/dist/cjs/components/table/table-columns-selector/TableColumnsSelector.styles.js +23 -0
  22. package/dist/cjs/components/table/table-columns-selector/TableColumnsSelector.styles.js.map +1 -0
  23. package/dist/cjs/components/table/table-columns-selector/TableColumnsSelector.types.d.ts +46 -0
  24. package/dist/cjs/components/table/table-columns-selector/TableColumnsSelector.types.d.ts.map +1 -0
  25. package/dist/cjs/components/table/table-columns-selector/TableColumnsSelector.types.js +6 -0
  26. package/dist/cjs/components/table/table-columns-selector/TableColumnsSelector.types.js.map +1 -0
  27. package/dist/cjs/theme/Theme.d.ts.map +1 -1
  28. package/dist/cjs/theme/Theme.js +10 -0
  29. package/dist/cjs/theme/Theme.js.map +1 -1
  30. package/dist/esm/components/table/Table.d.ts.map +1 -1
  31. package/dist/esm/components/table/Table.js +6 -2
  32. package/dist/esm/components/table/Table.js.map +1 -1
  33. package/dist/esm/components/table/Table.styles.d.ts +1 -0
  34. package/dist/esm/components/table/Table.styles.d.ts.map +1 -1
  35. package/dist/esm/components/table/Table.styles.js +6 -5
  36. package/dist/esm/components/table/Table.styles.js.map +1 -1
  37. package/dist/esm/components/table/Table.types.d.ts +8 -2
  38. package/dist/esm/components/table/Table.types.d.ts.map +1 -1
  39. package/dist/esm/components/table/Table.types.js.map +1 -1
  40. package/dist/esm/components/table/layouts/RowLayout.js +1 -1
  41. package/dist/esm/components/table/layouts/RowLayout.js.map +1 -1
  42. package/dist/esm/components/table/table-columns-selector/TableColumnsSelector.d.ts +4 -0
  43. package/dist/esm/components/table/table-columns-selector/TableColumnsSelector.d.ts.map +1 -0
  44. package/dist/esm/components/table/table-columns-selector/TableColumnsSelector.js +84 -0
  45. package/dist/esm/components/table/table-columns-selector/TableColumnsSelector.js.map +1 -0
  46. package/dist/esm/components/table/table-columns-selector/TableColumnsSelector.styles.d.ts +10 -0
  47. package/dist/esm/components/table/table-columns-selector/TableColumnsSelector.styles.d.ts.map +1 -0
  48. package/dist/esm/components/table/table-columns-selector/TableColumnsSelector.styles.js +11 -0
  49. package/dist/esm/components/table/table-columns-selector/TableColumnsSelector.styles.js.map +1 -0
  50. package/dist/esm/components/table/table-columns-selector/TableColumnsSelector.types.d.ts +46 -0
  51. package/dist/esm/components/table/table-columns-selector/TableColumnsSelector.types.d.ts.map +1 -0
  52. package/dist/esm/components/table/table-columns-selector/TableColumnsSelector.types.js +3 -0
  53. package/dist/esm/components/table/table-columns-selector/TableColumnsSelector.types.js.map +1 -0
  54. package/dist/esm/theme/Theme.d.ts.map +1 -1
  55. package/dist/esm/theme/Theme.js +8 -0
  56. package/dist/esm/theme/Theme.js.map +1 -1
  57. package/package.json +3 -3
  58. package/src/components/table/Table.styles.ts +6 -5
  59. package/src/components/table/Table.tsx +6 -1
  60. package/src/components/table/Table.types.ts +8 -1
  61. package/src/components/table/__tests__/TableColumnsSelector.spec.tsx +260 -0
  62. package/src/components/table/layouts/RowLayout.tsx +1 -1
  63. package/src/components/table/table-columns-selector/TableColumnsSelector.styles.ts +8 -0
  64. package/src/components/table/table-columns-selector/TableColumnsSelector.tsx +78 -0
  65. package/src/components/table/table-columns-selector/TableColumnsSelector.types.ts +46 -0
  66. package/src/theme/Theme.tsx +8 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/theme/Theme.tsx"],"sourcesContent":["import {CheckSize16Px, InfoSize24Px} from '@coveord/plasma-react-icons';\nimport {color} from '@coveord/plasma-tokens';\nimport {\n getSize,\n getStylesRef,\n rem,\n type MantineThemeOverride,\n type NotificationProps,\n type StepperStylesParams,\n type TabsStylesParams,\n} from '@mantine/core';\n\nimport {PlasmaColors} from './PlasmaColors';\n\nexport const plasmaTheme: MantineThemeOverride = {\n // These are overrides over https://github.com/mantinedev/mantine/blob/master/src/mantine-styles/src/theme/default-theme.ts\n colorScheme: 'light',\n fontFamily: 'canada-type-gibson, sans-serif',\n black: color.primary.gray[9],\n defaultRadius: 8,\n lineHeight: 1.5,\n spacing: {\n xs: '8px',\n sm: '16px',\n md: '24px',\n lg: '32px',\n xl: '40px',\n },\n primaryColor: 'action',\n headings: {\n fontFamily: 'canada-type-gibson, sans-serif',\n fontWeight: 500,\n sizes: {\n h1: {fontSize: '48px', lineHeight: undefined, fontWeight: 300},\n h2: {fontSize: '32px', lineHeight: undefined, fontWeight: 500},\n h3: {fontSize: '24px', lineHeight: undefined, fontWeight: 500},\n h4: {fontSize: '18px', lineHeight: undefined, fontWeight: 300},\n h5: {fontSize: '14px', lineHeight: undefined, fontWeight: 500},\n h6: {fontSize: '12px', lineHeight: undefined, fontWeight: 500},\n },\n },\n shadows: {\n xs: '0px 1px 0px rgba(4, 8, 31, 0.08)',\n sm: '0px 2px 4px rgba(4, 8, 31, 0.12)',\n md: '0px 4px 8px rgba(4, 8, 31, 0.08)',\n lg: '0px 8px 16px rgba(7, 12, 41, 0.06)',\n xl: '0px 16px 24px rgba(4, 8, 31, 0.06)',\n },\n colors: PlasmaColors,\n components: {\n Alert: {\n defaultProps: {\n icon: <InfoSize24Px height={24} />,\n color: 'navy',\n },\n styles: {\n title: {\n fontWeight: 500,\n },\n },\n },\n Title: {\n styles: {\n root: {\n '&:is(h1,h2,h3,h4,h5,h6)': {letterSpacing: '0.011em'},\n },\n },\n },\n Text: {\n defaultProps: {\n weight: 300,\n },\n styles: (theme, {}, {size}) => ({\n root: {\n fontSize: getSize({size: size ?? 'sm', sizes: theme.fontSizes}),\n },\n }),\n },\n Button: {\n styles: () => ({\n root: {\n fontWeight: 400,\n },\n }),\n variants: {\n outline: () => ({\n root: {\n backgroundColor: 'white',\n },\n }),\n },\n },\n Modal: {\n styles: (theme, {fullScreen, padding}, {size, variant}) => ({\n content: {\n flex: fullScreen\n ? '0 0 100%'\n : `0 0 ${getSize({\n size,\n sizes: {\n xs: rem(432),\n sm: rem(664),\n md: rem(896),\n lg: rem(1120),\n xl: rem('88%'),\n },\n })}`,\n overflow: 'auto',\n },\n title: {\n width: '100%',\n fontSize: theme.headings.sizes.h3.fontSize,\n lineHeight: theme.headings.sizes.h3.lineHeight,\n fontWeight: 500,\n },\n header: {\n borderBottom: variant !== 'prompt' ? `1px solid ${color.primary.gray[3]}` : null,\n },\n body: {\n '&:not(:only-child)': {\n paddingTop: variant === 'prompt' ? 0 : getSize({size: padding, sizes: plasmaTheme.spacing}),\n },\n },\n }),\n },\n ModalOverlay: {\n defaultProps: {\n color: color.primary.navy[9],\n opacity: 0.9,\n },\n },\n InputWrapper: {\n defaultProps: {\n withAsterisk: false,\n },\n styles: (theme) => ({\n label: {\n marginBottom: theme.spacing.xs,\n },\n description: {\n fontSize: theme.fontSizes.sm,\n color: theme.colors.gray[7],\n marginBottom: theme.spacing.xs,\n lineHeight: theme.lineHeight,\n },\n invalid: {\n color: theme.colors.red[9],\n borderColor: theme.colors.red[6],\n },\n error: {\n color: theme.colors.red[9],\n lineHeight: theme.lineHeight,\n },\n }),\n },\n TextInput: {\n defaultProps: {\n radius: 8,\n },\n },\n Tooltip: {\n defaultProps: {\n color: 'navy',\n maw: 300,\n multiline: true,\n withArrow: true,\n withinPortal: true,\n zIndex: 10000,\n },\n },\n Loader: {\n defaultProps: {\n variant: 'dots',\n color: 'action',\n },\n },\n DateRangePicker: {\n styles: {\n cell: {\n textAlign: 'center',\n },\n },\n },\n Anchor: {\n defaultProps: {\n color: 'action.6',\n },\n styles: (theme) => ({\n root: {\n ...theme.fn.hover({\n textDecoration: 'underline',\n color: theme.colors.action[8],\n }),\n },\n }),\n },\n Checkbox: {\n defaultProps: {\n radius: 'sm',\n },\n styles: (theme) => ({\n label: {\n fontSize: theme.fontSizes.sm,\n fontWeight: 300,\n },\n }),\n },\n List: {\n styles: () => ({\n root: {\n listStyleType: 'disc',\n },\n }),\n },\n Radio: {\n styles: {\n labelWrapper: {\n display: 'flex',\n alignItems: 'flex-start',\n },\n },\n },\n Popover: {\n defaultProps: {\n shadow: 'md',\n withArrow: true,\n },\n },\n Badge: {\n styles: {\n root: {\n textTransform: 'none',\n padding: '4px 8px',\n fontWeight: 500,\n },\n },\n },\n ColorSwatch: {\n defaultProps: {\n size: 8,\n withShadow: false,\n },\n },\n MenuItem: {\n defaultProps: {\n fw: 300,\n },\n },\n Notification: {\n styles: (theme, {color: notificationType}: NotificationProps) => ({\n root: {\n borderColor: theme.colors.gray[3],\n backgroundColor: theme.colors.gray[0],\n boxShadow: theme.shadows.lg,\n padding: theme.spacing.sm,\n '&[data-with-icon]': {\n paddingLeft: theme.spacing.sm,\n },\n },\n icon: {\n backgroundColor: 'transparent',\n marginRight: theme.spacing.sm,\n color: theme.colors?.[notificationType][6],\n },\n closeButton: {\n margin: theme.spacing.xs,\n color: theme.colors.gray[5],\n },\n }),\n defaultProps: {\n icon: <InfoSize24Px height={24} />,\n color: 'info',\n },\n },\n Skeleton: {\n styles: {\n visible: {\n '&::before': {zIndex: 'unset'},\n '&::after': {zIndex: 'unset'},\n },\n },\n },\n SegmentedControl: {\n styles: (theme) => ({\n root: {\n backgroundColor: theme.colors.gray[2],\n },\n }),\n },\n Stepper: {\n defaultProps: {\n size: 'xs',\n completedIcon: <CheckSize16Px />,\n },\n styles: (theme, {}: StepperStylesParams, {size}) => ({\n step: {\n '&[disabled]': {\n color: theme.colors.gray[5],\n '& .mantine-Stepper-stepDescription': {\n color: theme.colors.gray[5],\n },\n '& .mantine-Stepper-stepIcon': {\n borderColor: theme.colors.gray[1],\n },\n },\n },\n stepIcon: {\n fontWeight: 500,\n backgroundColor: theme.colors.gray[1],\n color: 'inherit',\n border: `${rem(1)} solid ${theme.colors.gray[3]}`,\n '&[data-progress]': {\n backgroundColor: theme.white,\n },\n\n '&[data-completed]': {\n backgroundColor: theme.white,\n borderColor: theme.colors.lime[6],\n color: theme.colors.lime[6],\n },\n },\n stepCompletedIcon: {\n color: theme.colors.lime[6],\n fontSize: rem(16),\n },\n stepDescription: {\n color: theme.colors.gray[7],\n fontSize: getSize({size, sizes: theme.fontSizes}),\n },\n separator: {\n height: rem(1),\n backgroundColor: theme.colors.gray[3],\n },\n separatorActive: {\n backgroundColor: theme.colors.gray[3],\n },\n verticalSeparator: {\n borderLeft: `${rem(1)} solid ${theme.colors.gray[3]}`,\n },\n verticalSeparatorActive: {\n borderColor: theme.colors.gray[3],\n },\n }),\n },\n Tabs: {\n styles: (theme, {orientation}: TabsStylesParams) => ({\n tabsList: {\n [orientation === 'horizontal' ? 'borderBottom' : 'borderRight']: `${rem(1)} solid ${\n theme.colors.gray[3]\n }`,\n },\n tab: {\n [orientation === 'horizontal' ? 'borderBottom' : 'borderRight']: `${rem(1)} solid transparent`,\n [orientation === 'horizontal' ? 'marginBottom' : 'marginRight']: rem(-1),\n },\n }),\n },\n Select: {\n styles: (theme) => ({\n input: {\n color: theme.colorScheme === 'dark' ? theme.colors.dark[0] : theme.colors.gray[7],\n },\n item: {\n color: theme.colorScheme === 'dark' ? theme.colors.dark[0] : theme.colors.gray[7],\n\n '&[data-hovered]': {\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[4] : theme.colors.gray[1],\n },\n\n '&[data-selected]': {\n backgroundColor: theme.fn.variant({variant: 'light'}).background,\n color: theme.fn.variant({variant: 'light'}).color,\n ...theme.fn.hover({backgroundColor: theme.fn.variant({variant: 'light'}).hover}),\n },\n },\n }),\n },\n NavLink: {\n styles: (theme) => ({\n root: {\n color: theme.colors.gray[6],\n borderRadius: `${theme.defaultRadius}px 0px 0px ${theme.defaultRadius}px`,\n ...theme.fn.hover({\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[6] : theme.colors.gray[1],\n }),\n },\n label: {\n ref: getStylesRef('label'),\n fontWeight: 500,\n },\n children: {\n [`.${getStylesRef('label')}`]: {\n fontWeight: 300,\n },\n },\n }),\n },\n Navbar: {\n styles: (theme) => ({\n root: {\n borderColor: theme.colors.gray[3],\n },\n }),\n },\n ScrollArea: {\n styles: {\n viewport: {\n // https://github.com/radix-ui/primitives/issues/926\n '&[data-radix-scroll-area-viewport]': {\n '& > :first-of-type': {\n display: 'block !important',\n },\n },\n },\n },\n },\n Divider: {\n defaultProps: {\n color: 'gray.3',\n },\n },\n },\n};\n"],"names":["plasmaTheme","colorScheme","fontFamily","black","color","primary","gray","defaultRadius","lineHeight","spacing","xs","sm","md","lg","xl","primaryColor","headings","fontWeight","sizes","h1","fontSize","undefined","h2","h3","h4","h5","h6","shadows","colors","PlasmaColors","components","Alert","defaultProps","icon","InfoSize24Px","height","styles","title","Title","root","letterSpacing","Text","weight","theme","size","getSize","fontSizes","Button","variants","outline","backgroundColor","Modal","fullScreen","padding","variant","content","flex","rem","overflow","width","header","borderBottom","body","paddingTop","ModalOverlay","navy","opacity","InputWrapper","withAsterisk","label","marginBottom","description","invalid","red","borderColor","error","TextInput","radius","Tooltip","maw","multiline","withArrow","withinPortal","zIndex","Loader","DateRangePicker","cell","textAlign","Anchor","fn","hover","textDecoration","action","Checkbox","List","listStyleType","Radio","labelWrapper","display","alignItems","Popover","shadow","Badge","textTransform","ColorSwatch","withShadow","MenuItem","fw","Notification","notificationType","boxShadow","paddingLeft","marginRight","closeButton","margin","Skeleton","visible","SegmentedControl","Stepper","completedIcon","CheckSize16Px","step","stepIcon","border","white","lime","stepCompletedIcon","stepDescription","separator","separatorActive","verticalSeparator","borderLeft","verticalSeparatorActive","Tabs","orientation","tabsList","tab","Select","input","dark","item","background","NavLink","borderRadius","ref","getStylesRef","children","Navbar","ScrollArea","viewport","Divider"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/theme/Theme.tsx"],"sourcesContent":["import {CheckSize16Px, InfoSize24Px} from '@coveord/plasma-react-icons';\nimport {color} from '@coveord/plasma-tokens';\nimport {\n getSize,\n getStylesRef,\n rem,\n type MantineThemeOverride,\n type NotificationProps,\n type StepperStylesParams,\n type TabsStylesParams,\n} from '@mantine/core';\n\nimport {PlasmaColors} from './PlasmaColors';\n\nexport const plasmaTheme: MantineThemeOverride = {\n // These are overrides over https://github.com/mantinedev/mantine/blob/master/src/mantine-styles/src/theme/default-theme.ts\n colorScheme: 'light',\n fontFamily: 'canada-type-gibson, sans-serif',\n black: color.primary.gray[9],\n defaultRadius: 8,\n lineHeight: 1.5,\n spacing: {\n xs: '8px',\n sm: '16px',\n md: '24px',\n lg: '32px',\n xl: '40px',\n },\n globalStyles: (theme) => ({\n body: {\n ...theme.fn.fontStyles(),\n fontSize: theme.fontSizes.sm,\n lineHeight: theme.lineHeight,\n fontWeight: 300,\n },\n }),\n primaryColor: 'action',\n headings: {\n fontFamily: 'canada-type-gibson, sans-serif',\n fontWeight: 500,\n sizes: {\n h1: {fontSize: '48px', lineHeight: undefined, fontWeight: 300},\n h2: {fontSize: '32px', lineHeight: undefined, fontWeight: 500},\n h3: {fontSize: '24px', lineHeight: undefined, fontWeight: 500},\n h4: {fontSize: '18px', lineHeight: undefined, fontWeight: 300},\n h5: {fontSize: '14px', lineHeight: undefined, fontWeight: 500},\n h6: {fontSize: '12px', lineHeight: undefined, fontWeight: 500},\n },\n },\n shadows: {\n xs: '0px 1px 0px rgba(4, 8, 31, 0.08)',\n sm: '0px 2px 4px rgba(4, 8, 31, 0.12)',\n md: '0px 4px 8px rgba(4, 8, 31, 0.08)',\n lg: '0px 8px 16px rgba(7, 12, 41, 0.06)',\n xl: '0px 16px 24px rgba(4, 8, 31, 0.06)',\n },\n colors: PlasmaColors,\n components: {\n Alert: {\n defaultProps: {\n icon: <InfoSize24Px height={24} />,\n color: 'navy',\n },\n styles: {\n title: {\n fontWeight: 500,\n },\n },\n },\n Title: {\n styles: {\n root: {\n '&:is(h1,h2,h3,h4,h5,h6)': {letterSpacing: '0.011em'},\n },\n },\n },\n Text: {\n defaultProps: {\n weight: 300,\n },\n styles: (theme, {}, {size}) => ({\n root: {\n fontSize: getSize({size: size ?? 'sm', sizes: theme.fontSizes}),\n },\n }),\n },\n Button: {\n styles: () => ({\n root: {\n fontWeight: 400,\n },\n }),\n variants: {\n outline: () => ({\n root: {\n backgroundColor: 'white',\n },\n }),\n },\n },\n Modal: {\n styles: (theme, {fullScreen, padding}, {size, variant}) => ({\n content: {\n flex: fullScreen\n ? '0 0 100%'\n : `0 0 ${getSize({\n size,\n sizes: {\n xs: rem(432),\n sm: rem(664),\n md: rem(896),\n lg: rem(1120),\n xl: rem('88%'),\n },\n })}`,\n overflow: 'auto',\n },\n title: {\n width: '100%',\n fontSize: theme.headings.sizes.h3.fontSize,\n lineHeight: theme.headings.sizes.h3.lineHeight,\n fontWeight: 500,\n },\n header: {\n borderBottom: variant !== 'prompt' ? `1px solid ${color.primary.gray[3]}` : null,\n },\n body: {\n '&:not(:only-child)': {\n paddingTop: variant === 'prompt' ? 0 : getSize({size: padding, sizes: plasmaTheme.spacing}),\n },\n },\n }),\n },\n ModalOverlay: {\n defaultProps: {\n color: color.primary.navy[9],\n opacity: 0.9,\n },\n },\n InputWrapper: {\n defaultProps: {\n withAsterisk: false,\n },\n styles: (theme) => ({\n label: {\n marginBottom: theme.spacing.xs,\n },\n description: {\n fontSize: theme.fontSizes.sm,\n color: theme.colors.gray[7],\n marginBottom: theme.spacing.xs,\n lineHeight: theme.lineHeight,\n },\n invalid: {\n color: theme.colors.red[9],\n borderColor: theme.colors.red[6],\n },\n error: {\n color: theme.colors.red[9],\n lineHeight: theme.lineHeight,\n },\n }),\n },\n TextInput: {\n defaultProps: {\n radius: 8,\n },\n },\n Tooltip: {\n defaultProps: {\n color: 'navy',\n maw: 300,\n multiline: true,\n withArrow: true,\n withinPortal: true,\n zIndex: 10000,\n },\n },\n Loader: {\n defaultProps: {\n variant: 'dots',\n color: 'action',\n },\n },\n DateRangePicker: {\n styles: {\n cell: {\n textAlign: 'center',\n },\n },\n },\n Anchor: {\n defaultProps: {\n color: 'action.6',\n },\n styles: (theme) => ({\n root: {\n ...theme.fn.hover({\n textDecoration: 'underline',\n color: theme.colors.action[8],\n }),\n },\n }),\n },\n Checkbox: {\n defaultProps: {\n radius: 'sm',\n },\n styles: (theme) => ({\n label: {\n fontSize: theme.fontSizes.sm,\n fontWeight: 300,\n },\n }),\n },\n List: {\n styles: () => ({\n root: {\n listStyleType: 'disc',\n },\n }),\n },\n Radio: {\n styles: {\n labelWrapper: {\n display: 'flex',\n alignItems: 'flex-start',\n },\n },\n },\n Popover: {\n defaultProps: {\n shadow: 'md',\n withArrow: true,\n },\n },\n Badge: {\n styles: {\n root: {\n textTransform: 'none',\n padding: '4px 8px',\n fontWeight: 500,\n },\n },\n },\n ColorSwatch: {\n defaultProps: {\n size: 8,\n withShadow: false,\n },\n },\n MenuItem: {\n defaultProps: {\n fw: 300,\n },\n },\n Notification: {\n styles: (theme, {color: notificationType}: NotificationProps) => ({\n root: {\n borderColor: theme.colors.gray[3],\n backgroundColor: theme.colors.gray[0],\n boxShadow: theme.shadows.lg,\n padding: theme.spacing.sm,\n '&[data-with-icon]': {\n paddingLeft: theme.spacing.sm,\n },\n },\n icon: {\n backgroundColor: 'transparent',\n marginRight: theme.spacing.sm,\n color: theme.colors?.[notificationType][6],\n },\n closeButton: {\n margin: theme.spacing.xs,\n color: theme.colors.gray[5],\n },\n }),\n defaultProps: {\n icon: <InfoSize24Px height={24} />,\n color: 'info',\n },\n },\n Skeleton: {\n styles: {\n visible: {\n '&::before': {zIndex: 'unset'},\n '&::after': {zIndex: 'unset'},\n },\n },\n },\n SegmentedControl: {\n styles: (theme) => ({\n root: {\n backgroundColor: theme.colors.gray[2],\n },\n }),\n },\n Stepper: {\n defaultProps: {\n size: 'xs',\n completedIcon: <CheckSize16Px />,\n },\n styles: (theme, {}: StepperStylesParams, {size}) => ({\n step: {\n '&[disabled]': {\n color: theme.colors.gray[5],\n '& .mantine-Stepper-stepDescription': {\n color: theme.colors.gray[5],\n },\n '& .mantine-Stepper-stepIcon': {\n borderColor: theme.colors.gray[1],\n },\n },\n },\n stepIcon: {\n fontWeight: 500,\n backgroundColor: theme.colors.gray[1],\n color: 'inherit',\n border: `${rem(1)} solid ${theme.colors.gray[3]}`,\n '&[data-progress]': {\n backgroundColor: theme.white,\n },\n\n '&[data-completed]': {\n backgroundColor: theme.white,\n borderColor: theme.colors.lime[6],\n color: theme.colors.lime[6],\n },\n },\n stepCompletedIcon: {\n color: theme.colors.lime[6],\n fontSize: rem(16),\n },\n stepDescription: {\n color: theme.colors.gray[7],\n fontSize: getSize({size, sizes: theme.fontSizes}),\n },\n separator: {\n height: rem(1),\n backgroundColor: theme.colors.gray[3],\n },\n separatorActive: {\n backgroundColor: theme.colors.gray[3],\n },\n verticalSeparator: {\n borderLeft: `${rem(1)} solid ${theme.colors.gray[3]}`,\n },\n verticalSeparatorActive: {\n borderColor: theme.colors.gray[3],\n },\n }),\n },\n Tabs: {\n styles: (theme, {orientation}: TabsStylesParams) => ({\n tabsList: {\n [orientation === 'horizontal' ? 'borderBottom' : 'borderRight']: `${rem(1)} solid ${\n theme.colors.gray[3]\n }`,\n },\n tab: {\n [orientation === 'horizontal' ? 'borderBottom' : 'borderRight']: `${rem(1)} solid transparent`,\n [orientation === 'horizontal' ? 'marginBottom' : 'marginRight']: rem(-1),\n },\n }),\n },\n Select: {\n styles: (theme) => ({\n input: {\n color: theme.colorScheme === 'dark' ? theme.colors.dark[0] : theme.colors.gray[7],\n },\n item: {\n color: theme.colorScheme === 'dark' ? theme.colors.dark[0] : theme.colors.gray[7],\n\n '&[data-hovered]': {\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[4] : theme.colors.gray[1],\n },\n\n '&[data-selected]': {\n backgroundColor: theme.fn.variant({variant: 'light'}).background,\n color: theme.fn.variant({variant: 'light'}).color,\n ...theme.fn.hover({backgroundColor: theme.fn.variant({variant: 'light'}).hover}),\n },\n },\n }),\n },\n NavLink: {\n styles: (theme) => ({\n root: {\n color: theme.colors.gray[6],\n borderRadius: `${theme.defaultRadius}px 0px 0px ${theme.defaultRadius}px`,\n ...theme.fn.hover({\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[6] : theme.colors.gray[1],\n }),\n },\n label: {\n ref: getStylesRef('label'),\n fontWeight: 500,\n },\n children: {\n [`.${getStylesRef('label')}`]: {\n fontWeight: 300,\n },\n },\n }),\n },\n Navbar: {\n styles: (theme) => ({\n root: {\n borderColor: theme.colors.gray[3],\n },\n }),\n },\n ScrollArea: {\n styles: {\n viewport: {\n // https://github.com/radix-ui/primitives/issues/926\n '&[data-radix-scroll-area-viewport]': {\n '& > :first-of-type': {\n display: 'block !important',\n },\n },\n },\n },\n },\n Divider: {\n defaultProps: {\n color: 'gray.3',\n },\n },\n },\n};\n"],"names":["plasmaTheme","colorScheme","fontFamily","black","color","primary","gray","defaultRadius","lineHeight","spacing","xs","sm","md","lg","xl","globalStyles","theme","body","fn","fontStyles","fontSize","fontSizes","fontWeight","primaryColor","headings","sizes","h1","undefined","h2","h3","h4","h5","h6","shadows","colors","PlasmaColors","components","Alert","defaultProps","icon","InfoSize24Px","height","styles","title","Title","root","letterSpacing","Text","weight","size","getSize","Button","variants","outline","backgroundColor","Modal","fullScreen","padding","variant","content","flex","rem","overflow","width","header","borderBottom","paddingTop","ModalOverlay","navy","opacity","InputWrapper","withAsterisk","label","marginBottom","description","invalid","red","borderColor","error","TextInput","radius","Tooltip","maw","multiline","withArrow","withinPortal","zIndex","Loader","DateRangePicker","cell","textAlign","Anchor","hover","textDecoration","action","Checkbox","List","listStyleType","Radio","labelWrapper","display","alignItems","Popover","shadow","Badge","textTransform","ColorSwatch","withShadow","MenuItem","fw","Notification","notificationType","boxShadow","paddingLeft","marginRight","closeButton","margin","Skeleton","visible","SegmentedControl","Stepper","completedIcon","CheckSize16Px","step","stepIcon","border","white","lime","stepCompletedIcon","stepDescription","separator","separatorActive","verticalSeparator","borderLeft","verticalSeparatorActive","Tabs","orientation","tabsList","tab","Select","input","dark","item","background","NavLink","borderRadius","ref","getStylesRef","children","Navbar","ScrollArea","viewport","Divider"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../../src/components/table/Table.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAAwC,SAAS,EAAC,MAAM,eAAe,CAAC;AAiB/E,eAAO,MAAM,KAAK,EAAE,SAuLnB,CAAC"}
1
+ {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../../src/components/table/Table.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAAwC,SAAS,EAAC,MAAM,eAAe,CAAC;AAkB/E,eAAO,MAAM,KAAK,EAAE,SA0LnB,CAAC"}
@@ -13,6 +13,7 @@ import { TableLayouts } from './layouts/TableLayouts';
13
13
  import { TableActions } from './table-actions/TableActions';
14
14
  import { TableAccordionColumn, TableCollapsibleColumn } from './table-column/TableCollapsibleColumn';
15
15
  import { TableSelectableColumn } from './table-column/TableSelectableColumn';
16
+ import { TableColumnsSelector } from './table-columns-selector/TableColumnsSelector';
16
17
  import { TableConsumer } from './table-consumer/TableConsumer';
17
18
  import { TableDateRangePicker } from './table-date-range-picker/TableDateRangePicker';
18
19
  import { TableFilter } from './table-filter/TableFilter';
@@ -72,6 +73,7 @@ export const Table = ({ data, getRowId, noDataChildren, getExpandChildren, initi
72
73
  },
73
74
  ...options
74
75
  });
76
+ const getAllColumns = table.getAllFlatColumns;
75
77
  const [state, setState] = useState(table.initialState);
76
78
  table.setOptions((prev)=>({
77
79
  ...prev,
@@ -125,7 +127,7 @@ export const Table = ({ data, getRowId, noDataChildren, getExpandChildren, initi
125
127
  });
126
128
  }
127
129
  const Layout = layouts.find(({ name })=>name === form.values.layout);
128
- const hasRows = table.getRowModel().rows.length > 0;
130
+ const hasRows = table.getRowModel()?.rows.length > 0;
129
131
  return /*#__PURE__*/ _jsx(Box, {
130
132
  ref: outsideClickRef,
131
133
  children: /*#__PURE__*/ _jsxs(TableContext.Provider, {
@@ -143,7 +145,8 @@ export const Table = ({ data, getRowId, noDataChildren, getExpandChildren, initi
143
145
  multiRowSelectionEnabled,
144
146
  getPageCount: table.getPageCount,
145
147
  disableRowSelection,
146
- layouts
148
+ layouts,
149
+ getAllColumns
147
150
  },
148
151
  children: [
149
152
  consumer,
@@ -206,6 +209,7 @@ export const Table = ({ data, getRowId, noDataChildren, getExpandChildren, initi
206
209
  })
207
210
  });
208
211
  };
212
+ Table.ColumnsSelector = TableColumnsSelector;
209
213
  Table.Actions = TableActions;
210
214
  Table.Filter = TableFilter;
211
215
  Table.Footer = TableFooter;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/table/Table.tsx"],"sourcesContent":["import {Box, Center, Loader} from '@mantine/core';\nimport {useForm} from '@mantine/form';\nimport {useDidUpdate} from '@mantine/hooks';\nimport {\n ColumnDef,\n Row,\n TableState as TanstackTableState,\n defaultColumnSizing,\n getCoreRowModel,\n useReactTable,\n} from '@tanstack/react-table';\nimport debounce from 'lodash.debounce';\nimport defaultsDeep from 'lodash.defaultsdeep';\nimport {Children, Dispatch, ReactElement, cloneElement, useCallback, useEffect, useState} from 'react';\n\nimport {useRowSelection} from '../../hooks/useRowSelection';\nimport useStyles from './Table.styles';\nimport {TableFormType, TableProps, TableState, TableType} from './Table.types';\nimport {TableContext} from './TableContext';\nimport {TableLayouts} from './layouts/TableLayouts';\nimport {TableActions} from './table-actions/TableActions';\nimport {TableAccordionColumn, TableCollapsibleColumn} from './table-column/TableCollapsibleColumn';\nimport {TableSelectableColumn} from './table-column/TableSelectableColumn';\nimport {TableConsumer} from './table-consumer/TableConsumer';\nimport {TableDateRangePicker} from './table-date-range-picker/TableDateRangePicker';\nimport {TableFilter} from './table-filter/TableFilter';\nimport {TableFooter} from './table-footer/TableFooter';\nimport {TableHeader} from './table-header/TableHeader';\nimport {TableLastUpdated} from './table-last-updated/TableLastUpdated';\nimport {TableLoading} from './table-loading/TableLoading';\nimport {TablePagination} from './table-pagination/TablePagination';\nimport {TablePerPage} from './table-per-page/TablePerPage';\nimport {TablePredicate} from './table-predicate/TablePredicate';\n\nexport const Table: TableType = <T,>({\n data,\n getRowId,\n noDataChildren,\n getExpandChildren,\n initialState = {},\n columns,\n layouts = [TableLayouts.Rows],\n onMount,\n onChange,\n children,\n loading = false,\n doubleClickAction,\n multiRowSelectionEnabled,\n disableRowSelection,\n onRowSelectionChange,\n additionalRootNodes,\n classNames,\n styles,\n unstyled,\n options = {},\n}: TableProps<T>) => {\n const convertedChildren = Children.toArray(children) as ReactElement[];\n const header = convertedChildren.find((child) => child.type === TableHeader);\n const footer = convertedChildren.find((child) => child.type === TableFooter);\n const consumer = convertedChildren.find((child) => child.type === TableConsumer);\n const lastUpdated = convertedChildren.find((child) => child.type === TableLastUpdated);\n\n const {predicates, dateRange, ...initialStateWithoutForm} = initialState;\n const form = useForm<TableFormType>({\n initialValues: {\n predicates: initialState?.predicates ?? {},\n dateRange: initialState?.dateRange ?? [null, null],\n layout: initialState?.layout ?? layouts[0].name,\n },\n });\n const {classes} = useStyles(null, {name: 'PlasmaTable', classNames, styles, unstyled});\n\n const table = useReactTable({\n initialState: defaultsDeep(initialStateWithoutForm, {\n pagination: {pageSize: TablePerPage.DEFAULT_SIZE},\n globalFilter: '',\n }),\n data,\n columns: multiRowSelectionEnabled ? [TableSelectableColumn as ColumnDef<T>].concat(columns) : columns,\n getCoreRowModel: getCoreRowModel(),\n manualPagination: options?.getPaginationRowModel === undefined,\n enableMultiRowSelection: !!multiRowSelectionEnabled,\n getRowId,\n getRowCanExpand: (row: Row<T>) => !!getExpandChildren?.(row.original) ?? false,\n enableRowSelection: !loading,\n defaultColumn: {\n size: undefined,\n minSize: defaultColumnSizing.minSize,\n maxSize: defaultColumnSizing.maxSize,\n },\n ...options,\n });\n\n const [state, setState] = useState<TableState<T>>(table.initialState as TableState<T>);\n table.setOptions((prev) => ({\n ...prev,\n state: state as TanstackTableState,\n onStateChange: setState as Dispatch<React.SetStateAction<TanstackTableState>>,\n }));\n const {clearSelection, getSelectedRow, getSelectedRows, outsideClickRef} = useRowSelection(table, {\n multiRowSelectionEnabled,\n onRowSelectionChange,\n additionalRootNodes,\n });\n const isFiltered =\n !!state.globalFilter ||\n Object.keys(form.values?.predicates ?? {}).some((predicate) => !!form.values.predicates[predicate]) ||\n !!form.values.dateRange?.[0] ||\n !!form.values.dateRange?.[1];\n\n const triggerChange = debounce(() => onChange?.({...state, ...form.values}), 500);\n\n useEffect(() => {\n onMount?.({...state, ...form.values});\n return () => {\n triggerChange.cancel();\n };\n }, []);\n\n useDidUpdate(() => {\n triggerChange();\n if (!multiRowSelectionEnabled) {\n clearSelection();\n }\n }, [\n state.globalFilter,\n state.pagination,\n state.sorting,\n JSON.stringify(form.values.dateRange),\n JSON.stringify(form.values.predicates),\n ]);\n\n const clearFilters = useCallback(() => {\n form.setFieldValue('predicates', initialState.predicates ?? {});\n setState((prevState) => ({...prevState, globalFilter: ''}));\n }, []);\n\n if (!data) {\n return (\n <Center sx={{flexGrow: 1}}>\n <Loader />\n </Center>\n );\n }\n\n const Layout = layouts.find(({name}) => name === form.values.layout);\n const hasRows = table.getRowModel().rows.length > 0;\n\n return (\n <Box ref={outsideClickRef}>\n <TableContext.Provider\n value={{\n onChange: triggerChange,\n state,\n isFiltered,\n setState,\n clearFilters,\n getSelectedRow,\n getSelectedRows,\n clearSelection,\n form,\n containerRef: outsideClickRef,\n multiRowSelectionEnabled,\n getPageCount: table.getPageCount,\n disableRowSelection,\n layouts,\n }}\n >\n {consumer}\n {!hasRows && !isFiltered && !loading ? (\n noDataChildren\n ) : (\n <>\n <Box component=\"table\" className={classes.table} pb=\"sm\">\n <thead className={classes.header}>\n {!!header ? (\n <tr>\n <th style={{padding: 0}} colSpan={table.getAllColumns().length}>\n {header}\n </th>\n </tr>\n ) : null}\n <Layout.Header\n table={table}\n doubleClickAction={doubleClickAction}\n getExpandChildren={getExpandChildren}\n loading={loading}\n />\n </thead>\n <tbody className={classes.body}>\n {hasRows ? (\n <Layout.Body\n table={table}\n doubleClickAction={doubleClickAction}\n getExpandChildren={getExpandChildren}\n loading={loading}\n />\n ) : (\n <tr>\n <td colSpan={table.getAllColumns().length}>\n <TableLoading visible={loading}>{noDataChildren}</TableLoading>\n </td>\n </tr>\n )}\n </tbody>\n </Box>\n {footer}\n {lastUpdated\n ? cloneElement(lastUpdated, {\n dependencies: [data, ...(lastUpdated.props.dependencies ?? [])],\n })\n : null}\n </>\n )}\n </TableContext.Provider>\n </Box>\n );\n};\n\nTable.Actions = TableActions;\nTable.Filter = TableFilter;\nTable.Footer = TableFooter;\nTable.Header = TableHeader;\nTable.LastUpdated = TableLastUpdated;\nTable.Pagination = TablePagination;\nTable.Predicate = TablePredicate;\nTable.PerPage = TablePerPage;\nTable.Predicate = TablePredicate;\nTable.CollapsibleColumn = TableCollapsibleColumn;\nTable.AccordionColumn = TableAccordionColumn;\nTable.DateRangePicker = TableDateRangePicker;\nTable.Consumer = TableConsumer;\nTable.Loading = TableLoading;\nTable.Layouts = TableLayouts;\n"],"names":["Box","Center","Loader","useForm","useDidUpdate","defaultColumnSizing","getCoreRowModel","useReactTable","debounce","defaultsDeep","Children","cloneElement","useCallback","useEffect","useState","useRowSelection","useStyles","TableContext","TableLayouts","TableActions","TableAccordionColumn","TableCollapsibleColumn","TableSelectableColumn","TableConsumer","TableDateRangePicker","TableFilter","TableFooter","TableHeader","TableLastUpdated","TableLoading","TablePagination","TablePerPage","TablePredicate","Table","data","getRowId","noDataChildren","getExpandChildren","initialState","columns","layouts","Rows","onMount","onChange","children","loading","doubleClickAction","multiRowSelectionEnabled","disableRowSelection","onRowSelectionChange","additionalRootNodes","classNames","styles","unstyled","options","convertedChildren","toArray","header","find","child","type","footer","consumer","lastUpdated","predicates","dateRange","initialStateWithoutForm","form","initialValues","layout","name","classes","table","pagination","pageSize","DEFAULT_SIZE","globalFilter","concat","manualPagination","getPaginationRowModel","undefined","enableMultiRowSelection","getRowCanExpand","row","original","enableRowSelection","defaultColumn","size","minSize","maxSize","state","setState","setOptions","prev","onStateChange","clearSelection","getSelectedRow","getSelectedRows","outsideClickRef","isFiltered","Object","keys","values","some","predicate","triggerChange","cancel","sorting","JSON","stringify","clearFilters","setFieldValue","prevState","sx","flexGrow","Layout","hasRows","getRowModel","rows","length","ref","Provider","value","containerRef","getPageCount","component","className","pb","thead","tr","th","style","padding","colSpan","getAllColumns","Header","tbody","body","Body","td","visible","dependencies","props","Actions","Filter","Footer","LastUpdated","Pagination","Predicate","PerPage","CollapsibleColumn","AccordionColumn","DateRangePicker","Consumer","Loading","Layouts"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/table/Table.tsx"],"sourcesContent":["import {Box, Center, Loader} from '@mantine/core';\nimport {useForm} from '@mantine/form';\nimport {useDidUpdate} from '@mantine/hooks';\nimport {\n ColumnDef,\n Row,\n TableState as TanstackTableState,\n defaultColumnSizing,\n getCoreRowModel,\n useReactTable,\n} from '@tanstack/react-table';\nimport debounce from 'lodash.debounce';\nimport defaultsDeep from 'lodash.defaultsdeep';\nimport {Children, Dispatch, ReactElement, cloneElement, useCallback, useEffect, useState} from 'react';\n\nimport {useRowSelection} from '../../hooks/useRowSelection';\nimport useStyles from './Table.styles';\nimport {TableFormType, TableProps, TableState, TableType} from './Table.types';\nimport {TableContext} from './TableContext';\nimport {TableLayouts} from './layouts/TableLayouts';\nimport {TableActions} from './table-actions/TableActions';\nimport {TableAccordionColumn, TableCollapsibleColumn} from './table-column/TableCollapsibleColumn';\nimport {TableSelectableColumn} from './table-column/TableSelectableColumn';\nimport {TableColumnsSelector} from './table-columns-selector/TableColumnsSelector';\nimport {TableConsumer} from './table-consumer/TableConsumer';\nimport {TableDateRangePicker} from './table-date-range-picker/TableDateRangePicker';\nimport {TableFilter} from './table-filter/TableFilter';\nimport {TableFooter} from './table-footer/TableFooter';\nimport {TableHeader} from './table-header/TableHeader';\nimport {TableLastUpdated} from './table-last-updated/TableLastUpdated';\nimport {TableLoading} from './table-loading/TableLoading';\nimport {TablePagination} from './table-pagination/TablePagination';\nimport {TablePerPage} from './table-per-page/TablePerPage';\nimport {TablePredicate} from './table-predicate/TablePredicate';\n\nexport const Table: TableType = <T,>({\n data,\n getRowId,\n noDataChildren,\n getExpandChildren,\n initialState = {},\n columns,\n layouts = [TableLayouts.Rows],\n onMount,\n onChange,\n children,\n loading = false,\n doubleClickAction,\n multiRowSelectionEnabled,\n disableRowSelection,\n onRowSelectionChange,\n additionalRootNodes,\n classNames,\n styles,\n unstyled,\n options = {},\n}: TableProps<T>) => {\n const convertedChildren = Children.toArray(children) as ReactElement[];\n const header = convertedChildren.find((child) => child.type === TableHeader);\n const footer = convertedChildren.find((child) => child.type === TableFooter);\n const consumer = convertedChildren.find((child) => child.type === TableConsumer);\n const lastUpdated = convertedChildren.find((child) => child.type === TableLastUpdated);\n\n const {predicates, dateRange, ...initialStateWithoutForm} = initialState;\n const form = useForm<TableFormType>({\n initialValues: {\n predicates: initialState?.predicates ?? {},\n dateRange: initialState?.dateRange ?? [null, null],\n layout: initialState?.layout ?? layouts[0].name,\n },\n });\n const {classes} = useStyles(null, {name: 'PlasmaTable', classNames, styles, unstyled});\n\n const table = useReactTable({\n initialState: defaultsDeep(initialStateWithoutForm, {\n pagination: {pageSize: TablePerPage.DEFAULT_SIZE},\n globalFilter: '',\n }),\n data,\n columns: multiRowSelectionEnabled ? [TableSelectableColumn as ColumnDef<T>].concat(columns) : columns,\n getCoreRowModel: getCoreRowModel(),\n manualPagination: options?.getPaginationRowModel === undefined,\n enableMultiRowSelection: !!multiRowSelectionEnabled,\n getRowId,\n getRowCanExpand: (row: Row<T>) => !!getExpandChildren?.(row.original) ?? false,\n enableRowSelection: !loading,\n defaultColumn: {\n size: undefined,\n minSize: defaultColumnSizing.minSize,\n maxSize: defaultColumnSizing.maxSize,\n },\n ...options,\n });\n\n const getAllColumns = table.getAllFlatColumns;\n\n const [state, setState] = useState<TableState<T>>(table.initialState as TableState<T>);\n table.setOptions((prev) => ({\n ...prev,\n state: state as TanstackTableState,\n onStateChange: setState as Dispatch<React.SetStateAction<TanstackTableState>>,\n }));\n const {clearSelection, getSelectedRow, getSelectedRows, outsideClickRef} = useRowSelection(table, {\n multiRowSelectionEnabled,\n onRowSelectionChange,\n additionalRootNodes,\n });\n const isFiltered =\n !!state.globalFilter ||\n Object.keys(form.values?.predicates ?? {}).some((predicate) => !!form.values.predicates[predicate]) ||\n !!form.values.dateRange?.[0] ||\n !!form.values.dateRange?.[1];\n\n const triggerChange = debounce(() => onChange?.({...state, ...form.values}), 500);\n\n useEffect(() => {\n onMount?.({...state, ...form.values});\n return () => {\n triggerChange.cancel();\n };\n }, []);\n\n useDidUpdate(() => {\n triggerChange();\n if (!multiRowSelectionEnabled) {\n clearSelection();\n }\n }, [\n state.globalFilter,\n state.pagination,\n state.sorting,\n JSON.stringify(form.values.dateRange),\n JSON.stringify(form.values.predicates),\n ]);\n\n const clearFilters = useCallback(() => {\n form.setFieldValue('predicates', initialState.predicates ?? {});\n setState((prevState) => ({...prevState, globalFilter: ''}));\n }, []);\n\n if (!data) {\n return (\n <Center sx={{flexGrow: 1}}>\n <Loader />\n </Center>\n );\n }\n\n const Layout = layouts.find(({name}) => name === form.values.layout);\n const hasRows = table.getRowModel()?.rows.length > 0;\n\n return (\n <Box ref={outsideClickRef}>\n <TableContext.Provider\n value={{\n onChange: triggerChange,\n state,\n isFiltered,\n setState,\n clearFilters,\n getSelectedRow,\n getSelectedRows,\n clearSelection,\n form,\n containerRef: outsideClickRef,\n multiRowSelectionEnabled,\n getPageCount: table.getPageCount,\n disableRowSelection,\n layouts,\n getAllColumns,\n }}\n >\n {consumer}\n {!hasRows && !isFiltered && !loading ? (\n noDataChildren\n ) : (\n <>\n <Box component=\"table\" className={classes.table} pb=\"sm\">\n <thead className={classes.header}>\n {!!header ? (\n <tr>\n <th style={{padding: 0}} colSpan={table.getAllColumns().length}>\n {header}\n </th>\n </tr>\n ) : null}\n <Layout.Header\n table={table}\n doubleClickAction={doubleClickAction}\n getExpandChildren={getExpandChildren}\n loading={loading}\n />\n </thead>\n <tbody className={classes.body}>\n {hasRows ? (\n <Layout.Body\n table={table}\n doubleClickAction={doubleClickAction}\n getExpandChildren={getExpandChildren}\n loading={loading}\n />\n ) : (\n <tr>\n <td colSpan={table.getAllColumns().length}>\n <TableLoading visible={loading}>{noDataChildren}</TableLoading>\n </td>\n </tr>\n )}\n </tbody>\n </Box>\n {footer}\n {lastUpdated\n ? cloneElement(lastUpdated, {\n dependencies: [data, ...(lastUpdated.props.dependencies ?? [])],\n })\n : null}\n </>\n )}\n </TableContext.Provider>\n </Box>\n );\n};\n\nTable.ColumnsSelector = TableColumnsSelector;\nTable.Actions = TableActions;\nTable.Filter = TableFilter;\nTable.Footer = TableFooter;\nTable.Header = TableHeader;\nTable.LastUpdated = TableLastUpdated;\nTable.Pagination = TablePagination;\nTable.Predicate = TablePredicate;\nTable.PerPage = TablePerPage;\nTable.Predicate = TablePredicate;\nTable.CollapsibleColumn = TableCollapsibleColumn;\nTable.AccordionColumn = TableAccordionColumn;\nTable.DateRangePicker = TableDateRangePicker;\nTable.Consumer = TableConsumer;\nTable.Loading = TableLoading;\nTable.Layouts = TableLayouts;\n"],"names":["Box","Center","Loader","useForm","useDidUpdate","defaultColumnSizing","getCoreRowModel","useReactTable","debounce","defaultsDeep","Children","cloneElement","useCallback","useEffect","useState","useRowSelection","useStyles","TableContext","TableLayouts","TableActions","TableAccordionColumn","TableCollapsibleColumn","TableSelectableColumn","TableColumnsSelector","TableConsumer","TableDateRangePicker","TableFilter","TableFooter","TableHeader","TableLastUpdated","TableLoading","TablePagination","TablePerPage","TablePredicate","Table","data","getRowId","noDataChildren","getExpandChildren","initialState","columns","layouts","Rows","onMount","onChange","children","loading","doubleClickAction","multiRowSelectionEnabled","disableRowSelection","onRowSelectionChange","additionalRootNodes","classNames","styles","unstyled","options","convertedChildren","toArray","header","find","child","type","footer","consumer","lastUpdated","predicates","dateRange","initialStateWithoutForm","form","initialValues","layout","name","classes","table","pagination","pageSize","DEFAULT_SIZE","globalFilter","concat","manualPagination","getPaginationRowModel","undefined","enableMultiRowSelection","getRowCanExpand","row","original","enableRowSelection","defaultColumn","size","minSize","maxSize","getAllColumns","getAllFlatColumns","state","setState","setOptions","prev","onStateChange","clearSelection","getSelectedRow","getSelectedRows","outsideClickRef","isFiltered","Object","keys","values","some","predicate","triggerChange","cancel","sorting","JSON","stringify","clearFilters","setFieldValue","prevState","sx","flexGrow","Layout","hasRows","getRowModel","rows","length","ref","Provider","value","containerRef","getPageCount","component","className","pb","thead","tr","th","style","padding","colSpan","Header","tbody","body","Body","td","visible","dependencies","props","ColumnsSelector","Actions","Filter","Footer","LastUpdated","Pagination","Predicate","PerPage","CollapsibleColumn","AccordionColumn","DateRangePicker","Consumer","Loading","Layouts"],"mappings":";AAAA,SAAQA,GAAG,EAAEC,MAAM,EAAEC,MAAM,QAAO,gBAAgB;AAClD,SAAQC,OAAO,QAAO,gBAAgB;AACtC,SAAQC,YAAY,QAAO,iBAAiB;AAC5C,SAIIC,mBAAmB,EACnBC,eAAe,EACfC,aAAa,QACV,wBAAwB;AAC/B,OAAOC,cAAc,kBAAkB;AACvC,OAAOC,kBAAkB,sBAAsB;AAC/C,SAAQC,QAAQ,EAA0BC,YAAY,EAAEC,WAAW,EAAEC,SAAS,EAAEC,QAAQ,QAAO,QAAQ;AAEvG,SAAQC,eAAe,QAAO,8BAA8B;AAC5D,OAAOC,eAAe,iBAAiB;AAEvC,SAAQC,YAAY,QAAO,iBAAiB;AAC5C,SAAQC,YAAY,QAAO,yBAAyB;AACpD,SAAQC,YAAY,QAAO,+BAA+B;AAC1D,SAAQC,oBAAoB,EAAEC,sBAAsB,QAAO,wCAAwC;AACnG,SAAQC,qBAAqB,QAAO,uCAAuC;AAC3E,SAAQC,oBAAoB,QAAO,gDAAgD;AACnF,SAAQC,aAAa,QAAO,iCAAiC;AAC7D,SAAQC,oBAAoB,QAAO,iDAAiD;AACpF,SAAQC,WAAW,QAAO,6BAA6B;AACvD,SAAQC,WAAW,QAAO,6BAA6B;AACvD,SAAQC,WAAW,QAAO,6BAA6B;AACvD,SAAQC,gBAAgB,QAAO,wCAAwC;AACvE,SAAQC,YAAY,QAAO,+BAA+B;AAC1D,SAAQC,eAAe,QAAO,qCAAqC;AACnE,SAAQC,YAAY,QAAO,gCAAgC;AAC3D,SAAQC,cAAc,QAAO,mCAAmC;AAEhE,OAAO,MAAMC,QAAmB,CAAK,EACjCC,IAAI,EACJC,QAAQ,EACRC,cAAc,EACdC,iBAAiB,EACjBC,eAAe,CAAC,CAAC,EACjBC,OAAO,EACPC,UAAU;IAACvB,aAAawB,IAAI;CAAC,EAC7BC,OAAO,EACPC,QAAQ,EACRC,QAAQ,EACRC,UAAU,KAAK,EACfC,iBAAiB,EACjBC,wBAAwB,EACxBC,mBAAmB,EACnBC,oBAAoB,EACpBC,mBAAmB,EACnBC,UAAU,EACVC,MAAM,EACNC,QAAQ,EACRC,UAAU,CAAC,CAAC,EACA;IACZ,MAAMC,oBAAoB9C,SAAS+C,OAAO,CAACZ;IAC3C,MAAMa,SAASF,kBAAkBG,IAAI,CAAC,CAACC,QAAUA,MAAMC,IAAI,KAAKjC;IAChE,MAAMkC,SAASN,kBAAkBG,IAAI,CAAC,CAACC,QAAUA,MAAMC,IAAI,KAAKlC;IAChE,MAAMoC,WAAWP,kBAAkBG,IAAI,CAAC,CAACC,QAAUA,MAAMC,IAAI,KAAKrC;IAClE,MAAMwC,cAAcR,kBAAkBG,IAAI,CAAC,CAACC,QAAUA,MAAMC,IAAI,KAAKhC;IAErE,MAAM,EAACoC,UAAU,EAAEC,SAAS,EAAE,GAAGC,yBAAwB,GAAG5B;IAC5D,MAAM6B,OAAOjE,QAAuB;QAChCkE,eAAe;YACXJ,YAAY1B,cAAc0B,cAAc,CAAC;YACzCC,WAAW3B,cAAc2B,aAAa;gBAAC;gBAAM;aAAK;YAClDI,QAAQ/B,cAAc+B,UAAU7B,OAAO,CAAC,EAAE,CAAC8B,IAAI;QACnD;IACJ;IACA,MAAM,EAACC,OAAO,EAAC,GAAGxD,UAAU,MAAM;QAACuD,MAAM;QAAenB;QAAYC;QAAQC;IAAQ;IAEpF,MAAMmB,QAAQlE,cAAc;QACxBgC,cAAc9B,aAAa0D,yBAAyB;YAChDO,YAAY;gBAACC,UAAU3C,aAAa4C,YAAY;YAAA;YAChDC,cAAc;QAClB;QACA1C;QACAK,SAASQ,2BAA2B;YAAC1B;SAAsC,CAACwD,MAAM,CAACtC,WAAWA;QAC9FlC,iBAAiBA;QACjByE,kBAAkBxB,SAASyB,0BAA0BC;QACrDC,yBAAyB,CAAC,CAAClC;QAC3BZ;QACA+C,iBAAiB,CAACC,MAAgB,CAAC,CAAC9C,oBAAoB8C,IAAIC,QAAQ,KAAK;QACzEC,oBAAoB,CAACxC;QACrByC,eAAe;YACXC,MAAMP;YACNQ,SAASpF,oBAAoBoF,OAAO;YACpCC,SAASrF,oBAAoBqF,OAAO;QACxC;QACA,GAAGnC,OAAO;IACd;IAEA,MAAMoC,gBAAgBlB,MAAMmB,iBAAiB;IAE7C,MAAM,CAACC,OAAOC,SAAS,GAAGhF,SAAwB2D,MAAMlC,YAAY;IACpEkC,MAAMsB,UAAU,CAAC,CAACC,OAAU,CAAA;YACxB,GAAGA,IAAI;YACPH,OAAOA;YACPI,eAAeH;QACnB,CAAA;IACA,MAAM,EAACI,cAAc,EAAEC,cAAc,EAAEC,eAAe,EAAEC,eAAe,EAAC,GAAGtF,gBAAgB0D,OAAO;QAC9FzB;QACAE;QACAC;IACJ;IACA,MAAMmD,aACF,CAAC,CAACT,MAAMhB,YAAY,IACpB0B,OAAOC,IAAI,CAACpC,KAAKqC,MAAM,EAAExC,cAAc,CAAC,GAAGyC,IAAI,CAAC,CAACC,YAAc,CAAC,CAACvC,KAAKqC,MAAM,CAACxC,UAAU,CAAC0C,UAAU,KAClG,CAAC,CAACvC,KAAKqC,MAAM,CAACvC,SAAS,EAAE,CAAC,EAAE,IAC5B,CAAC,CAACE,KAAKqC,MAAM,CAACvC,SAAS,EAAE,CAAC,EAAE;IAEhC,MAAM0C,gBAAgBpG,SAAS,IAAMoC,WAAW;YAAC,GAAGiD,KAAK;YAAE,GAAGzB,KAAKqC,MAAM;QAAA,IAAI;IAE7E5F,UAAU;QACN8B,UAAU;YAAC,GAAGkD,KAAK;YAAE,GAAGzB,KAAKqC,MAAM;QAAA;QACnC,OAAO;YACHG,cAAcC,MAAM;QACxB;IACJ,GAAG,EAAE;IAELzG,aAAa;QACTwG;QACA,IAAI,CAAC5D,0BAA0B;YAC3BkD;QACJ;IACJ,GAAG;QACCL,MAAMhB,YAAY;QAClBgB,MAAMnB,UAAU;QAChBmB,MAAMiB,OAAO;QACbC,KAAKC,SAAS,CAAC5C,KAAKqC,MAAM,CAACvC,SAAS;QACpC6C,KAAKC,SAAS,CAAC5C,KAAKqC,MAAM,CAACxC,UAAU;KACxC;IAED,MAAMgD,eAAerG,YAAY;QAC7BwD,KAAK8C,aAAa,CAAC,cAAc3E,aAAa0B,UAAU,IAAI,CAAC;QAC7D6B,SAAS,CAACqB,YAAe,CAAA;gBAAC,GAAGA,SAAS;gBAAEtC,cAAc;YAAE,CAAA;IAC5D,GAAG,EAAE;IAEL,IAAI,CAAC1C,MAAM;QACP,qBACI,KAAClC;YAAOmH,IAAI;gBAACC,UAAU;YAAC;sBACpB,cAAA,KAACnH;;IAGb;IAEA,MAAMoH,SAAS7E,QAAQkB,IAAI,CAAC,CAAC,EAACY,IAAI,EAAC,GAAKA,SAASH,KAAKqC,MAAM,CAACnC,MAAM;IACnE,MAAMiD,UAAU9C,MAAM+C,WAAW,IAAIC,KAAKC,SAAS;IAEnD,qBACI,KAAC1H;QAAI2H,KAAKtB;kBACN,cAAA,MAACpF,aAAa2G,QAAQ;YAClBC,OAAO;gBACHjF,UAAUgE;gBACVf;gBACAS;gBACAR;gBACAmB;gBACAd;gBACAC;gBACAF;gBACA9B;gBACA0D,cAAczB;gBACdrD;gBACA+E,cAActD,MAAMsD,YAAY;gBAChC9E;gBACAR;gBACAkD;YACJ;;gBAEC5B;gBACA,CAACwD,WAAW,CAACjB,cAAc,CAACxD,UACzBT,+BAEA;;sCACI,MAACrC;4BAAIgI,WAAU;4BAAQC,WAAWzD,QAAQC,KAAK;4BAAEyD,IAAG;;8CAChD,MAACC;oCAAMF,WAAWzD,QAAQd,MAAM;;wCAC3B,CAAC,CAACA,uBACC,KAAC0E;sDACG,cAAA,KAACC;gDAAGC,OAAO;oDAACC,SAAS;gDAAC;gDAAGC,SAAS/D,MAAMkB,aAAa,GAAG+B,MAAM;0DACzDhE;;6CAGT;sDACJ,KAAC4D,OAAOmB,MAAM;4CACVhE,OAAOA;4CACP1B,mBAAmBA;4CACnBT,mBAAmBA;4CACnBQ,SAASA;;;;8CAGjB,KAAC4F;oCAAMT,WAAWzD,QAAQmE,IAAI;8CACzBpB,wBACG,KAACD,OAAOsB,IAAI;wCACRnE,OAAOA;wCACP1B,mBAAmBA;wCACnBT,mBAAmBA;wCACnBQ,SAASA;uDAGb,KAACsF;kDACG,cAAA,KAACS;4CAAGL,SAAS/D,MAAMkB,aAAa,GAAG+B,MAAM;sDACrC,cAAA,KAAC5F;gDAAagH,SAAShG;0DAAUT;;;;;;;wBAMpDyB;wBACAE,4BACKrD,aAAaqD,aAAa;4BACtB+E,cAAc;gCAAC5G;mCAAU6B,YAAYgF,KAAK,CAACD,YAAY,IAAI,EAAE;6BAAE;wBACnE,KACA;;;;;;AAM9B,EAAE;AAEF7G,MAAM+G,eAAe,GAAG1H;AACxBW,MAAMgH,OAAO,GAAG/H;AAChBe,MAAMiH,MAAM,GAAGzH;AACfQ,MAAMkH,MAAM,GAAGzH;AACfO,MAAMuG,MAAM,GAAG7G;AACfM,MAAMmH,WAAW,GAAGxH;AACpBK,MAAMoH,UAAU,GAAGvH;AACnBG,MAAMqH,SAAS,GAAGtH;AAClBC,MAAMsH,OAAO,GAAGxH;AAChBE,MAAMqH,SAAS,GAAGtH;AAClBC,MAAMuH,iBAAiB,GAAGpI;AAC1Ba,MAAMwH,eAAe,GAAGtI;AACxBc,MAAMyH,eAAe,GAAGlI;AACxBS,MAAM0H,QAAQ,GAAGpI;AACjBU,MAAM2H,OAAO,GAAG/H;AAChBI,MAAM4H,OAAO,GAAG5I"}
@@ -11,6 +11,7 @@ export declare const TableComponentsOrder: {
11
11
  Predicate: number;
12
12
  Filter: number;
13
13
  DateRangePicker: number;
14
+ ColumnsSelector: number;
14
15
  LayoutControl: number;
15
16
  };
16
17
  export default useStyles;
@@ -1 +1 @@
1
- {"version":3,"file":"Table.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/table/Table.styles.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,SAAS;;;;;;CAuBZ,CAAC;AAEJ,eAAO,MAAM,oBAAoB;;;;;;;CAOhC,CAAC;AAEF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"Table.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/table/Table.styles.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,SAAS;;;;;;CAuBZ,CAAC;AAEJ,eAAO,MAAM,oBAAoB;;;;;;;;CAQhC,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -21,11 +21,12 @@ const useStyles = createStyles((theme)=>({
21
21
  body: {}
22
22
  }));
23
23
  export const TableComponentsOrder = {
24
- MultiSelectInfo: 6,
25
- Actions: 5,
26
- Predicate: 4,
27
- Filter: 3,
28
- DateRangePicker: 2,
24
+ MultiSelectInfo: 7,
25
+ Actions: 6,
26
+ Predicate: 5,
27
+ Filter: 4,
28
+ DateRangePicker: 3,
29
+ ColumnsSelector: 2,
29
30
  LayoutControl: 1
30
31
  };
31
32
  export default useStyles;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/table/Table.styles.ts"],"sourcesContent":["import {createStyles} from '@mantine/core';\n\nconst useStyles = createStyles<string>((theme) => ({\n table: {\n width: '100%',\n },\n\n header: {\n position: 'sticky',\n top: 0,\n backgroundColor: theme.colorScheme === 'dark' ? theme.black : theme.white,\n transition: 'box-shadow 150ms ease',\n zIndex: 1,\n\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: 0,\n borderBottom: `1px solid ${theme.colors.gray[3]}`,\n },\n },\n\n body: {},\n}));\n\nexport const TableComponentsOrder = {\n MultiSelectInfo: 6,\n Actions: 5,\n Predicate: 4,\n Filter: 3,\n DateRangePicker: 2,\n LayoutControl: 1,\n};\n\nexport default useStyles;\n"],"names":["createStyles","useStyles","theme","table","width","header","position","top","backgroundColor","colorScheme","black","white","transition","zIndex","content","left","right","bottom","borderBottom","colors","gray","body","TableComponentsOrder","MultiSelectInfo","Actions","Predicate","Filter","DateRangePicker","LayoutControl"],"mappings":"AAAA,SAAQA,YAAY,QAAO,gBAAgB;AAE3C,MAAMC,YAAYD,aAAqB,CAACE,QAAW,CAAA;QAC/CC,OAAO;YACHC,OAAO;QACX;QAEAC,QAAQ;YACJC,UAAU;YACVC,KAAK;YACLC,iBAAiBN,MAAMO,WAAW,KAAK,SAASP,MAAMQ,KAAK,GAAGR,MAAMS,KAAK;YACzEC,YAAY;YACZC,QAAQ;YAER,YAAY;gBACRC,SAAS;gBACTR,UAAU;gBACVS,MAAM;gBACNC,OAAO;gBACPC,QAAQ;gBACRC,cAAc,CAAC,UAAU,EAAEhB,MAAMiB,MAAM,CAACC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrD;QACJ;QAEAC,MAAM,CAAC;IACX,CAAA;AAEA,OAAO,MAAMC,uBAAuB;IAChCC,iBAAiB;IACjBC,SAAS;IACTC,WAAW;IACXC,QAAQ;IACRC,iBAAiB;IACjBC,eAAe;AACnB,EAAE;AAEF,eAAe3B,UAAU"}
1
+ {"version":3,"sources":["../../../../src/components/table/Table.styles.ts"],"sourcesContent":["import {createStyles} from '@mantine/core';\n\nconst useStyles = createStyles<string>((theme) => ({\n table: {\n width: '100%',\n },\n\n header: {\n position: 'sticky',\n top: 0,\n backgroundColor: theme.colorScheme === 'dark' ? theme.black : theme.white,\n transition: 'box-shadow 150ms ease',\n zIndex: 1,\n\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: 0,\n borderBottom: `1px solid ${theme.colors.gray[3]}`,\n },\n },\n\n body: {},\n}));\n\nexport const TableComponentsOrder = {\n MultiSelectInfo: 7,\n Actions: 6,\n Predicate: 5,\n Filter: 4,\n DateRangePicker: 3,\n ColumnsSelector: 2,\n LayoutControl: 1,\n};\n\nexport default useStyles;\n"],"names":["createStyles","useStyles","theme","table","width","header","position","top","backgroundColor","colorScheme","black","white","transition","zIndex","content","left","right","bottom","borderBottom","colors","gray","body","TableComponentsOrder","MultiSelectInfo","Actions","Predicate","Filter","DateRangePicker","ColumnsSelector","LayoutControl"],"mappings":"AAAA,SAAQA,YAAY,QAAO,gBAAgB;AAE3C,MAAMC,YAAYD,aAAqB,CAACE,QAAW,CAAA;QAC/CC,OAAO;YACHC,OAAO;QACX;QAEAC,QAAQ;YACJC,UAAU;YACVC,KAAK;YACLC,iBAAiBN,MAAMO,WAAW,KAAK,SAASP,MAAMQ,KAAK,GAAGR,MAAMS,KAAK;YACzEC,YAAY;YACZC,QAAQ;YAER,YAAY;gBACRC,SAAS;gBACTR,UAAU;gBACVS,MAAM;gBACNC,OAAO;gBACPC,QAAQ;gBACRC,cAAc,CAAC,UAAU,EAAEhB,MAAMiB,MAAM,CAACC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrD;QACJ;QAEAC,MAAM,CAAC;IACX,CAAA;AAEA,OAAO,MAAMC,uBAAuB;IAChCC,iBAAiB;IACjBC,SAAS;IACTC,WAAW;IACXC,QAAQ;IACRC,iBAAiB;IACjBC,iBAAiB;IACjBC,eAAe;AACnB,EAAE;AAEF,eAAe5B,UAAU"}
@@ -1,13 +1,15 @@
1
1
  import { Icon } from '@coveord/plasma-react-icons';
2
2
  import { DefaultProps, Selectors } from '@mantine/core';
3
3
  import { UseFormReturnType } from '@mantine/form';
4
- import { ColumnDef, CoreOptions, TableOptions, InitialTableState as TanstackInitialTableState, TableState as TanstackTableState } from '@tanstack/table-core';
4
+ import { Column, ColumnDef, CoreOptions, TableOptions, InitialTableState as TanstackInitialTableState, TableState as TanstackTableState } from '@tanstack/table-core';
5
5
  import { Dispatch, ReactElement, ReactNode, RefObject } from 'react';
6
6
  import { DateRangePickerValue } from '../date-range-picker/DateRangePickerInlineCalendar';
7
+ import useStyles from './Table.styles';
7
8
  import { TableLayoutProps } from './layouts/RowLayout.types';
8
9
  import { TableLayouts } from './layouts/TableLayouts';
9
10
  import { TableActions } from './table-actions/TableActions';
10
11
  import { TableAccordionColumn, TableCollapsibleColumn } from './table-column/TableCollapsibleColumn';
12
+ import { TableColumnsSelector } from './table-columns-selector/TableColumnsSelector';
11
13
  import { TableConsumer } from './table-consumer/TableConsumer';
12
14
  import { TableDateRangePicker } from './table-date-range-picker/TableDateRangePicker';
13
15
  import { TableFilter } from './table-filter/TableFilter';
@@ -18,7 +20,6 @@ import { TableLoading } from './table-loading/TableLoading';
18
20
  import { TablePagination } from './table-pagination/TablePagination';
19
21
  import { TablePerPage } from './table-per-page/TablePerPage';
20
22
  import { TablePredicate } from './table-predicate/TablePredicate';
21
- import useStyles from './Table.styles';
22
23
  export type RowSelectionWithData<TData> = Record<string, TData>;
23
24
  export interface RowSelectionState<TData> {
24
25
  rowSelection: RowSelectionWithData<TData>;
@@ -69,6 +70,10 @@ export type TableFormType = {
69
70
  layout: TableLayout['name'];
70
71
  };
71
72
  export type TableContextType<TData> = {
73
+ /**
74
+ * Returns all flat columns in the table.
75
+ */
76
+ getAllColumns: () => Array<Column<TData, unknown>>;
72
77
  /**
73
78
  * Function to call when the table needs an update
74
79
  */
@@ -233,6 +238,7 @@ export interface TableProps<T> extends DefaultProps<TableStylesNames> {
233
238
  }
234
239
  export interface TableType {
235
240
  <T>(props: TableProps<T>): ReactElement;
241
+ ColumnsSelector: typeof TableColumnsSelector;
236
242
  Actions: typeof TableActions;
237
243
  Filter: typeof TableFilter;
238
244
  Footer: typeof TableFooter;
@@ -1 +1 @@
1
- {"version":3,"file":"Table.types.d.ts","sourceRoot":"","sources":["../../../../src/components/table/Table.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Table.types.d.ts","sourceRoot":"","sources":["../../../../src/components/table/Table.types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/table/Table.types.ts"],"sourcesContent":["import {Icon} from '@coveord/plasma-react-icons';\nimport {DefaultProps, Selectors} from '@mantine/core';\nimport {UseFormReturnType} from '@mantine/form';\nimport {\n ColumnDef,\n CoreOptions,\n TableOptions,\n InitialTableState as TanstackInitialTableState,\n TableState as TanstackTableState,\n} from '@tanstack/table-core';\nimport {Dispatch, ReactElement, ReactNode, RefObject} from 'react';\n\nimport {DateRangePickerValue} from '../date-range-picker/DateRangePickerInlineCalendar';\nimport {TableLayoutProps} from './layouts/RowLayout.types'; // TODO https://coveord.atlassian.net/browse/ADUI-9182\nimport {TableLayouts} from './layouts/TableLayouts';\nimport {TableActions} from './table-actions/TableActions';\nimport {TableAccordionColumn, TableCollapsibleColumn} from './table-column/TableCollapsibleColumn';\nimport {TableConsumer} from './table-consumer/TableConsumer';\nimport {TableDateRangePicker} from './table-date-range-picker/TableDateRangePicker';\nimport {TableFilter} from './table-filter/TableFilter';\nimport {TableFooter} from './table-footer/TableFooter';\nimport {TableHeader} from './table-header/TableHeader';\nimport {TableLastUpdated} from './table-last-updated/TableLastUpdated';\nimport {TableLoading} from './table-loading/TableLoading';\nimport {TablePagination} from './table-pagination/TablePagination';\nimport {TablePerPage} from './table-per-page/TablePerPage';\nimport {TablePredicate} from './table-predicate/TablePredicate';\nimport useStyles from './Table.styles';\n\nexport type RowSelectionWithData<TData> = Record<string, TData>;\nexport interface RowSelectionState<TData> {\n rowSelection: RowSelectionWithData<TData>;\n}\n\nexport interface TableState<TData> extends Omit<TanstackTableState, 'rowSelection'>, RowSelectionState<TData> {}\n\nexport interface InitialTableState<TData>\n extends Omit<TanstackInitialTableState, 'rowSelection'>,\n Partial<RowSelectionState<TData>>,\n Partial<TableFormType> {}\n\nexport type onTableChangeEvent<TData> = (params: TableState<TData> & TableFormType) => void;\n\nexport interface TableLayout {\n /**\n * Name of the layout.\n * Will be displayed in the layout control\n */\n name: string;\n /**\n * Icon illustrating the layout.\n * Will be displayed in the layout control\n */\n icon?: Icon;\n /**\n * Header portion of the table.\n * In the standard row layout that is where column headers would be displayed.\n */\n Header: <T>(props: TableLayoutProps<T>) => ReactElement;\n /**\n * Body portion of the table.\n * In the standard row layout that is where the rows would be displayed.\n */\n Body: <T>(props: TableLayoutProps<T>) => ReactElement;\n}\n\nexport type TableFormType = {\n /**\n * Object containing the table predicates and their selected values\n *\n * @example {type: \"LONG\", origin: \"system\"}\n */\n predicates: Record<string, string>;\n /**\n * Selected date range in the table\n *\n * @example [new Date(2022, 0, 1), new Date(2022, 0, 31)]\n */\n dateRange: DateRangePickerValue;\n /**\n * Selected layout name\n */\n layout: TableLayout['name'];\n};\n\nexport type TableContextType<TData> = {\n /**\n * Function to call when the table needs an update\n */\n onChange: () => void;\n /**\n * Internal state of the table\n *\n * @see https://tanstack.com/table/v8/docs/api/core/table#state\n */\n state: TableState<TData>;\n /**\n * Function to update the table state\n */\n setState: Dispatch<(prevState: TableState<TData>) => TableState<TData>>;\n /**\n * Whether the table currently as any kind of filter applied.\n * Useful to determine if the noDataChildren is an empty state or just the result of a filter\n */\n isFiltered: boolean;\n /**\n * Function that clears the filter and predicates\n */\n clearFilters: () => void;\n /**\n * Function that returns the selected row if any.\n */\n getSelectedRow: () => TData | null;\n /**\n * Function that returns an array of the selected rows. Most useful when multi row selection is enabled.\n */\n getSelectedRows: () => TData[];\n /**\n * Function that clear the selected row\n */\n clearSelection: () => void;\n /**\n * Form used to handle predicates and dateRange\n */\n form: UseFormReturnType<TableFormType>;\n /**\n * Table container ref\n */\n containerRef: RefObject<HTMLDivElement>;\n /**\n * Whether multi row selection is activated\n */\n multiRowSelectionEnabled: boolean;\n /**\n * Whether row selection is enabled or not\n */\n disableRowSelection: boolean;\n /**\n * Function that returns the number of pages\n */\n getPageCount: () => number;\n /**\n * Available layouts. When more than one layout is provided, it will display a layout control to switch between them.\n */\n layouts: TableLayout[];\n};\n\ntype TableStylesNames = Selectors<typeof useStyles>;\n\nexport interface TableProps<T> extends DefaultProps<TableStylesNames> {\n /**\n * Data to display in the table\n */\n data: T[];\n /**\n * Defines how each row is uniquely identified. It is highly recommended that you specify this prop to an ID that makes sense.\n */\n getRowId?: CoreOptions<T>['getRowId'];\n /**\n * Columns to display in the table.\n *\n * @see https://tanstack.com/table/v8/docs/guide/column-defs\n */\n columns: Array<ColumnDef<T>>;\n /**\n * Available layouts\n *\n * @default [Table.Layouts.Rows]\n */\n layouts?: TableLayout[];\n /**\n * Function called when the table mounts\n *\n * @param state the state of the table\n */\n onMount?: onTableChangeEvent<T>;\n /**\n * Function called when the table should update\n *\n * @param state the state of the table\n */\n onChange?: onTableChangeEvent<T>;\n /**\n * Function that generates the expandable content of a row\n * Return null for rows that don't need to be expandable\n *\n * @param datum the row for which the children should be generated.\n */\n getExpandChildren?: (datum: T) => ReactNode;\n /**\n * React children to show when the table has no rows to show. You can leverage useTable to get the state of the table\n */\n noDataChildren?: ReactNode;\n /**\n * Whether the table is loading or not\n *\n * @default false\n */\n loading?: boolean;\n /**\n * Childrens to display in the table. They need to be wrap in either `Table.Header` or `Table.Footer`\n *\n * @example\n * <Table ...>\n * <Table.Header>\n * <div>Hello</div>\n * </Table.Header>\n * </Table>\n */\n children?: ReactNode;\n /**\n * Initial state of the table\n */\n initialState?: InitialTableState<T>;\n /**\n * Action passed when user double clicks on a row\n */\n doubleClickAction?: (datum: T) => void;\n /**\n * Function called whenever the row selection changes\n *\n * @param selectedRows The selected rows\n */\n onRowSelectionChange?: (selectedRows: T[]) => void;\n /**\n * Whether the user can select multiple rows in order to perform actions in bulk\n *\n * @default false\n */\n multiRowSelectionEnabled?: boolean;\n /**\n * Whether row selection is enabled or not\n *\n * @default false\n */\n disableRowSelection?: boolean;\n /**\n * Nodes that are considered inside the table.\n *\n * Rows normally get unselected when clicking outside the table, but sometimes it has difficulties guessing what is inside or outside, for example when using modals.\n * You can use this prop to force the table to consider some nodes to be inside the table.\n *\n * @see https://mantine.dev/hooks/use-click-outside/#multiple-nodes\n */\n additionalRootNodes?: HTMLElement[];\n /**\n * Additional options that can be passed to the table\n */\n options?: Omit<\n Partial<TableOptions<T>>,\n | 'initialState'\n | 'data'\n | 'columns'\n | 'manualPagination'\n | 'enableMultiRowSelection'\n | 'getRowId'\n | 'getRowCanExpand'\n | 'enableRowSelection'\n | 'onRowSelectionChange'\n >;\n}\n\nexport interface TableType {\n <T>(props: TableProps<T>): ReactElement;\n Actions: typeof TableActions;\n Filter: typeof TableFilter;\n Footer: typeof TableFooter;\n Header: typeof TableHeader;\n LastUpdated: typeof TableLastUpdated;\n Pagination: typeof TablePagination;\n PerPage: typeof TablePerPage;\n Predicate: typeof TablePredicate;\n DateRangePicker: typeof TableDateRangePicker;\n CollapsibleColumn: typeof TableCollapsibleColumn;\n AccordionColumn: typeof TableAccordionColumn;\n Consumer: typeof TableConsumer;\n Loading: typeof TableLoading;\n Layouts: typeof TableLayouts;\n}\n"],"names":[],"mappings":"AAAA,WAsRC"}
1
+ {"version":3,"sources":["../../../../src/components/table/Table.types.ts"],"sourcesContent":["import {Icon} from '@coveord/plasma-react-icons';\nimport {DefaultProps, Selectors} from '@mantine/core';\nimport {UseFormReturnType} from '@mantine/form';\nimport {\n Column,\n ColumnDef,\n CoreOptions,\n TableOptions,\n InitialTableState as TanstackInitialTableState,\n TableState as TanstackTableState,\n} from '@tanstack/table-core';\nimport {Dispatch, ReactElement, ReactNode, RefObject} from 'react';\n\nimport {DateRangePickerValue} from '../date-range-picker/DateRangePickerInlineCalendar';\nimport useStyles from './Table.styles';\nimport {TableLayoutProps} from './layouts/RowLayout.types'; // TODO https://coveord.atlassian.net/browse/ADUI-9182\nimport {TableLayouts} from './layouts/TableLayouts';\nimport {TableActions} from './table-actions/TableActions';\nimport {TableAccordionColumn, TableCollapsibleColumn} from './table-column/TableCollapsibleColumn';\nimport {TableColumnsSelector} from './table-columns-selector/TableColumnsSelector';\nimport {TableConsumer} from './table-consumer/TableConsumer';\nimport {TableDateRangePicker} from './table-date-range-picker/TableDateRangePicker';\nimport {TableFilter} from './table-filter/TableFilter';\nimport {TableFooter} from './table-footer/TableFooter';\nimport {TableHeader} from './table-header/TableHeader';\nimport {TableLastUpdated} from './table-last-updated/TableLastUpdated';\nimport {TableLoading} from './table-loading/TableLoading';\nimport {TablePagination} from './table-pagination/TablePagination';\nimport {TablePerPage} from './table-per-page/TablePerPage';\nimport {TablePredicate} from './table-predicate/TablePredicate';\n\nexport type RowSelectionWithData<TData> = Record<string, TData>;\nexport interface RowSelectionState<TData> {\n rowSelection: RowSelectionWithData<TData>;\n}\n\nexport interface TableState<TData> extends Omit<TanstackTableState, 'rowSelection'>, RowSelectionState<TData> {}\n\nexport interface InitialTableState<TData>\n extends Omit<TanstackInitialTableState, 'rowSelection'>,\n Partial<RowSelectionState<TData>>,\n Partial<TableFormType> {}\n\nexport type onTableChangeEvent<TData> = (params: TableState<TData> & TableFormType) => void;\n\nexport interface TableLayout {\n /**\n * Name of the layout.\n * Will be displayed in the layout control\n */\n name: string;\n /**\n * Icon illustrating the layout.\n * Will be displayed in the layout control\n */\n icon?: Icon;\n /**\n * Header portion of the table.\n * In the standard row layout that is where column headers would be displayed.\n */\n Header: <T>(props: TableLayoutProps<T>) => ReactElement;\n /**\n * Body portion of the table.\n * In the standard row layout that is where the rows would be displayed.\n */\n Body: <T>(props: TableLayoutProps<T>) => ReactElement;\n}\n\nexport type TableFormType = {\n /**\n * Object containing the table predicates and their selected values\n *\n * @example {type: \"LONG\", origin: \"system\"}\n */\n predicates: Record<string, string>;\n /**\n * Selected date range in the table\n *\n * @example [new Date(2022, 0, 1), new Date(2022, 0, 31)]\n */\n dateRange: DateRangePickerValue;\n /**\n * Selected layout name\n */\n layout: TableLayout['name'];\n};\n\nexport type TableContextType<TData> = {\n /**\n * Returns all flat columns in the table.\n */\n getAllColumns: () => Array<Column<TData, unknown>>;\n /**\n * Function to call when the table needs an update\n */\n onChange: () => void;\n /**\n * Internal state of the table\n *\n * @see https://tanstack.com/table/v8/docs/api/core/table#state\n */\n state: TableState<TData>;\n /**\n * Function to update the table state\n */\n setState: Dispatch<(prevState: TableState<TData>) => TableState<TData>>;\n /**\n * Whether the table currently as any kind of filter applied.\n * Useful to determine if the noDataChildren is an empty state or just the result of a filter\n */\n isFiltered: boolean;\n /**\n * Function that clears the filter and predicates\n */\n clearFilters: () => void;\n /**\n * Function that returns the selected row if any.\n */\n getSelectedRow: () => TData | null;\n /**\n * Function that returns an array of the selected rows. Most useful when multi row selection is enabled.\n */\n getSelectedRows: () => TData[];\n /**\n * Function that clear the selected row\n */\n clearSelection: () => void;\n /**\n * Form used to handle predicates and dateRange\n */\n form: UseFormReturnType<TableFormType>;\n /**\n * Table container ref\n */\n containerRef: RefObject<HTMLDivElement>;\n /**\n * Whether multi row selection is activated\n */\n multiRowSelectionEnabled: boolean;\n /**\n * Whether row selection is enabled or not\n */\n disableRowSelection: boolean;\n /**\n * Function that returns the number of pages\n */\n getPageCount: () => number;\n /**\n * Available layouts. When more than one layout is provided, it will display a layout control to switch between them.\n */\n layouts: TableLayout[];\n};\n\ntype TableStylesNames = Selectors<typeof useStyles>;\n\nexport interface TableProps<T> extends DefaultProps<TableStylesNames> {\n /**\n * Data to display in the table\n */\n data: T[];\n /**\n * Defines how each row is uniquely identified. It is highly recommended that you specify this prop to an ID that makes sense.\n */\n getRowId?: CoreOptions<T>['getRowId'];\n /**\n * Columns to display in the table.\n *\n * @see https://tanstack.com/table/v8/docs/guide/column-defs\n */\n columns: Array<ColumnDef<T>>;\n /**\n * Available layouts\n *\n * @default [Table.Layouts.Rows]\n */\n layouts?: TableLayout[];\n /**\n * Function called when the table mounts\n *\n * @param state the state of the table\n */\n onMount?: onTableChangeEvent<T>;\n /**\n * Function called when the table should update\n *\n * @param state the state of the table\n */\n onChange?: onTableChangeEvent<T>;\n /**\n * Function that generates the expandable content of a row\n * Return null for rows that don't need to be expandable\n *\n * @param datum the row for which the children should be generated.\n */\n getExpandChildren?: (datum: T) => ReactNode;\n /**\n * React children to show when the table has no rows to show. You can leverage useTable to get the state of the table\n */\n noDataChildren?: ReactNode;\n /**\n * Whether the table is loading or not\n *\n * @default false\n */\n loading?: boolean;\n /**\n * Childrens to display in the table. They need to be wrap in either `Table.Header` or `Table.Footer`\n *\n * @example\n * <Table ...>\n * <Table.Header>\n * <div>Hello</div>\n * </Table.Header>\n * </Table>\n */\n children?: ReactNode;\n /**\n * Initial state of the table\n */\n initialState?: InitialTableState<T>;\n /**\n * Action passed when user double clicks on a row\n */\n doubleClickAction?: (datum: T) => void;\n /**\n * Function called whenever the row selection changes\n *\n * @param selectedRows The selected rows\n */\n onRowSelectionChange?: (selectedRows: T[]) => void;\n /**\n * Whether the user can select multiple rows in order to perform actions in bulk\n *\n * @default false\n */\n multiRowSelectionEnabled?: boolean;\n /**\n * Whether row selection is enabled or not\n *\n * @default false\n */\n disableRowSelection?: boolean;\n /**\n * Nodes that are considered inside the table.\n *\n * Rows normally get unselected when clicking outside the table, but sometimes it has difficulties guessing what is inside or outside, for example when using modals.\n * You can use this prop to force the table to consider some nodes to be inside the table.\n *\n * @see https://mantine.dev/hooks/use-click-outside/#multiple-nodes\n */\n additionalRootNodes?: HTMLElement[];\n /**\n * Additional options that can be passed to the table\n */\n options?: Omit<\n Partial<TableOptions<T>>,\n | 'initialState'\n | 'data'\n | 'columns'\n | 'manualPagination'\n | 'enableMultiRowSelection'\n | 'getRowId'\n | 'getRowCanExpand'\n | 'enableRowSelection'\n | 'onRowSelectionChange'\n >;\n}\n\nexport interface TableType {\n <T>(props: TableProps<T>): ReactElement;\n ColumnsSelector: typeof TableColumnsSelector;\n Actions: typeof TableActions;\n Filter: typeof TableFilter;\n Footer: typeof TableFooter;\n Header: typeof TableHeader;\n LastUpdated: typeof TableLastUpdated;\n Pagination: typeof TablePagination;\n PerPage: typeof TablePerPage;\n Predicate: typeof TablePredicate;\n DateRangePicker: typeof TableDateRangePicker;\n CollapsibleColumn: typeof TableCollapsibleColumn;\n AccordionColumn: typeof TableAccordionColumn;\n Consumer: typeof TableConsumer;\n Loading: typeof TableLoading;\n Layouts: typeof TableLayouts;\n}\n"],"names":[],"mappings":"AAAA,WA6RC"}
@@ -46,7 +46,7 @@ const RowLayoutBody = ({ table, doubleClickAction, getExpandChildren, loading, k
46
46
  const cell = el.children[el.children.length - 1];
47
47
  cell.querySelector('button').click();
48
48
  };
49
- const rows = table.getRowModel().rows.map((row)=>{
49
+ const rows = table.getRowModel()?.rows.map((row)=>{
50
50
  const rowChildren = getExpandChildren?.(row.original) ?? null;
51
51
  const isSelected = !!row.getIsSelected();
52
52
  const shouldKeepSelection = keepSelection && isSelected;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/table/layouts/RowLayout.tsx"],"sourcesContent":["import {ListSize16Px} from '@coveord/plasma-react-icons';\nimport {Box, Collapse} from '@mantine/core';\nimport {flexRender} from '@tanstack/react-table';\nimport {defaultColumnSizing} from '@tanstack/table-core';\nimport {Fragment, type MouseEvent} from 'react';\nimport {TableLayout} from '../Table.types';\nimport {useTable} from '../TableContext';\nimport {TableCollapsibleColumn} from '../table-column/TableCollapsibleColumn';\nimport {TableSelectableColumn} from '../table-column/TableSelectableColumn';\nimport {Th} from '../table-header/Th';\nimport {TableLoading} from '../table-loading/TableLoading';\nimport useStyles from './RowLayout.styles';\nimport {TableLayoutProps} from './RowLayout.types'; // TODO https://coveord.atlassian.net/browse/ADUI-9182\n\nconst RowLayoutHeader = <T,>({table, classNames, styles, unstyled}: TableLayoutProps<T>) => {\n const {multiRowSelectionEnabled, disableRowSelection} = useTable();\n const {classes} = useStyles(\n {disableRowSelection, multiRowSelectionEnabled},\n {name: 'RowLayout', classNames, styles, unstyled},\n );\n const headers = table.getHeaderGroups().map((headerGroup) => (\n <tr key={headerGroup.id} className={classes.headerColumns}>\n {headerGroup.headers.map((columnHeader) => (\n <Th key={columnHeader.id} header={columnHeader} />\n ))}\n </tr>\n ));\n return <>{headers}</>;\n};\n\nconst RowLayoutBody = <T,>({\n table,\n doubleClickAction,\n getExpandChildren,\n loading,\n keepSelection,\n classNames,\n styles,\n unstyled,\n ...others\n}: TableLayoutProps<T>) => {\n const {multiRowSelectionEnabled, disableRowSelection} = useTable();\n const {classes, cx} = useStyles(\n {disableRowSelection, multiRowSelectionEnabled},\n {name: 'RowLayout', classNames, styles, unstyled},\n );\n\n const toggleCollapsible = (el: HTMLTableRowElement) => {\n const cell = el.children[el.children.length - 1] as HTMLTableCellElement;\n cell.querySelector('button').click();\n };\n\n const rows = table.getRowModel().rows.map((row) => {\n const rowChildren = getExpandChildren?.(row.original) ?? null;\n const isSelected = !!row.getIsSelected();\n const shouldKeepSelection = keepSelection && isSelected;\n const onClick = (event: MouseEvent<HTMLTableRowElement>) => {\n if (rowChildren) {\n toggleCollapsible(event.currentTarget);\n }\n if (!disableRowSelection && !multiRowSelectionEnabled && !shouldKeepSelection) {\n row.toggleSelected();\n }\n };\n\n return (\n <Fragment key={row.id}>\n <tr\n onClick={onClick}\n onDoubleClick={() => doubleClickAction?.(row.original)}\n className={cx(classes.row, {\n [classes.rowSelected]: isSelected,\n [classes.rowUnselectable]: disableRowSelection,\n })}\n aria-selected={isSelected}\n data-testid={row.id}\n >\n {row.getVisibleCells().map((cell) => {\n const columnSizing = {\n ...defaultColumnSizing,\n size: cell.column.columnDef.size,\n minSize: cell.column.columnDef.minSize,\n maxSize: cell.column.columnDef.maxSize,\n };\n\n const onCollapsibleCellClick = (event: MouseEvent<HTMLTableCellElement>) => {\n if (cell.column.id === TableSelectableColumn.id && !disableRowSelection) {\n event.stopPropagation();\n row.getToggleSelectedHandler();\n }\n };\n return (\n <td\n key={cell.id}\n data-testid={cell.id}\n style={{\n width: columnSizing.size ?? 'auto',\n minWidth: columnSizing.minSize,\n maxWidth: columnSizing.maxSize,\n }}\n className={cx(classes.cell, {\n [classes.rowCollapsibleButtonCell]: cell.column.id === TableCollapsibleColumn.id,\n })}\n onClick={onCollapsibleCellClick}\n >\n <TableLoading visible={loading}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableLoading>\n </td>\n );\n })}\n </tr>\n {rowChildren ? (\n <tr>\n <td\n colSpan={table.getAllColumns().length}\n style={{\n padding: 0,\n }}\n >\n <Collapse in={row.getIsExpanded()}>\n <Box className={classes.collapsible} px=\"sm\" py=\"xs\">\n {rowChildren}\n </Box>\n </Collapse>\n </td>\n </tr>\n ) : null}\n </Fragment>\n );\n });\n\n return <>{rows}</>;\n};\n\nexport const RowLayout: TableLayout = {\n name: 'Rows',\n icon: ListSize16Px,\n Header: RowLayoutHeader,\n Body: RowLayoutBody,\n};\n"],"names":["ListSize16Px","Box","Collapse","flexRender","defaultColumnSizing","Fragment","useTable","TableCollapsibleColumn","TableSelectableColumn","Th","TableLoading","useStyles","RowLayoutHeader","table","classNames","styles","unstyled","multiRowSelectionEnabled","disableRowSelection","classes","name","headers","getHeaderGroups","map","headerGroup","tr","className","headerColumns","columnHeader","header","id","RowLayoutBody","doubleClickAction","getExpandChildren","loading","keepSelection","others","cx","toggleCollapsible","el","cell","children","length","querySelector","click","rows","getRowModel","row","rowChildren","original","isSelected","getIsSelected","shouldKeepSelection","onClick","event","currentTarget","toggleSelected","onDoubleClick","rowSelected","rowUnselectable","aria-selected","data-testid","getVisibleCells","columnSizing","size","column","columnDef","minSize","maxSize","onCollapsibleCellClick","stopPropagation","getToggleSelectedHandler","td","style","width","minWidth","maxWidth","rowCollapsibleButtonCell","visible","getContext","colSpan","getAllColumns","padding","in","getIsExpanded","collapsible","px","py","RowLayout","icon","Header","Body"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/components/table/layouts/RowLayout.tsx"],"sourcesContent":["import {ListSize16Px} from '@coveord/plasma-react-icons';\nimport {Box, Collapse} from '@mantine/core';\nimport {flexRender} from '@tanstack/react-table';\nimport {defaultColumnSizing} from '@tanstack/table-core';\nimport {Fragment, type MouseEvent} from 'react';\nimport {TableLayout} from '../Table.types';\nimport {useTable} from '../TableContext';\nimport {TableCollapsibleColumn} from '../table-column/TableCollapsibleColumn';\nimport {TableSelectableColumn} from '../table-column/TableSelectableColumn';\nimport {Th} from '../table-header/Th';\nimport {TableLoading} from '../table-loading/TableLoading';\nimport useStyles from './RowLayout.styles';\nimport {TableLayoutProps} from './RowLayout.types'; // TODO https://coveord.atlassian.net/browse/ADUI-9182\n\nconst RowLayoutHeader = <T,>({table, classNames, styles, unstyled}: TableLayoutProps<T>) => {\n const {multiRowSelectionEnabled, disableRowSelection} = useTable();\n const {classes} = useStyles(\n {disableRowSelection, multiRowSelectionEnabled},\n {name: 'RowLayout', classNames, styles, unstyled},\n );\n const headers = table.getHeaderGroups().map((headerGroup) => (\n <tr key={headerGroup.id} className={classes.headerColumns}>\n {headerGroup.headers.map((columnHeader) => (\n <Th key={columnHeader.id} header={columnHeader} />\n ))}\n </tr>\n ));\n return <>{headers}</>;\n};\n\nconst RowLayoutBody = <T,>({\n table,\n doubleClickAction,\n getExpandChildren,\n loading,\n keepSelection,\n classNames,\n styles,\n unstyled,\n ...others\n}: TableLayoutProps<T>) => {\n const {multiRowSelectionEnabled, disableRowSelection} = useTable();\n const {classes, cx} = useStyles(\n {disableRowSelection, multiRowSelectionEnabled},\n {name: 'RowLayout', classNames, styles, unstyled},\n );\n\n const toggleCollapsible = (el: HTMLTableRowElement) => {\n const cell = el.children[el.children.length - 1] as HTMLTableCellElement;\n cell.querySelector('button').click();\n };\n\n const rows = table.getRowModel()?.rows.map((row) => {\n const rowChildren = getExpandChildren?.(row.original) ?? null;\n const isSelected = !!row.getIsSelected();\n const shouldKeepSelection = keepSelection && isSelected;\n const onClick = (event: MouseEvent<HTMLTableRowElement>) => {\n if (rowChildren) {\n toggleCollapsible(event.currentTarget);\n }\n if (!disableRowSelection && !multiRowSelectionEnabled && !shouldKeepSelection) {\n row.toggleSelected();\n }\n };\n\n return (\n <Fragment key={row.id}>\n <tr\n onClick={onClick}\n onDoubleClick={() => doubleClickAction?.(row.original)}\n className={cx(classes.row, {\n [classes.rowSelected]: isSelected,\n [classes.rowUnselectable]: disableRowSelection,\n })}\n aria-selected={isSelected}\n data-testid={row.id}\n >\n {row.getVisibleCells().map((cell) => {\n const columnSizing = {\n ...defaultColumnSizing,\n size: cell.column.columnDef.size,\n minSize: cell.column.columnDef.minSize,\n maxSize: cell.column.columnDef.maxSize,\n };\n\n const onCollapsibleCellClick = (event: MouseEvent<HTMLTableCellElement>) => {\n if (cell.column.id === TableSelectableColumn.id && !disableRowSelection) {\n event.stopPropagation();\n row.getToggleSelectedHandler();\n }\n };\n return (\n <td\n key={cell.id}\n data-testid={cell.id}\n style={{\n width: columnSizing.size ?? 'auto',\n minWidth: columnSizing.minSize,\n maxWidth: columnSizing.maxSize,\n }}\n className={cx(classes.cell, {\n [classes.rowCollapsibleButtonCell]: cell.column.id === TableCollapsibleColumn.id,\n })}\n onClick={onCollapsibleCellClick}\n >\n <TableLoading visible={loading}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableLoading>\n </td>\n );\n })}\n </tr>\n {rowChildren ? (\n <tr>\n <td\n colSpan={table.getAllColumns().length}\n style={{\n padding: 0,\n }}\n >\n <Collapse in={row.getIsExpanded()}>\n <Box className={classes.collapsible} px=\"sm\" py=\"xs\">\n {rowChildren}\n </Box>\n </Collapse>\n </td>\n </tr>\n ) : null}\n </Fragment>\n );\n });\n\n return <>{rows}</>;\n};\n\nexport const RowLayout: TableLayout = {\n name: 'Rows',\n icon: ListSize16Px,\n Header: RowLayoutHeader,\n Body: RowLayoutBody,\n};\n"],"names":["ListSize16Px","Box","Collapse","flexRender","defaultColumnSizing","Fragment","useTable","TableCollapsibleColumn","TableSelectableColumn","Th","TableLoading","useStyles","RowLayoutHeader","table","classNames","styles","unstyled","multiRowSelectionEnabled","disableRowSelection","classes","name","headers","getHeaderGroups","map","headerGroup","tr","className","headerColumns","columnHeader","header","id","RowLayoutBody","doubleClickAction","getExpandChildren","loading","keepSelection","others","cx","toggleCollapsible","el","cell","children","length","querySelector","click","rows","getRowModel","row","rowChildren","original","isSelected","getIsSelected","shouldKeepSelection","onClick","event","currentTarget","toggleSelected","onDoubleClick","rowSelected","rowUnselectable","aria-selected","data-testid","getVisibleCells","columnSizing","size","column","columnDef","minSize","maxSize","onCollapsibleCellClick","stopPropagation","getToggleSelectedHandler","td","style","width","minWidth","maxWidth","rowCollapsibleButtonCell","visible","getContext","colSpan","getAllColumns","padding","in","getIsExpanded","collapsible","px","py","RowLayout","icon","Header","Body"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { FunctionComponent } from 'react';
2
+ import { TableColumnsSelectorProps } from './TableColumnsSelector.types';
3
+ export declare const TableColumnsSelector: FunctionComponent<TableColumnsSelectorProps>;
4
+ //# sourceMappingURL=TableColumnsSelector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableColumnsSelector.d.ts","sourceRoot":"","sources":["../../../../../src/components/table/table-columns-selector/TableColumnsSelector.tsx"],"names":[],"mappings":"AACA,OAAO,EAAC,iBAAiB,EAAC,MAAM,OAAO,CAAC;AAKxC,OAAO,EAAC,yBAAyB,EAAC,MAAM,8BAA8B,CAAC;AAIvE,eAAO,MAAM,oBAAoB,EAAE,iBAAiB,CAAC,yBAAyB,CAmE7E,CAAC"}
@@ -0,0 +1,84 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { Button, Checkbox, Divider, Grid, Popover, ScrollArea, Stack, Tooltip } from '@mantine/core';
3
+ import { TableComponentsOrder } from '../Table.styles';
4
+ import { useTable } from '../TableContext';
5
+ import useStyles from './TableColumnsSelector.styles';
6
+ const COLUMNS_IDS_TO_EXCLUDE = [
7
+ 'collapsible',
8
+ 'select'
9
+ ];
10
+ export const TableColumnsSelector = ({ classNames, styles, unstyled, label = 'Edit columns', buttonVariant = 'outline', showVisibleCountLabel = false, nonHideableColumns = [], maxSelectableColumns, footer, limitReachedTooltip = 'You have reached the maximum display limit.', columnNames })=>{
11
+ const { classes } = useStyles(null, {
12
+ name: 'TableColumnsSelector',
13
+ classNames,
14
+ styles,
15
+ unstyled
16
+ });
17
+ const { getAllColumns } = useTable();
18
+ const columnsToExclude = [
19
+ ...nonHideableColumns,
20
+ ...COLUMNS_IDS_TO_EXCLUDE
21
+ ];
22
+ const filteredColumns = getAllColumns().filter((column)=>!columnsToExclude.includes(column.id));
23
+ const selectedColumnsCount = filteredColumns.filter((column)=>column.getIsVisible()).length;
24
+ if (filteredColumns.length <= 0) {
25
+ return null;
26
+ }
27
+ return /*#__PURE__*/ _jsx(Grid.Col, {
28
+ span: "content",
29
+ order: TableComponentsOrder.ColumnsSelector,
30
+ py: "sm",
31
+ className: classes.root,
32
+ children: /*#__PURE__*/ _jsxs(Popover, {
33
+ withinPortal: true,
34
+ position: "bottom",
35
+ shadow: "md",
36
+ children: [
37
+ /*#__PURE__*/ _jsx(Popover.Target, {
38
+ children: /*#__PURE__*/ _jsx(Button, {
39
+ variant: buttonVariant,
40
+ children: `${label}${showVisibleCountLabel ? ` (${selectedColumnsCount})` : ''}`
41
+ })
42
+ }),
43
+ /*#__PURE__*/ _jsxs(Popover.Dropdown, {
44
+ miw: 240,
45
+ children: [
46
+ /*#__PURE__*/ _jsx(ScrollArea.Autosize, {
47
+ mah: 154,
48
+ children: /*#__PURE__*/ _jsx(Stack, {
49
+ children: filteredColumns.map((column)=>{
50
+ const isDisabled = selectedColumnsCount >= maxSelectableColumns && !column.getIsVisible();
51
+ return /*#__PURE__*/ _jsx(Tooltip, {
52
+ label: limitReachedTooltip,
53
+ disabled: !isDisabled,
54
+ position: "left",
55
+ children: /*#__PURE__*/ _jsx("div", {
56
+ children: /*#__PURE__*/ _jsx(Checkbox, {
57
+ label: columnNames?.[column.id] || column.id,
58
+ name: column.id,
59
+ checked: column.getIsVisible(),
60
+ disabled: isDisabled,
61
+ onChange: column.getToggleVisibilityHandler()
62
+ }, column.id)
63
+ })
64
+ });
65
+ })
66
+ })
67
+ }),
68
+ maxSelectableColumns && /*#__PURE__*/ _jsxs(_Fragment, {
69
+ children: [
70
+ /*#__PURE__*/ _jsx(Divider, {
71
+ mb: "xs",
72
+ mt: "sm"
73
+ }),
74
+ footer
75
+ ]
76
+ })
77
+ ]
78
+ })
79
+ ]
80
+ })
81
+ });
82
+ };
83
+
84
+ //# sourceMappingURL=TableColumnsSelector.js.map