@pega/lists-react 9.25.1-1 → 9.25.1-11

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 (63) hide show
  1. package/lib/Core/Components/DefaultComponents/CellRenderers/RowActionMenu.d.ts.map +1 -1
  2. package/lib/Core/Components/DefaultComponents/CellRenderers/RowActionMenu.js +6 -53
  3. package/lib/Core/Components/DefaultComponents/CellRenderers/RowActionMenu.js.map +1 -1
  4. package/lib/Core/Components/DefaultComponents/CellRenderers/RowSelectHandle.js +9 -2
  5. package/lib/Core/Components/DefaultComponents/CellRenderers/RowSelectHandle.js.map +1 -1
  6. package/lib/Core/Components/RenderingEngine/ComponentResolverFactory.d.ts +1 -0
  7. package/lib/Core/Components/RenderingEngine/ComponentResolverFactory.d.ts.map +1 -1
  8. package/lib/Core/Components/RenderingEngine/ComponentResolverFactory.js +6 -1
  9. package/lib/Core/Components/RenderingEngine/ComponentResolverFactory.js.map +1 -1
  10. package/lib/Core/Components/Virtualise/VirtualizeInfinite.js +4 -2
  11. package/lib/Core/Components/Virtualise/VirtualizeInfinite.js.map +1 -1
  12. package/lib/Core/Components/Virtualise/index.js +5 -3
  13. package/lib/Core/Components/Virtualise/index.js.map +1 -1
  14. package/lib/Core/Utils/fetchRowActions.d.ts +16 -0
  15. package/lib/Core/Utils/fetchRowActions.d.ts.map +1 -0
  16. package/lib/Core/Utils/fetchRowActions.js +49 -0
  17. package/lib/Core/Utils/fetchRowActions.js.map +1 -0
  18. package/lib/Core/Utils/styles.d.ts +9 -0
  19. package/lib/Core/Utils/styles.d.ts.map +1 -1
  20. package/lib/Core/Utils/styles.js +8 -3
  21. package/lib/Core/Utils/styles.js.map +1 -1
  22. package/lib/Core/Views/Table/CellWrapper.d.ts +3 -1
  23. package/lib/Core/Views/Table/CellWrapper.d.ts.map +1 -1
  24. package/lib/Core/Views/Table/CellWrapper.js +4 -3
  25. package/lib/Core/Views/Table/CellWrapper.js.map +1 -1
  26. package/lib/Core/Views/Table/Row.d.ts.map +1 -1
  27. package/lib/Core/Views/Table/Row.js +24 -10
  28. package/lib/Core/Views/Table/Row.js.map +1 -1
  29. package/lib/Core/Views/Table/StyledTableContainer.d.ts.map +1 -1
  30. package/lib/Core/Views/Table/StyledTableContainer.js +74 -24
  31. package/lib/Core/Views/Table/StyledTableContainer.js.map +1 -1
  32. package/lib/Core/Views/Table/VirtualizeWrapper.d.ts +3 -1
  33. package/lib/Core/Views/Table/VirtualizeWrapper.d.ts.map +1 -1
  34. package/lib/Core/Views/Table/VirtualizeWrapper.js +6 -5
  35. package/lib/Core/Views/Table/VirtualizeWrapper.js.map +1 -1
  36. package/lib/Core/Views/Table/index.d.ts.map +1 -1
  37. package/lib/Core/Views/Table/index.js +15 -6
  38. package/lib/Core/Views/Table/index.js.map +1 -1
  39. package/lib/Core/Views/Table/useMasterDetailCleanup.d.ts +11 -0
  40. package/lib/Core/Views/Table/useMasterDetailCleanup.d.ts.map +1 -0
  41. package/lib/Core/Views/Table/useMasterDetailCleanup.js +27 -0
  42. package/lib/Core/Views/Table/useMasterDetailCleanup.js.map +1 -0
  43. package/lib/Core/Views/Table/useMasterDetailHost.d.ts +14 -0
  44. package/lib/Core/Views/Table/useMasterDetailHost.d.ts.map +1 -0
  45. package/lib/Core/Views/Table/useMasterDetailHost.js +56 -0
  46. package/lib/Core/Views/Table/useMasterDetailHost.js.map +1 -0
  47. package/lib/Core/Views/Table/useMasterDetailRenderer.d.ts +13 -0
  48. package/lib/Core/Views/Table/useMasterDetailRenderer.d.ts.map +1 -0
  49. package/lib/Core/Views/Table/useMasterDetailRenderer.js +23 -0
  50. package/lib/Core/Views/Table/useMasterDetailRenderer.js.map +1 -0
  51. package/lib/Core/Views/Table/useMasterDetailRow.d.ts +9 -0
  52. package/lib/Core/Views/Table/useMasterDetailRow.d.ts.map +1 -0
  53. package/lib/Core/Views/Table/useMasterDetailRow.js +55 -0
  54. package/lib/Core/Views/Table/useMasterDetailRow.js.map +1 -0
  55. package/lib/Core/Views/Table/useMasterDetailState.d.ts +21 -0
  56. package/lib/Core/Views/Table/useMasterDetailState.d.ts.map +1 -0
  57. package/lib/Core/Views/Table/useMasterDetailState.js +33 -0
  58. package/lib/Core/Views/Table/useMasterDetailState.js.map +1 -0
  59. package/lib/Core/constants.d.ts +4 -0
  60. package/lib/Core/constants.d.ts.map +1 -1
  61. package/lib/Core/constants.js +4 -0
  62. package/lib/Core/constants.js.map +1 -1
  63. package/package.json +8 -7
@@ -1 +1 @@
1
- {"version":3,"file":"StyledTableContainer.js","sourceRoot":"","sources":["../../../../Core/Views/Table/StyledTableContainer.jsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef } from 'react';\nimport styled, { css } from 'styled-components';\nimport {\n getLuminance,\n meetsContrastGuidelines,\n mix,\n readableColor,\n transparentize\n} from 'polished';\n\nimport { StyledStatus } from '@pega/cosmos-react-core/lib/components/Badges/Status';\nimport { StyledRadioCheck } from '@pega/cosmos-react-core/lib/components/RadioCheck/RadioCheck';\nimport {\n StyledLabel,\n StyledProgressBackdrop,\n calculateFontSize,\n tryCatch,\n isSameColor\n} from '@pega/cosmos-react-core';\nimport { StyledTabPanel } from '@pega/cosmos-react-core/lib/components/Tabs/TabPanel';\n\nimport { generateRSDataContainerHeightStyles, generateRSHeightStyles } from '../../Utils/styles';\n\nimport { CellIcon } from './CellWrapper';\n\nconst StyledTableContainer = styled(forwardRef((props, ref) => <div ref={ref} {...props} />))(({\n theme,\n view,\n isFullscreen\n}) => {\n let colIdToFillRemainingSpace;\n let isAggregationApplied = false;\n\n (view.columns ?? [])\n .filter(c => !c.hidden)\n .forEach(c => {\n if (!colIdToFillRemainingSpace && c.field.fillAvailableSpace) {\n colIdToFillRemainingSpace = c.field.id;\n }\n if (c.aggregated) {\n isAggregationApplied = true;\n }\n });\n\n const fontSize = calculateFontSize(theme.base['font-size'], theme.base['font-scale']);\n const showFreezeLine =\n view.state.responsive?.sm &&\n !(view.hasNoRecords || view.hasNoFrozenColumns || view.bHideFreezeLine);\n const selectedRowColor = tryCatch(() =>\n mix(0.85, theme.base.palette['primary-background'], theme.base.palette.interactive)\n );\n const lightGreyColor = theme.base.colors.gray['extra-light'];\n const freezeLineShadowTransparent = transparentize(\n getLuminance(theme.components.table.header['foreground-color']) < 0.5 ? 0.9 : 0.75,\n theme.components.table.header['foreground-color']\n );\n\n const headerBackground = theme.components.table.header['background-color'];\n const bodyPrimaryBackground = theme.components.table.body['background-color'];\n const bodySecondaryBackground = theme.components.table.body['secondary-background-color'];\n const secondaryBackgroundForEvenRow = isSameColor(headerBackground, bodyPrimaryBackground);\n\n /* Calculating usable striped row background and foreground colors */\n const stripedRowBackground =\n getLuminance(bodySecondaryBackground) > 0.5\n ? bodySecondaryBackground\n : mix(0.75, bodyPrimaryBackground, bodySecondaryBackground);\n\n const stripedRowContrast = meetsContrastGuidelines(\n theme.components.table.body['foreground-color'],\n stripedRowBackground\n ).AA;\n const useableStripedRowForeground = stripedRowContrast\n ? theme.components.table.body['foreground-color']\n : readableColor(theme.components.table.body['foreground-color'], stripedRowBackground);\n\n /* Calculating even row and odd row background and foreground colors */\n const evenRowBackgroundColor = secondaryBackgroundForEvenRow\n ? bodySecondaryBackground\n : bodyPrimaryBackground;\n\n const useableEvenRowForeground = secondaryBackgroundForEvenRow\n ? useableStripedRowForeground\n : theme.components.table.body['foreground-color'];\n\n /* Calculating usable odd row background and foreground colors */\n const oddRowBackgroundColor = secondaryBackgroundForEvenRow\n ? bodyPrimaryBackground\n : bodySecondaryBackground;\n\n const useableOddRowForeground = secondaryBackgroundForEvenRow\n ? theme.components.table.body['foreground-color']\n : useableStripedRowForeground;\n\n const headerForegroundContrast = meetsContrastGuidelines(\n theme.components.table.header['foreground-color'],\n theme.components.table.header['background-color']\n ).AA;\n const usableHeaderForeground = headerForegroundContrast\n ? theme.components.table.header['foreground-color']\n : readableColor(\n theme.components.table.header['foreground-color'],\n theme.components.table.header['background-color']\n );\n\n const borderVerticalInner = theme.components.table.border['vertical-inner'];\n const borderVerticalOuter = theme.components.table.border['vertical-outer'];\n const borderHorizontalInner =\n theme.components.table.border['horizontal-inner'] && !theme.components.table['striped-rows'];\n const borderHorizontalOuter = theme.components.table.border['horizontal-outer'];\n\n const showBorderOnLastStripedRow =\n theme.components.table.border['horizontal-inner'] && theme.components.table['striped-rows'];\n\n return css`\n --forground-color: ${theme.base.palette['foreground-color']};\n --interactive: ${theme.base.palette.interactive};\n --medium-blue: ${theme.base.colors.blue.medium};\n --border-color: ${theme.base.palette['border-line']};\n --border-color-freeze: #a5a5a5;\n --border-width: 0.062rem;\n --border-style: var(--border-width) solid var(--border-color);\n --font-stretch: ${theme.components.table.typography['font-stretch']};\n --letter-spacing: ${theme.components.table.typography['letter-spacing']};\n --cell-padding: ${theme.base.spacing};\n --cell-vertical-padding: calc(${theme.base.spacing} * 0.5);\n --header-cell-padding: 0 0.44rem 0 var(--cell-padding);\n --header-bg-color: ${theme.components.table.header['background-color']};\n --header-fg-color: ${usableHeaderForeground};\n --default-group-header-height: 1.5rem;\n --group-header-height: var(--default-group-header-height);\n --group-bg-color: ${theme.components.table.body['secondary-background-color']};\n --box-sizing: content-box;\n --animation-ease: ${theme.base.animation.timing.ease};\n --font-weight-semi-bold: ${theme.base['font-weight']['semi-bold']};\n --row-height-multiplier: 1.125;\n --cell-fixed-position: sticky;\n position: relative;\n ${() => generateRSHeightStyles({ view, isFullscreen })}\n\n .small-screen-table {\n --cell-fixed-position: static;\n }\n\n .container {\n ${() => generateRSDataContainerHeightStyles()};\n ${borderHorizontalOuter &&\n css`\n border-top: var(--border-style);\n border-bottom: var(--border-style);\n `}\n ${borderVerticalOuter &&\n css`\n border-left: var(--border-style);\n border-right: var(--border-style);\n `}\n ${borderVerticalOuter &&\n borderHorizontalOuter &&\n css`\n border-radius: var(--border-radius, ${theme.base['border-radius']});\n `}\n position: relative;\n letter-spacing: var(--letter-spacing);\n font-stretch: var(--font-stretch);\n ${StyledTabPanel} & ${StyledProgressBackdrop} {\n border-radius: var(--border-radius, ${theme.base['border-radius']});\n }\n }\n\n .hide-rows-till-ready .row[aria-rowindex] {\n visibility: hidden;\n }\n\n .table-drag-proxy {\n background: rgba(0, 0, 0, 0.21);\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 6;\n pointer-events: none;\n display: none;\n }\n\n .table-drag-line {\n background: #999999;\n position: absolute;\n top: 0;\n bottom: 0;\n width: 0.12rem;\n z-index: 6;\n pointer-events: none;\n display: none;\n }\n\n .cell-fixed {\n z-index: 1;\n }\n\n .group-wrapper {\n overflow: hidden;\n display: inline-flex;\n line-height: var(--group-header-height);\n\n .group-context-count {\n display: inline-flex;\n overflow: hidden;\n }\n }\n\n /* In review mode(Ex: Tabs) cosmos components are rendered and mark up is not compatible with\n group-wrapper cell. Overridden css in group-header when dl exists inside that class which indicates\n mark up is generated from cosmos which differentiates from normal table cell markup */\n .group-wrapper .group-context-count dl {\n grid-template-columns: auto;\n }\n\n .cell {\n /* preventing cell from shrinking during autosize calculations */\n flex-shrink: 0;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n\n .icons-ph {\n /* Maintaining action button aspect ratio of 1:1 with 24*24px width and height */\n min-width: 1.5rem;\n }\n\n &.custom-item {\n width: 10em;\n }\n }\n\n .cell:focus {\n box-shadow: ${theme.base.shadow['focus-inset']};\n outline: none;\n }\n\n .row {\n display: inline-flex;\n height: var(--row-height);\n outline: none 0;\n transition: transform 0.5s var(--animation-ease);\n box-sizing: var(--box-sizing);\n position: relative;\n\n > .row-select-handle {\n display: flex;\n justify-content: center;\n &:active {\n outline: none;\n }\n\n > .header-lable-container {\n /* stylelint-disable-next-line unit-allowed-list */\n min-width: 20px;\n }\n /* stylelint-disable selector-max-class */\n &.cell-fixed > .cell-content {\n flex-grow: unset;\n }\n }\n\n > .cell,\n .group-header-aggregation-row > .cell {\n position: relative;\n transition: transform 0.5s var(--animation-ease);\n ${borderVerticalInner &&\n css`\n border-right: var(--border-style);\n `}\n ${borderHorizontalInner &&\n css`\n border-bottom: var(--border-style);\n `}\n display: flex;\n align-items: center;\n\n &::after {\n opacity: 1;\n transition: opacity 0.1s var(--animation-ease);\n }\n\n .row-action-menu {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n &.cell-action {\n position: sticky;\n z-index: 4;\n right: 0;\n border-right: 0;\n justify-content: center;\n ${borderVerticalInner &&\n css`\n border-left: var(--border-style);\n `}\n\n /* The below styles are needed to avoid ellipses in safari when no text is present\n and to hide the 'Actions' label */\n\n /* stylelint-disable max-nesting-depth */\n\n div.header-label {\n text-overflow: unset;\n }\n }\n &.aggregateCell {\n background-color: var(--group-bg-color);\n }\n }\n\n /** Adds bottom border to the last row of a group, when striped-rows are enabled */\n &:has(+ .group-header-row) > .cell {\n ${showBorderOnLastStripedRow &&\n css`\n border-bottom: var(--border-style);\n `}\n }\n &.header > .cell {\n border-bottom: var(--border-style);\n }\n .group-header-aggregation-row {\n > .cell.cell-action {\n overflow: initial;\n\n /* extending border on the top left of row action cell as we need to show border for at the end group label value when row actions are present */\n &::before {\n content: '';\n position: absolute;\n inline-size: 0;\n inset-inline-start: calc(var(--border-width) * -1);\n inset-block-start: calc(var(--group-header-height) * -1);\n block-size: var(--group-header-height);\n ${borderVerticalInner &&\n css`\n border-inline-start: var(--border-style);\n `}\n }\n }\n }\n\n > .cell-action {\n background-color: ${bodyPrimaryBackground};\n }\n\n > .row-reorder-handle {\n padding: 0;\n border-right: 0 !important;\n justify-content: center;\n cursor: move;\n }\n\n .aggregateCell.cell {\n border-right: none;\n }\n\n > .cell.cell-fixed,\n .group-header-aggregation-row > .cell-fixed {\n position: var(--cell-fixed-position);\n z-index: 4;\n\n ${showFreezeLine &&\n css`\n &.cell-last-frozen {\n border-right: solid var(--border-width) var(--border-color-freeze);\n filter: drop-shadow(\n calc(${theme.base.spacing} * 0.25) 0 0 ${freezeLineShadowTransparent}\n );\n transition: 0.5s;\n }\n `}\n\n /* As the row select column and row dragDrop column always have to be frozen */\n &[data-col-id='RowSelect'],\n &[data-col-id='RowDragDrop'],\n &[data-col-id='RowError'] {\n position: sticky;\n flex-shrink: 0;\n z-index: 5;\n }\n }\n\n > .cell.cell-fixed:focus-within,\n .group-header-aggregation-row > .cell-fixed {\n z-index: 6;\n }\n\n &.click {\n cursor: pointer;\n }\n\n &:last-child {\n border-end-start-radius: inherit;\n border-end-end-radius: inherit;\n\n > .cell {\n &:first-child {\n border-end-start-radius: inherit;\n }\n\n &:last-child {\n border-end-end-radius: inherit;\n }\n\n ${showBorderOnLastStripedRow &&\n css`\n border-bottom: var(--border-style);\n `}\n }\n }\n }\n .row:not(.row-error):not(.group-header-row):not(.header) {\n .cell-fixed {\n background: ${bodyPrimaryBackground};\n }\n .cell-fixed.aggregateCell {\n background: var(--group-bg-color);\n }\n }\n ${theme.components.table['striped-rows'] &&\n css`\n /* Targets rows with an odd data-index attribute, excluding group header rows */\n .row[data-index$='1']:not(.group-header-row):not(.header),\n .row[data-index$='3']:not(.group-header-row):not(.header),\n .row[data-index$='5']:not(.group-header-row):not(.header),\n .row[data-index$='7']:not(.group-header-row):not(.header),\n .row[data-index$='9']:not(.group-header-row):not(.header) {\n background: ${oddRowBackgroundColor};\n color: ${useableOddRowForeground};\n .cell-fixed {\n background: ${oddRowBackgroundColor};\n color: ${useableOddRowForeground};\n }\n > .cell-action {\n background: ${oddRowBackgroundColor};\n }\n }\n .row[data-index$='0']:not(.group-header-row):not(.header),\n .row[data-index$='2']:not(.group-header-row):not(.header),\n .row[data-index$='4']:not(.group-header-row):not(.header),\n .row[data-index$='6']:not(.group-header-row):not(.header),\n .row[data-index$='8']:not(.group-header-row):not(.header) {\n background: ${evenRowBackgroundColor};\n color: ${useableEvenRowForeground};\n\n ${borderVerticalOuter &&\n css`\n .cell-fixed {\n background: ${evenRowBackgroundColor};\n color: ${useableEvenRowForeground};\n }\n > .cell-action {\n background: ${evenRowBackgroundColor};\n }\n `}\n\n /* Apply border radius if vertical outer border was disabled */\n ${!borderVerticalOuter &&\n css`\n border-radius: min(${props => props.theme.base['border-radius']}, 0.25rem);\n\n .cell-fixed {\n color: ${useableEvenRowForeground};\n }\n\n /* Avoid the non-frozen column's background to come behind the first cell's empty area in corner due to border-radius.\n Let the first cell-fixed take full rectangale width, add a pseudo element with the background and border radius of same size as the element */\n .cell-fixed:not(.cell-first) {\n background: ${evenRowBackgroundColor};\n }\n .cell-fixed.cell-first::before {\n background: ${evenRowBackgroundColor};\n content: '';\n position: absolute;\n inset: 0;\n z-index: -1;\n border-bottom-left-radius: min(${props => props.theme.base['border-radius']}, 0.25rem);\n pointer-events: none;\n }\n\n > .cell-action::before {\n background: ${evenRowBackgroundColor};\n content: '';\n position: absolute;\n inset: 0;\n z-index: -1;\n border-bottom-right-radius: min(${props => props.theme.base['border-radius']}, 0.25rem);\n pointer-events: none;\n }\n `}\n }\n\n .row[data-index='0']:not(.group-header-row):not(.header) {\n ${!borderVerticalOuter &&\n css`\n border-radius: 0 0 min(${props => props.theme.base['border-radius']}, 0.25rem)\n min(${props => props.theme.base['border-radius']}, 0.25rem);\n `}\n }\n `}\n\n .row-error {\n background: ${mix(\n 0.1,\n theme.components['form-field'].error['status-color'],\n theme.base.palette['primary-background']\n )};\n\n /* stylelint-disable no-descending-specificity */\n .cell-fixed,\n .cell-action {\n background: inherit;\n }\n\n > .cell:not(.cell-fixed):not(.cell-action) {\n background: none;\n }\n }\n\n .sort-info-container {\n .sort-sequence {\n font-size: 0.625rem;\n color: ${theme.base.colors.gray['extra-dark']};\n }\n }\n\n .filter-info-container {\n display: flex;\n justify-content: center;\n align-items: center;\n\n svg {\n /* stylelint-disable-next-line unit-allowed-list */\n width: 14px;\n /* stylelint-disable-next-line unit-allowed-list */\n height: 14px;\n }\n }\n\n .cell.row-error-column {\n padding: 0;\n border-right: 0;\n text-align: right;\n outline: none;\n\n /* Focus handling will be done as part of interation 2: EPIC-88751 */\n\n svg {\n color: ${theme.base.colors.red.medium};\n }\n }\n\n .cell-right-align .filter-info-container svg {\n margin: 0 0.312rem 0 0;\n }\n\n &.show-expand-collapse-all {\n .row > .cell-first {\n padding-left: calc(var(--expand-collapse-all-width) + var(--cell-padding) + 0.25rem);\n &.row-reorder-handle,\n &.row-error-column {\n padding: 0;\n }\n &.row-select-handle {\n padding-inline-start: var(--expand-collapse-all-width);\n }\n }\n\n .row-container .row > .cell-first {\n &.row-select-handle {\n /* Offset padding of 0.5rem added to SelectAllCheckbox in grouped views(getting pushed by margin),\n ensuring row select checkboxes align vertically in header and data rows */\n padding-inline-start: calc(\n var(--expand-collapse-all-width) - var(--cell-padding) + 0.5rem\n );\n }\n }\n\n /* stylelint-enable selector-max-class */\n .expand-collapse-all {\n position: absolute;\n width: var(--expand-collapse-all-width);\n z-index: 10;\n height: var(--row-height);\n background-color: var(--header-bg-color);\n color: var(--header-fg-color);\n border-bottom: var(--border-style);\n border-start-start-radius: ${theme.base['border-radius']};\n padding-inline-start: 0.125rem;\n margin-inline-start: 0.25rem;\n display: flex;\n align-items: center;\n justify-content: center;\n\n ${borderVerticalInner &&\n css`\n border-right: var(--border-style);\n `}\n\n &::before {\n content: '';\n position: absolute;\n inset-block-start: 0;\n inset-inline-start: -0.25rem;\n width: 0.25rem;\n height: 100%;\n background-color: var(--header-bg-color);\n z-index: 12;\n }\n\n > button {\n color: var(--forground-color);\n :focus {\n box-shadow: ${theme.base.shadow.focus};\n }\n }\n }\n .no-border-right {\n border-right: 0;\n }\n }\n\n /* stylelint-disable selector-max-class */\n\n .scroll-end {\n &.row-container > .row:last-child {\n & > .cell,\n & .group-header-aggregation-row > .cell {\n border-bottom: 0;\n }\n }\n }\n\n /* stylelint-enable selector-max-class */\n .header {\n font-weight: var(--font-weight-semi-bold);\n position: relative; /* This is required to position .border-fix element */\n border-start-start-radius: inherit;\n border-start-end-radius: inherit;\n\n > .cell.row-error-column {\n border-right: 0;\n }\n > .cell {\n display: flex;\n justify-content: space-between;\n align-items: center;\n z-index: 2;\n position: relative;\n cursor: pointer;\n background-color: var(--header-bg-color);\n color: var(--header-fg-color);\n font-weight: ${theme.base['font-weight'].bold};\n font-size: ${fontSize.xxs};\n ${borderVerticalInner &&\n css`\n border-right: var(--border-style);\n `}\n padding: var(--header-cell-padding);\n\n &:first-child {\n border-start-start-radius: inherit;\n }\n\n &:last-child {\n border-start-end-radius: inherit;\n }\n\n .header-lable-container {\n display: inline-flex;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: ${fontSize.xs};\n font-weight: var(--font-weight-semi-bold);\n align-items: center;\n gap: 0.125rem;\n }\n\n .header-label {\n overflow: hidden;\n text-overflow: ellipsis;\n\n /* To avoid browser tooltip when we get ellipsis in safari */\n &::after {\n content: '';\n display: block;\n }\n\n /* To utilize smart tooltip making it as a non-box element */\n /* stylelint-disable selector-max-class */\n .cell-content {\n display: contents;\n }\n }\n }\n\n > .row-reorder-handle {\n padding: 0;\n }\n\n > .row-select-handle {\n /* Nullifying padding applied from .header > .cell */\n padding: 0;\n justify-content: center;\n }\n .row {\n border-bottom: none;\n }\n }\n\n .sticky-header {\n display: grid;\n position: sticky;\n top: 0;\n z-index: 6;\n border-start-start-radius: inherit;\n border-start-end-radius: inherit;\n\n ${!borderVerticalInner &&\n css`\n & .row .cell:not(.cell-last-frozen):not(.cell-last):has(.column-resizer) {\n &::after {\n content: '';\n position: absolute;\n right: 0;\n top: 0.5rem;\n bottom: 0.5rem;\n width: 0.062rem;\n background-color: ${theme.base.palette['border-line']};\n }\n }\n `}\n }\n\n /* 4 selectors required as aggregateCell of only footer need this effect */\n\n .pContainer:not(.pContainerScroll) .footer .aggregateCell.cell {\n border-bottom: none;\n }\n\n .row .cell.cell-last {\n border-right: 0;\n }\n\n ${!colIdToFillRemainingSpace\n ? css`\n .row .cell.cell-last {\n flex-grow: 1;\n }\n `\n : css`\n .row .cell[data-col-id='${colIdToFillRemainingSpace}'] {\n flex-grow: 1;\n }\n `}\n\n /* Disable the flex layout size changes when measuring for content based size to get correct width */\n\n [data-content-size-measuring] & .row .cell {\n flex-grow: 0 !important;\n }\n\n .row-container {\n --data-row-height: calc(\n var(--hit-area) * var(--row-height-multiplier) + var(--cell-vertical-padding)\n );\n --group-header-height: ${isAggregationApplied\n ? 'var(--default-group-header-height)'\n : 'var(--data-row-height)'};\n &:not(.wrap-content-height) > .row:not(.group-header-row) {\n height: var(--data-row-height);\n }\n border-end-start-radius: inherit;\n border-end-end-radius: inherit;\n\n & > .row .cell-content {\n /*\n * Using box sizing content-box so that the padding is not considered for the alignment of the cell content.\n * Vertical alignment is done using flex and max-height below even though the .cell-content might overflow due to padding + content size.\n */\n box-sizing: content-box;\n flex-grow: 1;\n\n /* Adding padding on .cell-content so that focus rings can appear properly and doesn't clip due to overflow: hidden */\n padding: var(--cell-vertical-padding) var(--cell-padding);\n\n /* setting max-height so that the elements with more height like RTL, align with the row density height */\n max-height: var(--data-row-height);\n\n /* hiding scroll bar in case the cell render introduces scrollbar based on its implementation */\n & * {\n scrollbar-width: none;\n }\n\n /* in case of combine columns, removing padding from parent cell-content as children already have the padding */\n &:has(.combined-cell) {\n padding: 0;\n\n .cell-content {\n flex-grow: unset;\n }\n }\n }\n\n & > .row:not(.group-header-row) {\n min-width: 100%;\n\n .cell-content {\n &:not(:has(.combined-cell)):not(.combined-cell-content):has(${StyledStatus}) {\n padding: unset;\n\n &,\n & > span,\n & ${StyledStatus} {\n block-size: 100%;\n }\n\n ${StyledStatus} {\n display: flex;\n align-items: center;\n justify-content: space-evenly;\n border-radius: 0;\n }\n }\n }\n }\n\n &.wrap-content-height\n > .row:not(.group-header-row)\n .cell:not(:has(.combined-cell)):has(${StyledStatus}) {\n padding: 0;\n }\n\n & > .row .cell:not(.column-type-action) .cell-content {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n word-break: break-all;\n }\n }\n\n .row .aggregateCell .cell-content {\n line-height: initial;\n padding: 0;\n }\n\n .short-height,\n .medium-height {\n ${StyledStatus} {\n white-space: nowrap;\n }\n }\n\n .short-height {\n ${StyledRadioCheck} ${StyledLabel} {\n min-height: auto;\n }\n }\n\n .medium-height {\n --row-height-multiplier: 4 / 3;\n }\n\n .tall-height {\n --row-height-multiplier: calc(4 / 3 + 0.5);\n > .row:not(.group-header-row) {\n > .cell {\n display: inline-grid;\n align-items: start;\n white-space: pre-wrap;\n word-break: break-all;\n grid-auto-flow: column;\n\n :has(> ${CellIcon}) {\n /* Adds spacing between children when icons are rendered alongside cell content in the cell container. */\n justify-content: space-between;\n }\n\n /* stylelint-disable-next-line selector-max-compound-selectors */\n > .cell-content > .combined-cell > .combined-cell-content,\n > .cell-content {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n white-space: inherit;\n word-break: inherit;\n }\n\n ${CellIcon} {\n margin-block-start: 0.375rem;\n }\n }\n }\n }\n\n .wrap-content-height {\n --row-height-multiplier: 4 / 3;\n --row-min-height: calc(\n var(--hit-area) * var(--row-height-multiplier) + var(--cell-vertical-padding) * 2\n );\n --group-header-height: ${isAggregationApplied\n ? 'var(--default-group-header-height)'\n : 'var(--row-min-height)'};\n\n > .row:not(.group-header-row) {\n height: auto;\n min-height: var(--row-min-height);\n > .cell {\n white-space: pre-wrap;\n\n /* -- For BUG-625508 -- */\n word-break: break-word;\n display: inline-grid;\n align-items: start;\n padding-top: var(--cell-vertical-padding);\n padding-bottom: var(--cell-vertical-padding);\n grid-auto-flow: column;\n\n :has(> ${CellIcon}) {\n /* Adds spacing between children when icons are rendered alongside cell content in the cell container. */\n justify-content: space-between;\n }\n\n /* stylelint-disable-next-line selector-max-compound-selectors */\n > .cell-content > .combined-cell > .combined-cell-content,\n > .cell-content {\n /* for full-content, the row cells should adjust according to content */\n max-height: none;\n white-space: inherit;\n word-break: inherit;\n }\n\n ${CellIcon} {\n margin-block-start: 0.375rem;\n }\n }\n }\n }\n\n .footer {\n .row {\n .cell {\n padding: 0;\n }\n }\n }\n\n /* stylelint-disable no-duplicate-selectors */\n .row-container {\n position: absolute;\n display: grid;\n width: 100%;\n font-size: ${fontSize.s};\n\n > .group-header-row,\n .hierarchical-group-footer-row {\n height: var(--group-header-height);\n .cell {\n padding: 0;\n border-right-width: 0;\n }\n }\n\n > .hierarchical-group-header-row {\n height: var(--group-header-height);\n }\n input.checkbox-on-hover + label {\n opacity: 0;\n }\n input.checkbox-on-hover:checked + label {\n opacity: 1;\n }\n .row.selected-row {\n background-color: ${selectedRowColor};\n\n > .cell,\n .cell-fixed,\n .cell-action {\n background-color: ${selectedRowColor};\n }\n }\n .row-on-hover:hover {\n background-color: ${lightGreyColor};\n input.checkbox-on-hover + label {\n opacity: 1;\n }\n\n > .cell,\n .cell-fixed,\n .cell-action {\n background-color: ${lightGreyColor};\n }\n }\n .row.hierarchical-group-footer-row {\n .cell-fixed {\n background: ${lightGreyColor};\n }\n }\n }\n\n /* stylelint-enable selector-max-class */\n\n .toolbar-button-applied {\n /* stylelint-disable-next-line unit-allowed-list */\n padding: 0 8px;\n margin: 0 calc(${theme.base.spacing} / 4);\n }\n\n .toolbar-button {\n /* stylelint-disable-next-line unit-allowed-list */\n padding: 0 8px;\n margin: 0 calc(${theme.base.spacing} / 4);\n }\n\n .column-resizer {\n cursor: col-resize;\n position: absolute;\n top: 0;\n right: 0;\n z-index: 3;\n width: 0.25rem;\n height: 100%;\n }\n\n .column-resizer:hover,\n .column-resizer:active {\n background: var(--interactive);\n }\n\n .align-right {\n justify-content: right;\n\n .cell-content {\n text-align: right;\n }\n }\n\n .align-left {\n justify-content: left;\n\n .cell-content {\n text-align: left;\n }\n }\n\n .align-center {\n justify-content: center;\n\n .cell-content {\n text-align: center;\n }\n }\n\n .popper {\n div.row {\n display: flex;\n vertical-align: middle;\n line-height: unset;\n border-bottom: none;\n outline: none 0;\n height: auto;\n }\n }\n `;\n});\n\nexport default StyledTableContainer;\n"]}
1
+ {"version":3,"file":"StyledTableContainer.js","sourceRoot":"","sources":["../../../../Core/Views/Table/StyledTableContainer.jsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef } from 'react';\nimport styled, { css } from 'styled-components';\nimport {\n getLuminance,\n meetsContrastGuidelines,\n mix,\n readableColor,\n transparentize\n} from 'polished';\n\nimport { StyledStatus } from '@pega/cosmos-react-core/lib/components/Badges/Status';\nimport { StyledRadioCheck } from '@pega/cosmos-react-core/lib/components/RadioCheck/RadioCheck';\nimport {\n StyledLabel,\n StyledProgressBackdrop,\n calculateFontSize,\n tryCatch,\n isSameColor\n} from '@pega/cosmos-react-core';\nimport { StyledTabPanel } from '@pega/cosmos-react-core/lib/components/Tabs/TabPanel';\n\nimport { generateRSDataContainerHeightStyles, generateRSHeightStyles } from '../../Utils/styles';\nimport {\n MASTER_DETAIL_INDICATOR_CLASS,\n MASTER_DETAIL_PREVIEW_HIGHLIGHT_CLASS\n} from '../../constants';\n\nimport { CellIcon } from './CellWrapper';\n\nconst dataRowSelector = `.row:not(.group-header-row):not(.hierarchical-group-header-row):not(\n .hierarchical-group-footer-row\n):not(.header)`;\n\nconst rowBackground = backgroundColor => css`\n background-color: ${backgroundColor};\n\n /* Sticky action cells and the first frozen cell use pseudo-elements to paint their backgrounds. */\n > .cell,\n > .cell-action::before,\n > .cell-fixed.cell-first::before {\n background-color: ${backgroundColor};\n }\n`;\n\nconst StyledTableContainer = styled(forwardRef((props, ref) => <div ref={ref} {...props} />))(({\n theme,\n view,\n isFullscreen\n}) => {\n let colIdToFillRemainingSpace;\n let isAggregationApplied = false;\n\n (view.columns ?? [])\n .filter(c => !c.hidden)\n .forEach(c => {\n if (!colIdToFillRemainingSpace && c.field.fillAvailableSpace) {\n colIdToFillRemainingSpace = c.field.id;\n }\n if (c.aggregated) {\n isAggregationApplied = true;\n }\n });\n\n const fontSize = calculateFontSize(theme.base['font-size'], theme.base['font-scale']);\n const showFreezeLine =\n view.state.responsive?.sm &&\n !(view.hasNoRecords || view.hasNoFrozenColumns || view.bHideFreezeLine);\n const highlightedRowColor = tryCatch(() =>\n mix(0.85, theme.base.palette['primary-background'], theme.base.palette.interactive)\n );\n const previewHighlightBorderColor = tryCatch(() =>\n transparentize(0.7, theme.base.palette.interactive)\n );\n const lightGreyColor = theme.base.colors.gray['extra-light'];\n const freezeLineShadowTransparent = transparentize(\n getLuminance(theme.components.table.header['foreground-color']) < 0.5 ? 0.9 : 0.75,\n theme.components.table.header['foreground-color']\n );\n\n const headerBackground = theme.components.table.header['background-color'];\n const bodyPrimaryBackground = theme.components.table.body['background-color'];\n const bodySecondaryBackground = theme.components.table.body['secondary-background-color'];\n const secondaryBackgroundForEvenRow = isSameColor(headerBackground, bodyPrimaryBackground);\n\n /* Calculating usable striped row background and foreground colors */\n const stripedRowBackground =\n getLuminance(bodySecondaryBackground) > 0.5\n ? bodySecondaryBackground\n : mix(0.75, bodyPrimaryBackground, bodySecondaryBackground);\n\n const stripedRowContrast = meetsContrastGuidelines(\n theme.components.table.body['foreground-color'],\n stripedRowBackground\n ).AA;\n const useableStripedRowForeground = stripedRowContrast\n ? theme.components.table.body['foreground-color']\n : readableColor(theme.components.table.body['foreground-color'], stripedRowBackground);\n\n /* Calculating even row and odd row background and foreground colors */\n const evenRowBackgroundColor = secondaryBackgroundForEvenRow\n ? bodySecondaryBackground\n : bodyPrimaryBackground;\n\n const useableEvenRowForeground = secondaryBackgroundForEvenRow\n ? useableStripedRowForeground\n : theme.components.table.body['foreground-color'];\n\n /* Calculating usable odd row background and foreground colors */\n const oddRowBackgroundColor = secondaryBackgroundForEvenRow\n ? bodyPrimaryBackground\n : bodySecondaryBackground;\n\n const useableOddRowForeground = secondaryBackgroundForEvenRow\n ? theme.components.table.body['foreground-color']\n : useableStripedRowForeground;\n\n const headerForegroundContrast = meetsContrastGuidelines(\n theme.components.table.header['foreground-color'],\n theme.components.table.header['background-color']\n ).AA;\n const usableHeaderForeground = headerForegroundContrast\n ? theme.components.table.header['foreground-color']\n : readableColor(\n theme.components.table.header['foreground-color'],\n theme.components.table.header['background-color']\n );\n\n const borderVerticalInner = theme.components.table.border['vertical-inner'];\n const borderVerticalOuter = theme.components.table.border['vertical-outer'];\n const borderHorizontalInner =\n theme.components.table.border['horizontal-inner'] && !theme.components.table['striped-rows'];\n const borderHorizontalOuter = theme.components.table.border['horizontal-outer'];\n\n const showBorderOnLastStripedRow =\n theme.components.table.border['horizontal-inner'] && theme.components.table['striped-rows'];\n const isMasterDetailEnabled = !!view.meta.masterDetail;\n\n return css`\n --forground-color: ${theme.base.palette['foreground-color']};\n --interactive: ${theme.base.palette.interactive};\n --light-blue: ${theme.base.colors.blue['extra-light']};\n --medium-blue: ${theme.base.colors.blue.medium};\n --border-color: ${theme.base.palette['border-line']};\n --border-color-freeze: #a5a5a5;\n --border-width: 0.062rem;\n --border-style: var(--border-width) solid var(--border-color);\n --font-stretch: ${theme.components.table.typography['font-stretch']};\n --letter-spacing: ${theme.components.table.typography['letter-spacing']};\n --cell-padding: ${theme.base.spacing};\n --cell-vertical-padding: calc(${theme.base.spacing} * 0.5);\n --header-cell-padding: 0 0.44rem 0 var(--cell-padding);\n --header-bg-color: ${theme.components.table.header['background-color']};\n --header-fg-color: ${usableHeaderForeground};\n --default-group-header-height: 1.5rem;\n --group-header-height: var(--default-group-header-height);\n --group-bg-color: ${theme.components.table.body['secondary-background-color']};\n --box-sizing: content-box;\n --animation-ease: ${theme.base.animation.timing.ease};\n --font-weight-semi-bold: ${theme.base['font-weight']['semi-bold']};\n --row-height-multiplier: 1.125;\n --cell-fixed-position: sticky;\n position: relative;\n ${() => generateRSHeightStyles({ view, isFullscreen })}\n\n .small-screen-table {\n --cell-fixed-position: static;\n }\n\n .container {\n ${() => generateRSDataContainerHeightStyles()};\n ${borderHorizontalOuter &&\n css`\n border-top: var(--border-style);\n border-bottom: var(--border-style);\n `}\n ${borderVerticalOuter &&\n css`\n border-left: var(--border-style);\n border-right: var(--border-style);\n `}\n ${borderVerticalOuter &&\n borderHorizontalOuter &&\n css`\n border-radius: var(--border-radius, ${theme.base['border-radius']});\n `}\n position: relative;\n letter-spacing: var(--letter-spacing);\n font-stretch: var(--font-stretch);\n ${StyledTabPanel} & ${StyledProgressBackdrop} {\n border-radius: var(--border-radius, ${theme.base['border-radius']});\n }\n }\n\n .hide-rows-till-ready .row[aria-rowindex] {\n visibility: hidden;\n }\n\n .table-drag-proxy {\n background: rgba(0, 0, 0, 0.21);\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 6;\n pointer-events: none;\n display: none;\n }\n\n .table-drag-line {\n background: #999999;\n position: absolute;\n top: 0;\n bottom: 0;\n width: 0.12rem;\n z-index: 6;\n pointer-events: none;\n display: none;\n }\n\n .cell-fixed {\n z-index: 1;\n }\n\n .group-wrapper {\n overflow: hidden;\n display: inline-flex;\n line-height: var(--group-header-height);\n\n .group-context-count {\n display: inline-flex;\n overflow: hidden;\n }\n }\n\n /* In review mode(Ex: Tabs) cosmos components are rendered and mark up is not compatible with\n group-wrapper cell. Overridden css in group-header when dl exists inside that class which indicates\n mark up is generated from cosmos which differentiates from normal table cell markup */\n .group-wrapper .group-context-count dl {\n grid-template-columns: auto;\n }\n\n .cell {\n /* preventing cell from shrinking during autosize calculations */\n flex-shrink: 0;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n\n .icons-ph {\n /* Maintaining action button aspect ratio of 1:1 with 24*24px width and height */\n min-width: 1.5rem;\n }\n\n &.custom-item {\n width: 10em;\n }\n }\n\n .cell:focus {\n box-shadow: ${theme.base.shadow['focus-inset']};\n outline: none;\n }\n\n .row {\n display: inline-flex;\n height: var(--row-height);\n outline: none 0;\n transition: transform 0.5s var(--animation-ease);\n box-sizing: var(--box-sizing);\n position: relative;\n\n > .row-select-handle {\n display: flex;\n justify-content: center;\n &:active {\n outline: none;\n }\n\n > .header-lable-container {\n min-width: 1.25rem;\n }\n /* stylelint-disable selector-max-class */\n &.cell-fixed > .cell-content {\n flex-grow: unset;\n }\n }\n\n > .cell,\n .group-header-aggregation-row > .cell {\n position: relative;\n transition: transform 0.5s var(--animation-ease);\n ${borderVerticalInner &&\n css`\n border-right: var(--border-style);\n `}\n ${borderHorizontalInner &&\n css`\n border-bottom: var(--border-style);\n `}\n display: flex;\n align-items: center;\n\n &::after {\n opacity: 1;\n transition: opacity 0.1s var(--animation-ease);\n }\n\n .row-action-menu {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n &.cell-action {\n position: sticky;\n z-index: 4;\n right: 0;\n border-right: 0;\n justify-content: center;\n ${borderVerticalInner &&\n css`\n border-left: var(--border-style);\n `}\n\n /* The below styles are needed to avoid ellipses in safari when no text is present\n and to hide the 'Actions' label */\n\n /* stylelint-disable max-nesting-depth */\n\n div.header-label {\n text-overflow: unset;\n }\n }\n &.aggregateCell {\n background-color: var(--group-bg-color);\n }\n }\n\n /** Adds bottom border to the last row of a group, when striped-rows are enabled */\n &:has(+ .group-header-row) > .cell {\n ${showBorderOnLastStripedRow &&\n css`\n border-bottom: var(--border-style);\n `}\n }\n &.header > .cell {\n border-bottom: var(--border-style);\n }\n .group-header-aggregation-row {\n > .cell.cell-action {\n overflow: initial;\n\n /* extending border on the top left of row action cell as we need to show border for at the end group label value when row actions are present */\n &::before {\n content: '';\n position: absolute;\n inline-size: 0;\n inset-inline-start: calc(var(--border-width) * -1);\n inset-block-start: calc(var(--group-header-height) * -1);\n block-size: var(--group-header-height);\n ${borderVerticalInner &&\n css`\n border-inline-start: var(--border-style);\n `}\n }\n }\n }\n\n > .cell-action {\n background-color: ${bodyPrimaryBackground};\n }\n\n > .row-reorder-handle {\n padding: 0;\n border-right: 0 !important;\n justify-content: center;\n cursor: move;\n }\n\n .aggregateCell.cell {\n border-right: none;\n }\n\n > .cell.cell-fixed,\n .group-header-aggregation-row > .cell-fixed {\n position: var(--cell-fixed-position);\n z-index: 4;\n\n ${showFreezeLine &&\n css`\n &.cell-last-frozen {\n border-right: solid var(--border-width) var(--border-color-freeze);\n filter: drop-shadow(\n calc(${theme.base.spacing} * 0.25) 0 0 ${freezeLineShadowTransparent}\n );\n transition: 0.5s;\n }\n `}\n\n /* As the row select column and row dragDrop column always have to be frozen */\n &[data-col-id='RowSelect'],\n &[data-col-id='RowDragDrop'],\n &[data-col-id='RowError'] {\n position: sticky;\n flex-shrink: 0;\n z-index: 5;\n }\n }\n\n > .cell.cell-fixed:focus-within,\n .group-header-aggregation-row > .cell-fixed {\n z-index: 6;\n }\n\n &.click {\n cursor: pointer;\n }\n\n &:last-child {\n border-end-start-radius: inherit;\n border-end-end-radius: inherit;\n\n > .cell {\n &:first-child {\n border-end-start-radius: inherit;\n }\n\n &:last-child {\n border-end-end-radius: inherit;\n }\n\n ${showBorderOnLastStripedRow &&\n css`\n border-bottom: var(--border-style);\n `}\n }\n }\n }\n .row:not(.row-error):not(.group-header-row):not(.header) {\n .cell-fixed {\n background: ${bodyPrimaryBackground};\n }\n .cell-fixed.aggregateCell {\n background: var(--group-bg-color);\n }\n }\n ${theme.components.table['striped-rows'] &&\n css`\n /* Targets rows with an odd data-index attribute, excluding group header rows */\n .row[data-index$='1']:not(.group-header-row):not(.header),\n .row[data-index$='3']:not(.group-header-row):not(.header),\n .row[data-index$='5']:not(.group-header-row):not(.header),\n .row[data-index$='7']:not(.group-header-row):not(.header),\n .row[data-index$='9']:not(.group-header-row):not(.header) {\n background: ${oddRowBackgroundColor};\n color: ${useableOddRowForeground};\n .cell-fixed {\n background: ${oddRowBackgroundColor};\n color: ${useableOddRowForeground};\n }\n > .cell-action {\n background: ${oddRowBackgroundColor};\n }\n }\n .row[data-index$='0']:not(.group-header-row):not(.header),\n .row[data-index$='2']:not(.group-header-row):not(.header),\n .row[data-index$='4']:not(.group-header-row):not(.header),\n .row[data-index$='6']:not(.group-header-row):not(.header),\n .row[data-index$='8']:not(.group-header-row):not(.header) {\n background: ${evenRowBackgroundColor};\n color: ${useableEvenRowForeground};\n\n ${borderVerticalOuter &&\n css`\n .cell-fixed {\n background: ${evenRowBackgroundColor};\n color: ${useableEvenRowForeground};\n }\n > .cell-action {\n background: ${evenRowBackgroundColor};\n }\n `}\n\n /* Apply border radius if vertical outer border was disabled */\n ${!borderVerticalOuter &&\n css`\n border-radius: min(${props => props.theme.base['border-radius']}, 0.25rem);\n\n .cell-fixed {\n color: ${useableEvenRowForeground};\n }\n\n /* Avoid the non-frozen column's background to come behind the first cell's empty area in corner due to border-radius.\n Let the first cell-fixed take full rectangale width, add a pseudo element with the background and border radius of same size as the element */\n .cell-fixed:not(.cell-first) {\n background: ${evenRowBackgroundColor};\n }\n .cell-fixed.cell-first::before {\n background: ${evenRowBackgroundColor};\n content: '';\n position: absolute;\n inset: 0;\n z-index: -1;\n border-bottom-left-radius: min(${props => props.theme.base['border-radius']}, 0.25rem);\n pointer-events: none;\n }\n\n > .cell-action::before {\n background: ${evenRowBackgroundColor};\n content: '';\n position: absolute;\n inset: 0;\n z-index: -1;\n border-bottom-right-radius: min(${props => props.theme.base['border-radius']}, 0.25rem);\n pointer-events: none;\n }\n `}\n }\n\n .row[data-index='0']:not(.group-header-row):not(.header) {\n ${!borderVerticalOuter &&\n css`\n border-radius: 0 0 min(${props => props.theme.base['border-radius']}, 0.25rem)\n min(${props => props.theme.base['border-radius']}, 0.25rem);\n `}\n }\n `}\n\n .row-error {\n background: ${mix(\n 0.1,\n theme.components['form-field'].error['status-color'],\n theme.base.palette['primary-background']\n )};\n\n /* stylelint-disable no-descending-specificity */\n .cell-fixed,\n .cell-action {\n background: inherit;\n }\n\n > .cell:not(.cell-fixed):not(.cell-action) {\n background: none;\n }\n }\n\n .sort-info-container {\n .sort-sequence {\n font-size: 0.625rem;\n color: ${theme.base.colors.gray['extra-dark']};\n }\n }\n\n .filter-info-container {\n display: flex;\n justify-content: center;\n align-items: center;\n\n svg {\n width: 0.875rem;\n height: 0.875rem;\n }\n }\n\n .cell.row-error-column {\n padding: 0;\n border-right: 0;\n text-align: right;\n outline: none;\n\n /* Focus handling will be done as part of interation 2: EPIC-88751 */\n\n svg {\n color: ${theme.base.colors.red.medium};\n }\n }\n\n .cell-right-align .filter-info-container svg {\n margin: 0 0.312rem 0 0;\n }\n\n &.show-expand-collapse-all {\n .row > .cell-first {\n padding-left: calc(var(--expand-collapse-all-width) + var(--cell-padding) + 0.25rem);\n &.row-reorder-handle,\n &.row-error-column {\n padding: 0;\n }\n &.row-select-handle {\n padding-inline-start: var(--expand-collapse-all-width);\n }\n }\n\n .row-container .row > .cell-first {\n &.row-select-handle {\n /* Offset padding of 0.5rem added to SelectAllCheckbox in grouped views(getting pushed by margin),\n ensuring row select checkboxes align vertically in header and data rows */\n padding-inline-start: calc(\n var(--expand-collapse-all-width) - var(--cell-padding) + 0.5rem\n );\n }\n }\n\n /* stylelint-enable selector-max-class */\n .expand-collapse-all {\n position: absolute;\n width: var(--expand-collapse-all-width);\n z-index: 10;\n height: var(--row-height);\n background-color: var(--header-bg-color);\n color: var(--header-fg-color);\n border-bottom: var(--border-style);\n border-start-start-radius: ${theme.base['border-radius']};\n padding-inline-start: 0.125rem;\n margin-inline-start: 0.25rem;\n display: flex;\n align-items: center;\n justify-content: center;\n\n ${borderVerticalInner &&\n css`\n border-right: var(--border-style);\n `}\n\n &::before {\n content: '';\n position: absolute;\n inset-block-start: 0;\n inset-inline-start: -0.25rem;\n width: 0.25rem;\n height: 100%;\n background-color: var(--header-bg-color);\n z-index: 12;\n }\n\n > button {\n color: var(--forground-color);\n :focus {\n box-shadow: ${theme.base.shadow.focus};\n }\n }\n }\n .no-border-right {\n border-right: 0;\n }\n }\n\n /* stylelint-disable selector-max-class */\n\n .scroll-end {\n &.row-container > .row:last-child {\n & > .cell,\n & .group-header-aggregation-row > .cell {\n border-bottom: 0;\n }\n }\n }\n\n /* stylelint-enable selector-max-class */\n .header {\n font-weight: var(--font-weight-semi-bold);\n position: relative; /* This is required to position .border-fix element */\n border-start-start-radius: inherit;\n border-start-end-radius: inherit;\n\n > .cell.row-error-column {\n border-right: 0;\n }\n > .cell {\n display: flex;\n justify-content: space-between;\n align-items: center;\n z-index: 2;\n position: relative;\n cursor: pointer;\n background-color: var(--header-bg-color);\n color: var(--header-fg-color);\n font-weight: ${theme.base['font-weight'].bold};\n font-size: ${fontSize.xxs};\n ${borderVerticalInner &&\n css`\n border-right: var(--border-style);\n `}\n padding: var(--header-cell-padding);\n\n &:first-child {\n border-start-start-radius: inherit;\n }\n\n &:last-child {\n border-start-end-radius: inherit;\n }\n\n .header-lable-container {\n display: inline-flex;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: ${fontSize.xs};\n font-weight: var(--font-weight-semi-bold);\n align-items: center;\n gap: 0.125rem;\n }\n\n .header-label {\n overflow: hidden;\n text-overflow: ellipsis;\n\n /* To avoid browser tooltip when we get ellipsis in safari */\n &::after {\n content: '';\n display: block;\n }\n\n /* To utilize smart tooltip making it as a non-box element */\n /* stylelint-disable selector-max-class */\n .cell-content {\n display: contents;\n }\n }\n }\n\n > .row-reorder-handle {\n padding: 0;\n }\n\n > .row-select-handle {\n /* Nullifying padding applied from .header > .cell */\n padding: 0;\n justify-content: center;\n }\n .row {\n border-bottom: none;\n }\n }\n\n .sticky-header {\n display: grid;\n position: sticky;\n top: 0;\n z-index: 9;\n border-start-start-radius: inherit;\n border-start-end-radius: inherit;\n\n ${!borderVerticalInner &&\n css`\n & .row .cell:not(.cell-last-frozen):not(.cell-last):has(.column-resizer) {\n &::after {\n content: '';\n position: absolute;\n right: 0;\n top: 0.5rem;\n bottom: 0.5rem;\n width: 0.062rem;\n background-color: ${theme.base.palette['border-line']};\n }\n }\n `}\n }\n\n /* 4 selectors required as aggregateCell of only footer need this effect */\n\n .pContainer:not(.pContainerScroll) .footer .aggregateCell.cell {\n border-bottom: none;\n }\n\n .row .cell.cell-last {\n border-right: 0;\n }\n\n ${!colIdToFillRemainingSpace\n ? css`\n .row .cell.cell-last {\n flex-grow: 1;\n }\n `\n : css`\n .row .cell[data-col-id='${colIdToFillRemainingSpace}'] {\n flex-grow: 1;\n }\n `}\n\n /* Disable the flex layout size changes when measuring for content based size to get correct width */\n\n [data-content-size-measuring] & .row .cell {\n flex-grow: 0 !important;\n }\n\n .row-container {\n --data-row-height: calc(\n var(--hit-area) * var(--row-height-multiplier) + var(--cell-vertical-padding)\n );\n --group-header-height: ${isAggregationApplied\n ? 'var(--default-group-header-height)'\n : 'var(--data-row-height)'};\n &:not(.wrap-content-height) > .row:not(.group-header-row) {\n height: var(--data-row-height);\n }\n border-end-start-radius: inherit;\n border-end-end-radius: inherit;\n\n & > .row .cell-content {\n /*\n * Using box sizing content-box so that the padding is not considered for the alignment of the cell content.\n * Vertical alignment is done using flex and max-height below even though the .cell-content might overflow due to padding + content size.\n */\n box-sizing: content-box;\n flex-grow: 1;\n\n /* Adding padding on .cell-content so that focus rings can appear properly and doesn't clip due to overflow: hidden */\n padding: var(--cell-vertical-padding) var(--cell-padding);\n\n /* setting max-height so that the elements with more height like RTL, align with the row density height */\n max-height: var(--data-row-height);\n\n /* hiding scroll bar in case the cell render introduces scrollbar based on its implementation */\n & * {\n scrollbar-width: none;\n }\n\n /* in case of combine columns, removing padding from parent cell-content as children already have the padding */\n &:has(.combined-cell) {\n padding: 0;\n\n .cell-content {\n flex-grow: unset;\n }\n }\n }\n\n & > .row:not(.group-header-row) {\n min-width: 100%;\n\n .cell-content {\n &:not(:has(.combined-cell)):not(.combined-cell-content):has(${StyledStatus}) {\n padding: unset;\n\n &,\n & > span,\n & ${StyledStatus} {\n block-size: 100%;\n }\n\n ${StyledStatus} {\n display: flex;\n align-items: center;\n justify-content: space-evenly;\n border-radius: 0;\n }\n }\n }\n }\n\n &.wrap-content-height\n > .row:not(.group-header-row)\n .cell:not(:has(.combined-cell)):has(${StyledStatus}) {\n padding: 0;\n }\n\n & > .row .cell:not(.column-type-action) .cell-content {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n word-break: break-all;\n }\n }\n\n .row .aggregateCell .cell-content {\n line-height: initial;\n padding: 0;\n }\n\n .short-height,\n .medium-height {\n ${StyledStatus} {\n white-space: nowrap;\n }\n }\n\n .short-height {\n ${StyledRadioCheck} ${StyledLabel} {\n min-height: auto;\n }\n }\n\n .medium-height {\n --row-height-multiplier: 4 / 3;\n }\n\n .tall-height {\n --row-height-multiplier: calc(4 / 3 + 0.5);\n > .row:not(.group-header-row) {\n > .cell {\n display: inline-grid;\n align-items: start;\n white-space: pre-wrap;\n word-break: break-all;\n grid-auto-flow: column;\n\n :has(> ${CellIcon}) {\n /* Adds spacing between children when icons are rendered alongside cell content in the cell container. */\n justify-content: space-between;\n }\n\n /* stylelint-disable-next-line selector-max-compound-selectors */\n > .cell-content > .combined-cell > .combined-cell-content,\n > .cell-content {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n white-space: inherit;\n word-break: inherit;\n }\n\n ${CellIcon} {\n margin-block-start: 0.375rem;\n }\n }\n }\n }\n\n .wrap-content-height {\n --row-height-multiplier: 4 / 3;\n --row-min-height: calc(\n var(--hit-area) * var(--row-height-multiplier) + var(--cell-vertical-padding) * 2\n );\n --group-header-height: ${isAggregationApplied\n ? 'var(--default-group-header-height)'\n : 'var(--row-min-height)'};\n\n > .row:not(.group-header-row) {\n height: auto;\n min-height: var(--row-min-height);\n > .cell {\n white-space: pre-wrap;\n\n /* -- For BUG-625508 -- */\n word-break: break-word;\n display: inline-grid;\n align-items: start;\n padding-top: var(--cell-vertical-padding);\n padding-bottom: var(--cell-vertical-padding);\n grid-auto-flow: column;\n\n :has(> ${CellIcon}) {\n /* Adds spacing between children when icons are rendered alongside cell content in the cell container. */\n justify-content: space-between;\n }\n\n /* stylelint-disable-next-line selector-max-compound-selectors */\n > .cell-content > .combined-cell > .combined-cell-content,\n > .cell-content {\n /* for full-content, the row cells should adjust according to content */\n max-height: none;\n white-space: inherit;\n word-break: inherit;\n }\n\n ${CellIcon} {\n margin-block-start: 0.375rem;\n }\n }\n }\n }\n\n .footer {\n .row {\n .cell {\n padding: 0;\n }\n }\n }\n\n /* stylelint-disable no-duplicate-selectors */\n .row-container {\n position: absolute;\n display: grid;\n width: 100%;\n font-size: ${fontSize.s};\n\n > .group-header-row,\n .hierarchical-group-footer-row {\n height: var(--group-header-height);\n .cell {\n padding: 0;\n border-right-width: 0;\n }\n }\n\n > .hierarchical-group-header-row {\n height: var(--group-header-height);\n }\n input.checkbox-on-hover + label {\n opacity: 0;\n }\n input.checkbox-on-hover:checked + label {\n opacity: 1;\n }\n .row.selected-row {\n ${rowBackground(highlightedRowColor)}\n }\n ${isMasterDetailEnabled &&\n css`\n ${dataRowSelector}:hover {\n ${rowBackground(highlightedRowColor)}\n }\n\n ${dataRowSelector}.${MASTER_DETAIL_PREVIEW_HIGHLIGHT_CLASS} {\n ${rowBackground(highlightedRowColor)}\n border-radius: 0.125rem;\n &::before {\n content: '';\n position: absolute;\n inset: 0;\n box-shadow: inset 0 0 0 0.125rem ${previewHighlightBorderColor};\n pointer-events: none;\n z-index: 7;\n }\n\n .${MASTER_DETAIL_INDICATOR_CLASS} {\n position: absolute;\n inset-inline-end: 0;\n inset-block-start: 50%;\n inline-size: 0.5625rem;\n block-size: 2.125rem;\n transform: translateX(var(--detail-indicator-offset, 0)) translateY(-50%);\n pointer-events: none;\n z-index: 8;\n\n &::before {\n content: '';\n position: absolute;\n inset-inline-end: 0.1875rem;\n inset-block-start: 50%;\n inline-size: 0.375rem;\n block-size: 0.5rem;\n transform: translateY(-50%);\n background: var(--interactive);\n clip-path: polygon(0 50%, 100% 0, 100% 100%);\n }\n\n &::after {\n content: '';\n position: absolute;\n inset-inline-end: 0;\n inset-block-start: 50%;\n inline-size: 0.1875rem;\n block-size: 2.125rem;\n transform: translateY(-50%);\n border-radius: 0.0625rem;\n background: var(--interactive);\n }\n }\n }\n `}\n .row.hierarchical-group-footer-row {\n .cell-fixed {\n background: ${lightGreyColor};\n }\n }\n }\n\n /* stylelint-enable selector-max-class */\n\n .toolbar-button-applied {\n /* stylelint-disable-next-line unit-allowed-list */\n padding: 0 8px;\n margin: 0 calc(${theme.base.spacing} / 4);\n }\n\n .toolbar-button {\n /* stylelint-disable-next-line unit-allowed-list */\n padding: 0 8px;\n margin: 0 calc(${theme.base.spacing} / 4);\n }\n\n .column-resizer {\n cursor: col-resize;\n position: absolute;\n top: 0;\n right: 0;\n z-index: 3;\n width: 0.25rem;\n height: 100%;\n }\n\n .column-resizer:hover,\n .column-resizer:active {\n background: var(--interactive);\n }\n\n .align-right {\n justify-content: right;\n\n .cell-content {\n text-align: right;\n }\n }\n\n .align-left {\n justify-content: left;\n\n .cell-content {\n text-align: left;\n }\n }\n\n .align-center {\n justify-content: center;\n\n .cell-content {\n text-align: center;\n }\n }\n\n .popper {\n div.row {\n display: flex;\n vertical-align: middle;\n line-height: unset;\n border-bottom: none;\n outline: none 0;\n height: auto;\n }\n }\n `;\n});\n\nexport default StyledTableContainer;\n"]}
@@ -1,4 +1,4 @@
1
- declare function VirtualizeWrapper({ view, children, id, renderHeader, rowContainerClass, renderFooter, isFullscreen, useVariableRowHeightVirtualization, bufferMultiplier }: {
1
+ declare function VirtualizeWrapper({ view, children, id, renderHeader, rowContainerClass, renderFooter, isFullscreen, useVariableRowHeightVirtualization, bufferMultiplier, minHeight }: {
2
2
  view: any;
3
3
  children: any;
4
4
  id: any;
@@ -8,6 +8,7 @@ declare function VirtualizeWrapper({ view, children, id, renderHeader, rowContai
8
8
  isFullscreen?: boolean | undefined;
9
9
  useVariableRowHeightVirtualization?: boolean | undefined;
10
10
  bufferMultiplier: any;
11
+ minHeight: any;
11
12
  }): import("react/jsx-runtime").JSX.Element;
12
13
  declare namespace VirtualizeWrapper {
13
14
  namespace propTypes {
@@ -22,6 +23,7 @@ declare namespace VirtualizeWrapper {
22
23
  let isFullscreen: PropTypes.Requireable<boolean>;
23
24
  let useVariableRowHeightVirtualization: PropTypes.Requireable<boolean>;
24
25
  let bufferMultiplier: PropTypes.Requireable<number>;
26
+ let minHeight: PropTypes.Requireable<string>;
25
27
  }
26
28
  }
27
29
  export default VirtualizeWrapper;
@@ -1 +1 @@
1
- {"version":3,"file":"VirtualizeWrapper.d.ts","sourceRoot":"","sources":["../../../../Core/Views/Table/VirtualizeWrapper.jsx"],"names":[],"mappings":"AAiBA;;;;;;;;;;4CA4JC;;;;;;;;;;;;;;;;;sBA7KqB,YAAY"}
1
+ {"version":3,"file":"VirtualizeWrapper.d.ts","sourceRoot":"","sources":["../../../../Core/Views/Table/VirtualizeWrapper.jsx"],"names":[],"mappings":"AAiBA;;;;;;;;;;;4CAgKC;;;;;;;;;;;;;;;;;;sBAjLqB,YAAY"}
@@ -14,7 +14,7 @@ import Row from './Row';
14
14
  import useCountChange from './useCountChange';
15
15
  export default function VirtualizeWrapper({ view, children, id, renderHeader = null, rowContainerClass = '', renderFooter = null, isFullscreen = false,
16
16
  // TODO: Remove this prop and deprecate older virtualizers once we fully migrate to variable row height virtualizer for gallery and grouped list views
17
- useVariableRowHeightVirtualization = false, bufferMultiplier }) {
17
+ useVariableRowHeightVirtualization = false, bufferMultiplier, minHeight }) {
18
18
  const { state, meta } = view;
19
19
  const { filterExpression, searchText, externalState } = state;
20
20
  const [translate] = useTranslate();
@@ -51,16 +51,16 @@ useVariableRowHeightVirtualization = false, bufferMultiplier }) {
51
51
  return (_jsx(VariableHeightVirtualizer, { id: id, totalItemCount: view.totalItemCount, isDataFetching: isFetching, loadedDataRange: view?.state?.paginationOptions?.[id] || {}, apiCallback: paginationCallback, defaultItemHeight: 40, maxItemsToPaint: 5000, renderHeader: renderHeader, renderFooter: renderFooter, renderEmptyRecords: renderEmptyRecords, itemContainerClass: `${rowContainerClass} ${view.rowHeightClass}`, ref: r => {
52
52
  view.putVirtualizeElement(id, r);
53
53
  view.setScrollNode(r?.getBufferContainer());
54
- }, viewMaxHeight: isFullscreen ? null : view.bodyHeight, minHeightWhenNoItemsRendered: '100px', children: view?.groupHeaders?.[0]?.getRows()?.map((row, index) => (_jsx(Row, { row: row, columns: view.columns, level: 0, dataIndex: paginationStartIndex + index }, row.reactKey))) }));
54
+ }, viewMaxHeight: isFullscreen ? null : view.bodyHeight, minHeight: minHeight, minHeightWhenNoItemsRendered: '100px', children: view?.groupHeaders?.[0]?.getRows()?.map((row, index) => (_jsx(Row, { row: row, columns: view.columns, level: 0, dataIndex: paginationStartIndex + index }, row.reactKey))) }));
55
55
  }
56
56
  if (view.template === REPEATING_STRUCTURE_TEMPLATES.GALLERY) {
57
- return (_jsx(VirtualizeInfinite, { id: id, viewMaxHeight: isFullscreen ? null : view.bodyHeight, itemHeight: view.rowHeight, callback: paginationCallback, isFetching: isFetching, hasMoreResults: hasMoreResults, renderHeader: renderHeader, renderFooter: renderFooter, ref: r => {
57
+ return (_jsx(VirtualizeInfinite, { id: id, viewMaxHeight: isFullscreen ? null : view.bodyHeight, minHeight: minHeight, itemHeight: view.rowHeight, callback: paginationCallback, isFetching: isFetching, hasMoreResults: hasMoreResults, renderHeader: renderHeader, renderFooter: renderFooter, ref: r => {
58
58
  view.putVirtualizeElement(id, r);
59
59
  view.setScrollNode(r && r.vi && r.vi.bContainer);
60
60
  }, rowContainerClass: `${rowContainerClass} ${view.rowHeightClass}`, state: view.state?.paginationOptions?.[id], resetCount: view.isCountUpdateRequired, showLoadingIndicator: true, renderEmptyRecords: renderEmptyRecords, bufferMultiplier: bufferMultiplier, children: children }));
61
61
  }
62
62
  // Only used for grouped table
63
- return (_jsx(Virtualize, { id: id, viewMaxHeight: isFullscreen ? null : view.bodyHeight, totalRecordCount: view.totalItemCount, itemHeight: view.rowHeight, callback: paginationCallback, isFetching: isFetching, renderHeader: renderHeader, renderFooter: renderFooter, ref: r => {
63
+ return (_jsx(Virtualize, { id: id, viewMaxHeight: isFullscreen ? null : view.bodyHeight, minHeight: minHeight, totalRecordCount: view.totalItemCount, itemHeight: view.rowHeight, callback: paginationCallback, isFetching: isFetching, renderHeader: renderHeader, renderFooter: renderFooter, ref: r => {
64
64
  view.putVirtualizeElement(id, r);
65
65
  view.setScrollNode(r && r.vi && r.vi.bContainer);
66
66
  }, rowContainerClass: `${rowContainerClass} ${view.rowHeightClass}`, state: view.state?.paginationOptions?.[id], showLoadingIndicator: true, renderEmptyRecords: renderEmptyRecords, bufferMultiplier: bufferMultiplier, children: children }));
@@ -74,6 +74,7 @@ VirtualizeWrapper.propTypes = {
74
74
  view: PropTypes.objectOf(PropTypes.any).isRequired,
75
75
  isFullscreen: PropTypes.bool,
76
76
  useVariableRowHeightVirtualization: PropTypes.bool,
77
- bufferMultiplier: PropTypes.number
77
+ bufferMultiplier: PropTypes.number,
78
+ minHeight: PropTypes.string
78
79
  };
79
80
  //# sourceMappingURL=VirtualizeWrapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VirtualizeWrapper.js","sourceRoot":"","sources":["../../../../Core/Views/Table/VirtualizeWrapper.jsx"],"names":[],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { REPEATING_STRUCTURE_TEMPLATES } from 'pega-repeating-structures-core';\nimport { usePrevious } from '@pega/cosmos-react-core';\n\nimport Virtualize from '../../Components/Virtualise';\nimport VirtualizeInfinite from '../../Components/Virtualise/VirtualizeInfinite';\nimport VariableHeightVirtualizer from '../../Components/Virtualise/VariableHeightVirtualizer/VariableHeightVirtualizer';\nimport { isPaginationRequestCompleted } from '../../Components/Virtualise/utility';\nimport { isFilterApplied } from '../../Utils';\nimport EmptyContainer from '../../Components/DefaultComponents/EmptyContainer';\nimport useTranslate from '../../Hooks/useTranslate';\n\nimport Row from './Row';\nimport useCountChange from './useCountChange';\n\nexport default function VirtualizeWrapper({\n view,\n children,\n id,\n renderHeader = null,\n rowContainerClass = '',\n renderFooter = null,\n isFullscreen = false,\n // TODO: Remove this prop and deprecate older virtualizers once we fully migrate to variable row height virtualizer for gallery and grouped list views\n useVariableRowHeightVirtualization = false,\n bufferMultiplier\n}) {\n const { state, meta } = view;\n const { filterExpression, searchText, externalState } = state;\n const [translate] = useTranslate();\n const paginationPayload = useRef({});\n\n const [isFetching, setIsFetching] = useState(false);\n const [hasMoreResults, setHasMoreResults] = useState(false);\n const previousTotalItemCount = usePrevious(view.totalItemCount);\n\n const paginationCallback = useCallback(\n (payload, payloadMeta) => {\n const updatedPayload =\n view.template === REPEATING_STRUCTURE_TEMPLATES.GALLERY\n ? { ...payload, startIndex: 0 }\n : payload;\n\n paginationPayload.current = updatedPayload;\n setIsFetching(true);\n view.type.onPaginate(updatedPayload, payloadMeta);\n },\n [view.type.onPaginate]\n );\n\n const renderEmptyRecords = useCallback(\n () => (\n <EmptyContainer\n message={\n isFilterApplied({ filterExpression, searchText, externalState }, meta.externalFilters)\n ? translate('No records found')\n : translate('No records')\n }\n shouldAnnounce={previousTotalItemCount > 0 && view.totalItemCount === 0}\n domContainer={view.getDomContainer()}\n />\n ),\n [filterExpression, searchText, externalState, meta.externalFilters, view.totalItemCount]\n );\n\n useEffect(() => {\n if (view.isInstantRender) return;\n\n const isRequestComplete = isPaginationRequestCompleted(\n paginationPayload.current,\n view.state?.paginationOptions?.[id]\n );\n setIsFetching(!isRequestComplete);\n }, [view.isInstantRender, view.state?.paginationOptions?.[id]]);\n\n useEffect(() => {\n if (view.isInstantRender || !paginationPayload.current) return;\n\n const requestedRows =\n paginationPayload.current.endIndex - paginationPayload.current.startIndex + 1;\n setHasMoreResults(view.rows?.length === requestedRows);\n }, [view.isInstantRender, view.state?.paginationOptions?.[id]]);\n\n useCountChange(view, isFetching, view.getVirtualizeElement?.(id)?.notifyCountChange);\n\n if (useVariableRowHeightVirtualization) {\n const paginationStartIndex = view?.state?.paginationOptions?.rootVirtualiser?.startIndex || 0;\n return (\n <VariableHeightVirtualizer\n id={id}\n totalItemCount={view.totalItemCount}\n isDataFetching={isFetching}\n loadedDataRange={view?.state?.paginationOptions?.[id] || {}}\n apiCallback={paginationCallback}\n defaultItemHeight={40}\n maxItemsToPaint={5000}\n renderHeader={renderHeader}\n renderFooter={renderFooter}\n renderEmptyRecords={renderEmptyRecords}\n itemContainerClass={`${rowContainerClass} ${view.rowHeightClass}`}\n ref={r => {\n view.putVirtualizeElement(id, r);\n view.setScrollNode(r?.getBufferContainer());\n }}\n viewMaxHeight={isFullscreen ? null : view.bodyHeight}\n minHeightWhenNoItemsRendered='100px'\n >\n {view?.groupHeaders?.[0]?.getRows()?.map((row, index) => (\n <Row\n key={row.reactKey}\n row={row}\n columns={view.columns}\n level={0}\n dataIndex={paginationStartIndex + index}\n />\n ))}\n </VariableHeightVirtualizer>\n );\n }\n\n if (view.template === REPEATING_STRUCTURE_TEMPLATES.GALLERY) {\n return (\n <VirtualizeInfinite\n id={id}\n viewMaxHeight={isFullscreen ? null : view.bodyHeight}\n itemHeight={view.rowHeight}\n callback={paginationCallback}\n isFetching={isFetching}\n hasMoreResults={hasMoreResults}\n renderHeader={renderHeader}\n renderFooter={renderFooter}\n ref={r => {\n view.putVirtualizeElement(id, r);\n view.setScrollNode(r && r.vi && r.vi.bContainer);\n }}\n rowContainerClass={`${rowContainerClass} ${view.rowHeightClass}`}\n state={view.state?.paginationOptions?.[id]}\n resetCount={view.isCountUpdateRequired}\n showLoadingIndicator\n renderEmptyRecords={renderEmptyRecords}\n bufferMultiplier={bufferMultiplier}\n >\n {children}\n </VirtualizeInfinite>\n );\n }\n\n // Only used for grouped table\n return (\n <Virtualize\n id={id}\n viewMaxHeight={isFullscreen ? null : view.bodyHeight}\n totalRecordCount={view.totalItemCount}\n itemHeight={view.rowHeight}\n callback={paginationCallback}\n isFetching={isFetching}\n renderHeader={renderHeader}\n renderFooter={renderFooter}\n ref={r => {\n view.putVirtualizeElement(id, r);\n view.setScrollNode(r && r.vi && r.vi.bContainer);\n }}\n rowContainerClass={`${rowContainerClass} ${view.rowHeightClass}`}\n state={view.state?.paginationOptions?.[id]}\n showLoadingIndicator\n renderEmptyRecords={renderEmptyRecords}\n bufferMultiplier={bufferMultiplier}\n >\n {children}\n </Virtualize>\n );\n}\n\nVirtualizeWrapper.propTypes = {\n children: PropTypes.oneOfType([PropTypes.object, PropTypes.array]).isRequired,\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n renderHeader: PropTypes.func,\n renderFooter: PropTypes.func,\n rowContainerClass: PropTypes.string,\n view: PropTypes.objectOf(PropTypes.any).isRequired,\n isFullscreen: PropTypes.bool,\n useVariableRowHeightVirtualization: PropTypes.bool,\n bufferMultiplier: PropTypes.number\n};\n"]}
1
+ {"version":3,"file":"VirtualizeWrapper.js","sourceRoot":"","sources":["../../../../Core/Views/Table/VirtualizeWrapper.jsx"],"names":[],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { REPEATING_STRUCTURE_TEMPLATES } from 'pega-repeating-structures-core';\nimport { usePrevious } from '@pega/cosmos-react-core';\n\nimport Virtualize from '../../Components/Virtualise';\nimport VirtualizeInfinite from '../../Components/Virtualise/VirtualizeInfinite';\nimport VariableHeightVirtualizer from '../../Components/Virtualise/VariableHeightVirtualizer/VariableHeightVirtualizer';\nimport { isPaginationRequestCompleted } from '../../Components/Virtualise/utility';\nimport { isFilterApplied } from '../../Utils';\nimport EmptyContainer from '../../Components/DefaultComponents/EmptyContainer';\nimport useTranslate from '../../Hooks/useTranslate';\n\nimport Row from './Row';\nimport useCountChange from './useCountChange';\n\nexport default function VirtualizeWrapper({\n view,\n children,\n id,\n renderHeader = null,\n rowContainerClass = '',\n renderFooter = null,\n isFullscreen = false,\n // TODO: Remove this prop and deprecate older virtualizers once we fully migrate to variable row height virtualizer for gallery and grouped list views\n useVariableRowHeightVirtualization = false,\n bufferMultiplier,\n minHeight\n}) {\n const { state, meta } = view;\n const { filterExpression, searchText, externalState } = state;\n const [translate] = useTranslate();\n const paginationPayload = useRef({});\n\n const [isFetching, setIsFetching] = useState(false);\n const [hasMoreResults, setHasMoreResults] = useState(false);\n const previousTotalItemCount = usePrevious(view.totalItemCount);\n\n const paginationCallback = useCallback(\n (payload, payloadMeta) => {\n const updatedPayload =\n view.template === REPEATING_STRUCTURE_TEMPLATES.GALLERY\n ? { ...payload, startIndex: 0 }\n : payload;\n\n paginationPayload.current = updatedPayload;\n setIsFetching(true);\n view.type.onPaginate(updatedPayload, payloadMeta);\n },\n [view.type.onPaginate]\n );\n\n const renderEmptyRecords = useCallback(\n () => (\n <EmptyContainer\n message={\n isFilterApplied({ filterExpression, searchText, externalState }, meta.externalFilters)\n ? translate('No records found')\n : translate('No records')\n }\n shouldAnnounce={previousTotalItemCount > 0 && view.totalItemCount === 0}\n domContainer={view.getDomContainer()}\n />\n ),\n [filterExpression, searchText, externalState, meta.externalFilters, view.totalItemCount]\n );\n\n useEffect(() => {\n if (view.isInstantRender) return;\n\n const isRequestComplete = isPaginationRequestCompleted(\n paginationPayload.current,\n view.state?.paginationOptions?.[id]\n );\n setIsFetching(!isRequestComplete);\n }, [view.isInstantRender, view.state?.paginationOptions?.[id]]);\n\n useEffect(() => {\n if (view.isInstantRender || !paginationPayload.current) return;\n\n const requestedRows =\n paginationPayload.current.endIndex - paginationPayload.current.startIndex + 1;\n setHasMoreResults(view.rows?.length === requestedRows);\n }, [view.isInstantRender, view.state?.paginationOptions?.[id]]);\n\n useCountChange(view, isFetching, view.getVirtualizeElement?.(id)?.notifyCountChange);\n\n if (useVariableRowHeightVirtualization) {\n const paginationStartIndex = view?.state?.paginationOptions?.rootVirtualiser?.startIndex || 0;\n return (\n <VariableHeightVirtualizer\n id={id}\n totalItemCount={view.totalItemCount}\n isDataFetching={isFetching}\n loadedDataRange={view?.state?.paginationOptions?.[id] || {}}\n apiCallback={paginationCallback}\n defaultItemHeight={40}\n maxItemsToPaint={5000}\n renderHeader={renderHeader}\n renderFooter={renderFooter}\n renderEmptyRecords={renderEmptyRecords}\n itemContainerClass={`${rowContainerClass} ${view.rowHeightClass}`}\n ref={r => {\n view.putVirtualizeElement(id, r);\n view.setScrollNode(r?.getBufferContainer());\n }}\n viewMaxHeight={isFullscreen ? null : view.bodyHeight}\n minHeight={minHeight}\n minHeightWhenNoItemsRendered='100px'\n >\n {view?.groupHeaders?.[0]?.getRows()?.map((row, index) => (\n <Row\n key={row.reactKey}\n row={row}\n columns={view.columns}\n level={0}\n dataIndex={paginationStartIndex + index}\n />\n ))}\n </VariableHeightVirtualizer>\n );\n }\n\n if (view.template === REPEATING_STRUCTURE_TEMPLATES.GALLERY) {\n return (\n <VirtualizeInfinite\n id={id}\n viewMaxHeight={isFullscreen ? null : view.bodyHeight}\n minHeight={minHeight}\n itemHeight={view.rowHeight}\n callback={paginationCallback}\n isFetching={isFetching}\n hasMoreResults={hasMoreResults}\n renderHeader={renderHeader}\n renderFooter={renderFooter}\n ref={r => {\n view.putVirtualizeElement(id, r);\n view.setScrollNode(r && r.vi && r.vi.bContainer);\n }}\n rowContainerClass={`${rowContainerClass} ${view.rowHeightClass}`}\n state={view.state?.paginationOptions?.[id]}\n resetCount={view.isCountUpdateRequired}\n showLoadingIndicator\n renderEmptyRecords={renderEmptyRecords}\n bufferMultiplier={bufferMultiplier}\n >\n {children}\n </VirtualizeInfinite>\n );\n }\n\n // Only used for grouped table\n return (\n <Virtualize\n id={id}\n viewMaxHeight={isFullscreen ? null : view.bodyHeight}\n minHeight={minHeight}\n totalRecordCount={view.totalItemCount}\n itemHeight={view.rowHeight}\n callback={paginationCallback}\n isFetching={isFetching}\n renderHeader={renderHeader}\n renderFooter={renderFooter}\n ref={r => {\n view.putVirtualizeElement(id, r);\n view.setScrollNode(r && r.vi && r.vi.bContainer);\n }}\n rowContainerClass={`${rowContainerClass} ${view.rowHeightClass}`}\n state={view.state?.paginationOptions?.[id]}\n showLoadingIndicator\n renderEmptyRecords={renderEmptyRecords}\n bufferMultiplier={bufferMultiplier}\n >\n {children}\n </Virtualize>\n );\n}\n\nVirtualizeWrapper.propTypes = {\n children: PropTypes.oneOfType([PropTypes.object, PropTypes.array]).isRequired,\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n renderHeader: PropTypes.func,\n renderFooter: PropTypes.func,\n rowContainerClass: PropTypes.string,\n view: PropTypes.objectOf(PropTypes.any).isRequired,\n isFullscreen: PropTypes.bool,\n useVariableRowHeightVirtualization: PropTypes.bool,\n bufferMultiplier: PropTypes.number,\n minHeight: PropTypes.string\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../Core/Views/Table/index.jsx"],"names":[],"mappings":";AA6BA;;4CAoJC;;;;;;;;sBAjLqB,YAAY"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../Core/Views/Table/index.jsx"],"names":[],"mappings":";AAgCA;;4CA8KC;;;;;;;;sBA9MqB,YAAY"}
@@ -3,6 +3,7 @@ import PropTypes from 'prop-types';
3
3
  import { useCallback, useRef, useEffect } from 'react';
4
4
  import { useLiveLog } from '@pega/cosmos-react-core/lib/hooks';
5
5
  import { useFullscreenContext, useTheme } from '@pega/cosmos-react-core';
6
+ import { MasterDetail } from '@pega/cosmos-react-work';
6
7
  import { expandCollapseAllMeta } from 'pega-repeating-structures-core';
7
8
  import { createClassName as cx } from '../../Utils';
8
9
  import NotificationManager from '../../Components/NotificationManager';
@@ -22,10 +23,14 @@ import TableA11y from './TableA11y';
22
23
  import Body from './Body';
23
24
  import Virtualiser from './VirtualizeWrapper';
24
25
  import Headers from './Headers';
26
+ import useMasterDetailHost from './useMasterDetailHost';
25
27
  const contextMenuSelector = { query: '.cell:not([role="columnheader"])' };
28
+ const MASTER_DETAIL_MIN_HEIGHT = '16rem';
26
29
  function StyledTable({ view }) {
27
30
  const isFullscreen = !!useFullscreenContext()?.[0];
28
- const { columns, rows, groupHeaders, meta: { toolbarActions } = {} } = view;
31
+ const { columns, rows, groupHeaders, meta: { toolbarActions, masterDetail: masterDetailConfig } = {} } = view;
32
+ const isMasterDetail = !!masterDetailConfig;
33
+ const minHeight = isMasterDetail ? MASTER_DETAIL_MIN_HEIGHT : undefined;
29
34
  const rowHeight = 40;
30
35
  const footerHeight = 57;
31
36
  const isSmallOrAbove = view?.state?.responsive?.sm;
@@ -59,11 +64,13 @@ function StyledTable({ view }) {
59
64
  addActionSelector: addAction ? `[aria-label="${addAction.text}"]` : undefined
60
65
  }, FOCUSABLE_SELECTORS, {
61
66
  TAB: 9,
67
+ ENTER: 13,
62
68
  LEFT: 37,
63
69
  UP: 38,
64
70
  RIGHT: 39,
65
71
  DOWN: 40
66
72
  }, null, announcePolite, translate, ACTIONABLE_SELECTORS, translate('Interactive content')));
73
+ const masterDetail = useMasterDetailHost({ view });
67
74
  useEffect(() => {
68
75
  a11yRef.current.setContainer(containerRef.current);
69
76
  return () => {
@@ -88,11 +95,13 @@ function StyledTable({ view }) {
88
95
  a11yRef.current.clickHandler(e);
89
96
  }
90
97
  }, []);
91
- return (_jsx(RsCardWrapper, { children: _jsxs(StyledTableContainer, { style: containerStyles, "data-test-id": 'table', "data-testid": 'table', className: cx('t-container', {
92
- 'show-expand-collapse-all': view.showGroupingExpandCollapseAll
93
- }), theme: theme, view: view, isFullscreen: isFullscreen, children: [_jsx(WarningBanner, { warningMessages: view.warningMessages }), _jsx(Toolbar, { view: view }), _jsx(RenderView, { type: EXTERNAL_FILTERS, view: view }), _jsx(NotificationManager, { view: view }), _jsx(RepeatingStructureA11y, { view: view, a11yRef: a11yRef, children: _jsxs("div", { className: cx('container', view.className, {
94
- 'small-screen-table': !isSmallOrAbove
95
- }), ref: containerRef, ...view.getUIProps(), onClick: onClickHandler, onFocusCapture: e => a11yRef.current.onFocusHandler(e), onBlurCapture: e => a11yRef.current.onBlurHandler(e), children: [view.state?.groups?.length ? (_jsxs(_Fragment, { children: [_jsx(GroupingHeaderCell, { view: view }), _jsx(Virtualiser, { id: 'rootVirtualiser', view: view, renderHeader: renderHeader, renderFooter: renderFooter, isFullscreen: isFullscreen, children: _jsx(Body, { groupHeaders: groupHeaders, columns: columns, hierarchicalGroupEnabled: view.hierarchicalGroupEnabled }) })] })) : (_jsx(Virtualiser, { id: 'rootVirtualiser', view: view, renderHeader: renderHeader, renderFooter: renderFooter, isFullscreen: isFullscreen, useVariableRowHeightVirtualization: true })), _jsx(LoadingIndicator, { view: view, show: !rows || !!view.isLoading }), _jsx(ContextMenuContainer, { view: view, selector: contextMenuSelector })] }) })] }) }));
98
+ const tableContent = (_jsx(RepeatingStructureA11y, { view: view, a11yRef: a11yRef, children: _jsxs("div", { className: cx('container', view.className, {
99
+ 'small-screen-table': !isSmallOrAbove
100
+ }), ref: containerRef, ...view.getUIProps(), onClick: onClickHandler, onFocusCapture: e => a11yRef.current.onFocusHandler(e), onBlurCapture: e => a11yRef.current.onBlurHandler(e), children: [view.state?.groups?.length ? (_jsxs(_Fragment, { children: [_jsx(GroupingHeaderCell, { view: view }), _jsx(Virtualiser, { id: 'rootVirtualiser', view: view, renderHeader: renderHeader, renderFooter: renderFooter, isFullscreen: isFullscreen, minHeight: minHeight, children: _jsx(Body, { groupHeaders: groupHeaders, columns: columns, hierarchicalGroupEnabled: view.hierarchicalGroupEnabled }) })] })) : (_jsx(Virtualiser, { id: 'rootVirtualiser', view: view, renderHeader: renderHeader, renderFooter: renderFooter, isFullscreen: isFullscreen, minHeight: minHeight, useVariableRowHeightVirtualization: true })), _jsx(LoadingIndicator, { view: view, show: !rows || !!view.isLoading }), _jsx(ContextMenuContainer, { view: view, selector: contextMenuSelector })] }) }));
101
+ const tableContainer = (_jsxs(StyledTableContainer, { style: containerStyles, "data-test-id": 'table', "data-testid": 'table', className: cx('t-container', {
102
+ 'show-expand-collapse-all': view.showGroupingExpandCollapseAll
103
+ }), theme: theme, view: view, isFullscreen: isFullscreen, children: [_jsx(WarningBanner, { warningMessages: view.warningMessages }), _jsx(Toolbar, { view: view }), _jsx(RenderView, { type: EXTERNAL_FILTERS, view: view }), _jsx(NotificationManager, { view: view }), isMasterDetail ? (_jsx(MasterDetail, { master: tableContent, detail: masterDetail.detail, ...masterDetail.masterDetailProps })) : (tableContent)] }));
104
+ return _jsx(RsCardWrapper, { children: tableContainer });
96
105
  }
97
106
  StyledTable.propTypes = {
98
107
  view: PropTypes.objectOf(PropTypes.any).isRequired
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../Core/Views/Table/index.jsx"],"names":[],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport { useCallback, useRef, useEffect } from 'react';\n\nimport { useLiveLog } from '@pega/cosmos-react-core/lib/hooks';\nimport { useFullscreenContext, useTheme } from '@pega/cosmos-react-core';\nimport { expandCollapseAllMeta } from 'pega-repeating-structures-core';\n\nimport { createClassName as cx } from '../../Utils';\nimport NotificationManager from '../../Components/NotificationManager';\nimport WarningBanner from '../../Components/WarningBanner';\nimport Toolbar from '../../Components/Toolbar';\nimport ContextMenuContainer from '../../Components/ContextMenu/ContextMenuContainer';\nimport LoadingIndicator from '../../Components/LoadingIndicator';\nimport TableFooter from '../../Components/Footer';\nimport RepeatingStructureA11y from '../../Components/A11y/RepeatingStructureA11y';\nimport RenderView from '../../Components/RenderingEngine/RenderView';\nimport { EXTERNAL_FILTERS, FOCUSABLE_SELECTORS, ACTIONABLE_SELECTORS } from '../../constants';\nimport useTranslate from '../../Hooks/useTranslate';\nimport RsCardWrapper from '../RsCardWrapper';\n\nimport GroupingHeaderCell from './GroupingHeaderCell';\nimport StyledTableContainer from './StyledTableContainer';\nimport TableA11y from './TableA11y';\nimport Body from './Body';\nimport Virtualiser from './VirtualizeWrapper';\nimport Headers from './Headers';\n\nconst contextMenuSelector = { query: '.cell:not([role=\"columnheader\"])' };\n\nfunction StyledTable({ view }) {\n const isFullscreen = !!useFullscreenContext()?.[0];\n const { columns, rows, groupHeaders, meta: { toolbarActions } = {} } = view;\n const rowHeight = 40;\n const footerHeight = 57;\n const isSmallOrAbove = view?.state?.responsive?.sm;\n const expandCollapseAllWidth = view.showGroupingExpandCollapseAll\n ? expandCollapseAllMeta.width\n : 0;\n\n const containerStyles = {\n '--row-height': `${rowHeight}px`,\n '--footer-height': `${footerHeight}px`,\n '--expand-collapse-all-width': `${expandCollapseAllWidth}px`\n };\n const renderHeader = useCallback(\n () => <Headers ref={view.setItemElement} columns={columns} isVisible={!!rows} />,\n [columns, rows, view]\n );\n const renderFooter = useCallback(() => <TableFooter view={view} />, [view]);\n const addAction = toolbarActions?.find(action => action.id === 'Add_Record');\n const theme = useTheme();\n const containerRef = useRef(null);\n const { announcePolite } = useLiveLog();\n const [translate] = useTranslate();\n const a11yRef = useRef(\n new TableA11y(\n {\n topFocusRef: '.top',\n bottomFocusRef: '.bottom',\n focusElementSelector: '.cell',\n parentElementSelector: '.row',\n aboveLoader: '.above-loader',\n belowLoader: '.below-loader',\n expandCollpaseAll: '.expand-collapse-all',\n stickyGroupHeaderSelector: '.stickyGroupHeader',\n aggregateCell: '.aggregateCell',\n tableLoader: '.table-loader',\n footer: '.footer',\n addActionSelector: addAction ? `[aria-label=\"${addAction.text}\"]` : undefined\n },\n FOCUSABLE_SELECTORS,\n {\n TAB: 9,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40\n },\n null,\n announcePolite,\n translate,\n ACTIONABLE_SELECTORS,\n translate('Interactive content')\n )\n );\n\n useEffect(() => {\n a11yRef.current.setContainer(containerRef.current);\n\n return () => {\n containerRef.current = null;\n a11yRef.current = null;\n };\n }, []);\n\n useEffect(() => {\n a11yRef.current.itemsLoadedCallback();\n });\n\n useEffect(() => {\n const container = containerRef.current;\n if (!container) return;\n const handler = e => a11yRef.current.a11yHandler(e);\n container.addEventListener('keydown', handler);\n return () => container.removeEventListener('keydown', handler);\n }, []);\n\n const onClickHandler = useCallback(e => {\n const pointerType = e.nativeEvent.pointerType;\n if (pointerType) {\n a11yRef.current.clickHandler(e);\n }\n }, []);\n\n return (\n <RsCardWrapper>\n <StyledTableContainer\n style={containerStyles}\n data-test-id='table'\n data-testid='table'\n className={cx('t-container', {\n 'show-expand-collapse-all': view.showGroupingExpandCollapseAll\n })}\n theme={theme}\n view={view}\n isFullscreen={isFullscreen}\n >\n <WarningBanner warningMessages={view.warningMessages} />\n <Toolbar view={view} />\n <RenderView type={EXTERNAL_FILTERS} view={view} />\n <NotificationManager view={view} />\n <RepeatingStructureA11y view={view} a11yRef={a11yRef}>\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */}\n <div\n className={cx('container', view.className, {\n 'small-screen-table': !isSmallOrAbove\n })}\n ref={containerRef}\n {...view.getUIProps()}\n onClick={onClickHandler}\n onFocusCapture={e => a11yRef.current.onFocusHandler(e)}\n onBlurCapture={e => a11yRef.current.onBlurHandler(e)}\n >\n {view.state?.groups?.length ? (\n <>\n <GroupingHeaderCell view={view} />\n <Virtualiser\n id='rootVirtualiser'\n view={view}\n renderHeader={renderHeader}\n renderFooter={renderFooter}\n isFullscreen={isFullscreen}\n >\n <Body\n groupHeaders={groupHeaders}\n columns={columns}\n hierarchicalGroupEnabled={view.hierarchicalGroupEnabled}\n />\n </Virtualiser>\n </>\n ) : (\n <Virtualiser\n id='rootVirtualiser'\n view={view}\n renderHeader={renderHeader}\n renderFooter={renderFooter}\n isFullscreen={isFullscreen}\n useVariableRowHeightVirtualization\n />\n )}\n <LoadingIndicator view={view} show={!rows || !!view.isLoading} />\n <ContextMenuContainer view={view} selector={contextMenuSelector} />\n </div>\n </RepeatingStructureA11y>\n </StyledTableContainer>\n </RsCardWrapper>\n );\n}\n\nStyledTable.propTypes = {\n view: PropTypes.objectOf(PropTypes.any).isRequired\n};\n\nexport default StyledTable;\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../Core/Views/Table/index.jsx"],"names":[],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport { useCallback, useRef, useEffect } from 'react';\n\nimport { useLiveLog } from '@pega/cosmos-react-core/lib/hooks';\nimport { useFullscreenContext, useTheme } from '@pega/cosmos-react-core';\nimport { MasterDetail } from '@pega/cosmos-react-work';\nimport { expandCollapseAllMeta } from 'pega-repeating-structures-core';\n\nimport { createClassName as cx } from '../../Utils';\nimport NotificationManager from '../../Components/NotificationManager';\nimport WarningBanner from '../../Components/WarningBanner';\nimport Toolbar from '../../Components/Toolbar';\nimport ContextMenuContainer from '../../Components/ContextMenu/ContextMenuContainer';\nimport LoadingIndicator from '../../Components/LoadingIndicator';\nimport TableFooter from '../../Components/Footer';\nimport RepeatingStructureA11y from '../../Components/A11y/RepeatingStructureA11y';\nimport RenderView from '../../Components/RenderingEngine/RenderView';\nimport { EXTERNAL_FILTERS, FOCUSABLE_SELECTORS, ACTIONABLE_SELECTORS } from '../../constants';\nimport useTranslate from '../../Hooks/useTranslate';\nimport RsCardWrapper from '../RsCardWrapper';\n\nimport GroupingHeaderCell from './GroupingHeaderCell';\nimport StyledTableContainer from './StyledTableContainer';\nimport TableA11y from './TableA11y';\nimport Body from './Body';\nimport Virtualiser from './VirtualizeWrapper';\nimport Headers from './Headers';\nimport useMasterDetailHost from './useMasterDetailHost';\n\nconst contextMenuSelector = { query: '.cell:not([role=\"columnheader\"])' };\nconst MASTER_DETAIL_MIN_HEIGHT = '16rem';\n\nfunction StyledTable({ view }) {\n const isFullscreen = !!useFullscreenContext()?.[0];\n const {\n columns,\n rows,\n groupHeaders,\n meta: { toolbarActions, masterDetail: masterDetailConfig } = {}\n } = view;\n const isMasterDetail = !!masterDetailConfig;\n const minHeight = isMasterDetail ? MASTER_DETAIL_MIN_HEIGHT : undefined;\n\n const rowHeight = 40;\n const footerHeight = 57;\n const isSmallOrAbove = view?.state?.responsive?.sm;\n const expandCollapseAllWidth = view.showGroupingExpandCollapseAll\n ? expandCollapseAllMeta.width\n : 0;\n\n const containerStyles = {\n '--row-height': `${rowHeight}px`,\n '--footer-height': `${footerHeight}px`,\n '--expand-collapse-all-width': `${expandCollapseAllWidth}px`\n };\n const renderHeader = useCallback(\n () => <Headers ref={view.setItemElement} columns={columns} isVisible={!!rows} />,\n [columns, rows, view]\n );\n const renderFooter = useCallback(() => <TableFooter view={view} />, [view]);\n const addAction = toolbarActions?.find(action => action.id === 'Add_Record');\n const theme = useTheme();\n const containerRef = useRef(null);\n const { announcePolite } = useLiveLog();\n const [translate] = useTranslate();\n const a11yRef = useRef(\n new TableA11y(\n {\n topFocusRef: '.top',\n bottomFocusRef: '.bottom',\n focusElementSelector: '.cell',\n parentElementSelector: '.row',\n aboveLoader: '.above-loader',\n belowLoader: '.below-loader',\n expandCollpaseAll: '.expand-collapse-all',\n stickyGroupHeaderSelector: '.stickyGroupHeader',\n aggregateCell: '.aggregateCell',\n tableLoader: '.table-loader',\n footer: '.footer',\n addActionSelector: addAction ? `[aria-label=\"${addAction.text}\"]` : undefined\n },\n FOCUSABLE_SELECTORS,\n {\n TAB: 9,\n ENTER: 13,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40\n },\n null,\n announcePolite,\n translate,\n ACTIONABLE_SELECTORS,\n translate('Interactive content')\n )\n );\n\n const masterDetail = useMasterDetailHost({ view });\n\n useEffect(() => {\n a11yRef.current.setContainer(containerRef.current);\n\n return () => {\n containerRef.current = null;\n a11yRef.current = null;\n };\n }, []);\n\n useEffect(() => {\n a11yRef.current.itemsLoadedCallback();\n });\n\n useEffect(() => {\n const container = containerRef.current;\n if (!container) return;\n const handler = e => a11yRef.current.a11yHandler(e);\n container.addEventListener('keydown', handler);\n return () => container.removeEventListener('keydown', handler);\n }, []);\n\n const onClickHandler = useCallback(e => {\n const pointerType = e.nativeEvent.pointerType;\n if (pointerType) {\n a11yRef.current.clickHandler(e);\n }\n }, []);\n\n const tableContent = (\n <RepeatingStructureA11y view={view} a11yRef={a11yRef}>\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */}\n <div\n className={cx('container', view.className, {\n 'small-screen-table': !isSmallOrAbove\n })}\n ref={containerRef}\n {...view.getUIProps()}\n onClick={onClickHandler}\n onFocusCapture={e => a11yRef.current.onFocusHandler(e)}\n onBlurCapture={e => a11yRef.current.onBlurHandler(e)}\n >\n {view.state?.groups?.length ? (\n <>\n <GroupingHeaderCell view={view} />\n <Virtualiser\n id='rootVirtualiser'\n view={view}\n renderHeader={renderHeader}\n renderFooter={renderFooter}\n isFullscreen={isFullscreen}\n minHeight={minHeight}\n >\n <Body\n groupHeaders={groupHeaders}\n columns={columns}\n hierarchicalGroupEnabled={view.hierarchicalGroupEnabled}\n />\n </Virtualiser>\n </>\n ) : (\n <Virtualiser\n id='rootVirtualiser'\n view={view}\n renderHeader={renderHeader}\n renderFooter={renderFooter}\n isFullscreen={isFullscreen}\n minHeight={minHeight}\n useVariableRowHeightVirtualization\n />\n )}\n <LoadingIndicator view={view} show={!rows || !!view.isLoading} />\n <ContextMenuContainer view={view} selector={contextMenuSelector} />\n </div>\n </RepeatingStructureA11y>\n );\n\n const tableContainer = (\n <StyledTableContainer\n style={containerStyles}\n data-test-id='table'\n data-testid='table'\n className={cx('t-container', {\n 'show-expand-collapse-all': view.showGroupingExpandCollapseAll\n })}\n theme={theme}\n view={view}\n isFullscreen={isFullscreen}\n >\n <WarningBanner warningMessages={view.warningMessages} />\n <Toolbar view={view} />\n <RenderView type={EXTERNAL_FILTERS} view={view} />\n <NotificationManager view={view} />\n\n {isMasterDetail ? (\n <MasterDetail\n master={tableContent}\n detail={masterDetail.detail}\n {...masterDetail.masterDetailProps}\n />\n ) : (\n tableContent\n )}\n </StyledTableContainer>\n );\n\n return <RsCardWrapper>{tableContainer}</RsCardWrapper>;\n}\n\nStyledTable.propTypes = {\n view: PropTypes.objectOf(PropTypes.any).isRequired\n};\n\nexport default StyledTable;\n"]}
@@ -0,0 +1,11 @@
1
+ export interface UseMasterDetailCleanupResult {
2
+ registerDetailCleanup: (cleanup?: () => void) => void;
3
+ }
4
+ /**
5
+ * Owns final Master Detail cleanup for the stable table host.
6
+ *
7
+ * Detail renderers remount while navigating rows, so they register their platform-specific cleanup
8
+ * here and the host invokes it only when Master Detail closes or the host unmounts.
9
+ */
10
+ export default function useMasterDetailCleanup(isMasterDetailOpen: boolean): UseMasterDetailCleanupResult;
11
+ //# sourceMappingURL=useMasterDetailCleanup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMasterDetailCleanup.d.ts","sourceRoot":"","sources":["../../../../Core/Views/Table/useMasterDetailCleanup.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,4BAA4B;IAC3C,qBAAqB,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;CACvD;AAED;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAC5C,kBAAkB,EAAE,OAAO,GAC1B,4BAA4B,CAuB9B"}
@@ -0,0 +1,27 @@
1
+ import { useCallback, useEffect, useRef } from 'react';
2
+ /**
3
+ * Owns final Master Detail cleanup for the stable table host.
4
+ *
5
+ * Detail renderers remount while navigating rows, so they register their platform-specific cleanup
6
+ * here and the host invokes it only when Master Detail closes or the host unmounts.
7
+ */
8
+ export default function useMasterDetailCleanup(isMasterDetailOpen) {
9
+ const detailCleanupRef = useRef();
10
+ const wasMasterDetailOpenRef = useRef(false);
11
+ const registerDetailCleanup = useCallback((cleanup) => {
12
+ detailCleanupRef.current = cleanup;
13
+ }, []);
14
+ const runDetailCleanup = useCallback(() => {
15
+ detailCleanupRef.current?.();
16
+ detailCleanupRef.current = undefined;
17
+ }, []);
18
+ useEffect(() => {
19
+ if (wasMasterDetailOpenRef.current && !isMasterDetailOpen) {
20
+ runDetailCleanup();
21
+ }
22
+ wasMasterDetailOpenRef.current = isMasterDetailOpen;
23
+ }, [isMasterDetailOpen, runDetailCleanup]);
24
+ useEffect(() => runDetailCleanup, [runDetailCleanup]);
25
+ return { registerDetailCleanup };
26
+ }
27
+ //# sourceMappingURL=useMasterDetailCleanup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMasterDetailCleanup.js","sourceRoot":"","sources":["../../../../Core/Views/Table/useMasterDetailCleanup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAMvD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAC5C,kBAA2B;IAE3B,MAAM,gBAAgB,GAAG,MAAM,EAA4B,CAAC;IAC5D,MAAM,sBAAsB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAE7C,MAAM,qBAAqB,GAAG,WAAW,CAAC,CAAC,OAAoB,EAAE,EAAE;QACjE,gBAAgB,CAAC,OAAO,GAAG,OAAO,CAAC;IACrC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE;QACxC,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC;QAC7B,gBAAgB,CAAC,OAAO,GAAG,SAAS,CAAC;IACvC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,sBAAsB,CAAC,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1D,gBAAgB,EAAE,CAAC;QACrB,CAAC;QACD,sBAAsB,CAAC,OAAO,GAAG,kBAAkB,CAAC;IACtD,CAAC,EAAE,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAE3C,SAAS,CAAC,GAAG,EAAE,CAAC,gBAAgB,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAEtD,OAAO,EAAE,qBAAqB,EAAE,CAAC;AACnC,CAAC","sourcesContent":["import { useCallback, useEffect, useRef } from 'react';\n\nexport interface UseMasterDetailCleanupResult {\n registerDetailCleanup: (cleanup?: () => void) => void;\n}\n\n/**\n * Owns final Master Detail cleanup for the stable table host.\n *\n * Detail renderers remount while navigating rows, so they register their platform-specific cleanup\n * here and the host invokes it only when Master Detail closes or the host unmounts.\n */\nexport default function useMasterDetailCleanup(\n isMasterDetailOpen: boolean\n): UseMasterDetailCleanupResult {\n const detailCleanupRef = useRef<(() => void) | undefined>();\n const wasMasterDetailOpenRef = useRef(false);\n\n const registerDetailCleanup = useCallback((cleanup?: () => void) => {\n detailCleanupRef.current = cleanup;\n }, []);\n\n const runDetailCleanup = useCallback(() => {\n detailCleanupRef.current?.();\n detailCleanupRef.current = undefined;\n }, []);\n\n useEffect(() => {\n if (wasMasterDetailOpenRef.current && !isMasterDetailOpen) {\n runDetailCleanup();\n }\n wasMasterDetailOpenRef.current = isMasterDetailOpen;\n }, [isMasterDetailOpen, runDetailCleanup]);\n\n useEffect(() => runDetailCleanup, [runDetailCleanup]);\n\n return { registerDetailCleanup };\n}\n"]}
@@ -0,0 +1,14 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { MasterDetailProps } from '@pega/cosmos-react-work';
3
+ import type { RsCoreTypes } from 'pega-repeating-structures-core';
4
+ interface UseMasterDetailHostParams {
5
+ view: RsCoreTypes.View;
6
+ onClose?: () => void;
7
+ }
8
+ export interface UseMasterDetailHostResult {
9
+ detail: ReactNode | undefined;
10
+ masterDetailProps: Pick<MasterDetailProps, 'open' | 'selection' | 'loading' | 'nestedNavigation' | 'presentation' | 'onClose'>;
11
+ }
12
+ export default function useMasterDetailHost({ view, onClose }: UseMasterDetailHostParams): UseMasterDetailHostResult;
13
+ export {};
14
+ //# sourceMappingURL=useMasterDetailHost.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMasterDetailHost.d.ts","sourceRoot":"","sources":["../../../../Core/Views/Table/useMasterDetailHost.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AASlE,UAAU,yBAAyB;IACjC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9B,iBAAiB,EAAE,IAAI,CACrB,iBAAiB,EACjB,MAAM,GAAG,WAAW,GAAG,SAAS,GAAG,kBAAkB,GAAG,cAAc,GAAG,SAAS,CACnF,CAAC;CACH;AAED,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,IAAI,EACJ,OAAO,EACR,EAAE,yBAAyB,GAAG,yBAAyB,CAwDvD"}
@@ -0,0 +1,56 @@
1
+ import { useCallback } from 'react';
2
+ import useTranslate from '../../Hooks/useTranslate';
3
+ import fetchRowActions from '../../Utils/fetchRowActions';
4
+ import useMasterDetailState from './useMasterDetailState';
5
+ import useMasterDetailRenderer from './useMasterDetailRenderer';
6
+ import useMasterDetailCleanup from './useMasterDetailCleanup';
7
+ export default function useMasterDetailHost({ view, onClose }) {
8
+ const { masterDetail } = view;
9
+ const masterDetailConfig = view.meta.masterDetail;
10
+ const presentation = view.state?.responsive?.sm === false ? 'overlay' : 'docked';
11
+ const rowContext = masterDetail?.row.getContext?.();
12
+ const headerColumn = view.columns?.find(column => column.isFirstDataColumn);
13
+ const { detailState, onDetailStateChange } = useMasterDetailState(masterDetail);
14
+ const { registerDetailCleanup } = useMasterDetailCleanup(!!masterDetail);
15
+ const closeMasterDetail = useCallback(() => {
16
+ view.type.closeMasterDetail();
17
+ onClose?.();
18
+ }, [onClose, view.type]);
19
+ const previous = useCallback(() => view.type.navigateMasterDetail('previous'), [view.type]);
20
+ const next = useCallback(() => view.type.navigateMasterDetail('next'), [view.type]);
21
+ const [translate] = useTranslate();
22
+ const fetchActions = useCallback(() => fetchRowActions({
23
+ getExecutionContext: masterDetail?.row.getContext,
24
+ meta: view.meta,
25
+ translate
26
+ }), [masterDetail?.row, translate, view.meta]);
27
+ const headerValue = headerColumn?.getContext(rowContext).getValue()?.toString();
28
+ const selection = masterDetail
29
+ ? {
30
+ id: masterDetail.rowKey,
31
+ header: headerValue,
32
+ accessibleName: headerValue,
33
+ onPrevious: masterDetail.hasPrevious ? previous : undefined,
34
+ onNext: masterDetail.hasNext ? next : undefined,
35
+ actions: view.meta.editing || view.meta.deleting ? fetchActions : undefined,
36
+ icon: masterDetailConfig?.icon
37
+ }
38
+ : undefined;
39
+ return {
40
+ detail: useMasterDetailRenderer({
41
+ view,
42
+ masterDetail,
43
+ onDetailStateChange,
44
+ registerDetailCleanup
45
+ }),
46
+ masterDetailProps: {
47
+ open: !!masterDetail,
48
+ selection,
49
+ loading: detailState.loading,
50
+ nestedNavigation: detailState.nestedNavigation,
51
+ presentation,
52
+ onClose: closeMasterDetail
53
+ }
54
+ };
55
+ }
56
+ //# sourceMappingURL=useMasterDetailHost.js.map