@pega/lists-react 9.0.0-build.11.5 → 9.0.0-build.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -3
- package/lib/Core/Components/ContextMenu/ContextMenuContainer.d.ts +6 -15
- package/lib/Core/Components/ContextMenu/ContextMenuContainer.d.ts.map +1 -1
- package/lib/Core/Components/ContextMenu/ContextMenuContainer.js +91 -165
- package/lib/Core/Components/ContextMenu/ContextMenuContainer.js.map +1 -1
- package/lib/Core/Components/DefaultComponents/CellRenderers/index.d.ts +0 -2
- package/lib/Core/Components/DefaultComponents/CellRenderers/index.d.ts.map +1 -1
- package/lib/Core/Components/DefaultComponents/CellRenderers/index.js +0 -2
- package/lib/Core/Components/DefaultComponents/CellRenderers/index.js.map +1 -1
- package/lib/Core/Components/DefaultComponents/index.d.ts +0 -1
- package/lib/Core/Components/DefaultComponents/index.d.ts.map +1 -1
- package/lib/Core/Components/RenderingEngine/RenderCell.d.ts.map +1 -1
- package/lib/Core/Components/RenderingEngine/RenderCell.js +1 -3
- package/lib/Core/Components/RenderingEngine/RenderCell.js.map +1 -1
- package/lib/Core/Components/TestIdConstants.d.ts +1 -0
- package/lib/Core/Components/TestIdConstants.js +2 -1
- package/lib/Core/Components/TestIdConstants.js.map +1 -1
- package/lib/Core/Views/Table/StyledTableContainer.d.ts.map +1 -1
- package/lib/Core/Views/Table/StyledTableContainer.js +8 -37
- package/lib/Core/Views/Table/StyledTableContainer.js.map +1 -1
- package/lib/Core/Views/Table/TableA11y.d.ts.map +1 -1
- package/lib/Core/Views/Table/TableA11y.js +3 -2
- package/lib/Core/Views/Table/TableA11y.js.map +1 -1
- package/package.json +7 -7
- package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/DateTime.d.ts +0 -12
- package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/DateTime.d.ts.map +0 -1
- package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/DateTime.js +0 -36
- package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/DateTime.js.map +0 -1
- package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/Radio.d.ts +0 -15
- package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/Radio.d.ts.map +0 -1
- package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/Radio.js +0 -50
- package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/Radio.js.map +0 -1
- package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/TextInput.d.ts +0 -12
- package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/TextInput.d.ts.map +0 -1
- package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/TextInput.js +0 -44
- package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/TextInput.js.map +0 -1
- package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/index.d.ts +0 -16
- package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/index.d.ts.map +0 -1
- package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/index.js +0 -64
- package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/index.js.map +0 -1
|
@@ -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 { StyledLabel, calculateFontSize, tryCatch } from '@pega/cosmos-react-core';\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 const isAggregationApplied = view.columns?.filter(c => !c.hidden).some(c => c.aggregated);\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 0.9,\n theme.components.table.header['foreground-color']\n );\n const oddRowBackgroundColor =\n getLuminance(theme.components.table.body['secondary-background-color']) > 0.5\n ? theme.components.table.body['secondary-background-color']\n : mix(\n 0.75,\n theme.components.table.body['background-color'],\n theme.components.table.body['secondary-background-color']\n );\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 const oddRowContrast = meetsContrastGuidelines(\n theme.components.table.body['foreground-color'],\n oddRowBackgroundColor\n ).AA;\n const useableOddRowForeground = oddRowContrast\n ? theme.components.table.body['foreground-color']\n : readableColor(theme.components.table.body['foreground-color'], oddRowBackgroundColor);\n\n return css`\n --primary-background: ${theme.base.palette['primary-background']};\n --secondary-background: ${theme.components.table.header['background-color']};\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.125rem 0 var(--cell-padding);\n --header-bg-color: var(--secondary-background);\n --header-fg-color: ${usableHeaderForeground};\n --default-group-header-height: 1.5rem;\n --group-header-height: var(--default-group-header-height);\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 border: var(--border-style);\n border-radius: var(--border-radius, ${theme.base['border-radius']});\n position: relative;\n letter-spacing: var(--letter-spacing);\n font-stretch: var(--font-stretch);\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 .fallback,\n .fallback-footer {\n height: var(--row-height);\n background-color: var(--header-bg-color);\n color: var(--header-fg-color);\n position: absolute;\n width: 100%;\n z-index: -1;\n box-sizing: var(--box-sizing);\n }\n\n .fallback {\n /* stylelint-disable unit-allowed-list */\n top: -1px;\n border-bottom: var(--border-style);\n }\n\n .fallback-footer {\n top: 0;\n border-top: var(--border-style);\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\n .cell {\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 outline: 0.125rem auto var(--medium-blue);\n }\n\n .cell.selection-border:focus,\n .cell.editable-cell:focus {\n outline: none 0;\n }\n\n .editable-cell > span {\n height: 100%;\n display: flex;\n padding: 0 6px;\n align-items: center;\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: 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 transition: transform 0.5s var(--animation-ease);\n border-right: var(--border-style);\n position: relative;\n ${!theme.components.table['striped-rows'] &&\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 border-left: var(--border-style);\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(--header-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 ${theme.components.table['striped-rows'] &&\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 {\n &.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 border-inline-start: var(--border-style);\n }\n }\n }\n }\n\n > .cell-action {\n background-color: var(--primary-background);\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 1px var(--border-color-freeze);\n box-shadow: calc(${theme.base.spacing} * 0.25) 0 0 0 ${freezeLineShadowTransparent};\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 ${theme.components.table['striped-rows'] &&\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: var(--primary-background);\n }\n .cell-fixed.aggregateCell {\n background: var(--header-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: var(--primary-background);\n .cell-fixed {\n background: var(--primary-background);\n }\n > .cell-action {\n background: var(--primary-background);\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: 14px;\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 .editable-cell {\n padding: 0;\n border: 2px solid ${theme.base.palette.interactive} !important;\n box-shadow: 0 0 1px 1px rgba(0, 118, 209) !important;\n }\n\n .editable-cell input {\n border: none;\n outline: none;\n min-width: calc(100%);\n min-height: 0;\n max-height: 100%;\n box-shadow: none !important;\n border-radius: 0;\n }\n\n .editable-cell.align-right input {\n justify-content: right;\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-left: calc(var(--expand-collapse-all-width) + 0.25rem);\n }\n }\n\n .row-container .row > .cell-first {\n &.row-select-handle {\n padding-inline-start: calc(\n var(--expand-collapse-all-width) - var(--cell-padding) + 0.25rem\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-right: var(--border-style);\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 &::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 border-right: var(--border-style);\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\n > .cell-first {\n padding: 0 var(--cell-padding);\n }\n\n .row {\n border-bottom: none;\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 /* stylelint-enable selector-max-class */\n .row .cell.cell-last {\n border-right: 0;\n flex-grow: 1;\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\n & > .row:not(.group-header-row) {\n min-width: 100%;\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 white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n word-break: break-all;\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 /* stylelint-disable-next-line selector-max-class */\n .cell-content {\n flex-grow: unset;\n }\n }\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: normal;\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 selector-max-class */\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: normal;\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 padding: 0 8px;\n margin: 0 calc(${theme.base.spacing} / 4);\n }\n\n .toolbar-button {\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 .selection-border {\n border: 0.125rem solid var(--medium-blue) !important;\n }\n\n .disable-select {\n user-select: none; /* supported by Chrome and Firefox */\n -webkit-user-select: none; /* Safari */\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} 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 const isAggregationApplied = view.columns?.filter(c => !c.hidden).some(c => c.aggregated);\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 0.9,\n theme.components.table.header['foreground-color']\n );\n const oddRowBackgroundColor =\n getLuminance(theme.components.table.body['secondary-background-color']) > 0.5\n ? theme.components.table.body['secondary-background-color']\n : mix(\n 0.75,\n theme.components.table.body['background-color'],\n theme.components.table.body['secondary-background-color']\n );\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 const oddRowContrast = meetsContrastGuidelines(\n theme.components.table.body['foreground-color'],\n oddRowBackgroundColor\n ).AA;\n const useableOddRowForeground = oddRowContrast\n ? theme.components.table.body['foreground-color']\n : readableColor(theme.components.table.body['foreground-color'], oddRowBackgroundColor);\n\n return css`\n --primary-background: ${theme.base.palette['primary-background']};\n --secondary-background: ${theme.components.table.header['background-color']};\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.125rem 0 var(--cell-padding);\n --header-bg-color: var(--secondary-background);\n --header-fg-color: ${usableHeaderForeground};\n --default-group-header-height: 1.5rem;\n --group-header-height: var(--default-group-header-height);\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 border: var(--border-style);\n border-radius: var(--border-radius, ${theme.base['border-radius']});\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 .fallback,\n .fallback-footer {\n height: var(--row-height);\n background-color: var(--header-bg-color);\n color: var(--header-fg-color);\n position: absolute;\n width: 100%;\n z-index: -1;\n box-sizing: var(--box-sizing);\n }\n\n .fallback {\n /* stylelint-disable unit-allowed-list */\n top: -1px;\n border-bottom: var(--border-style);\n }\n\n .fallback-footer {\n top: 0;\n border-top: var(--border-style);\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\n .cell {\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 outline: 0.125rem auto var(--medium-blue);\n }\n\n .cell.selection-border:focus {\n outline: none 0;\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: 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 transition: transform 0.5s var(--animation-ease);\n border-right: var(--border-style);\n position: relative;\n ${!theme.components.table['striped-rows'] &&\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 border-left: var(--border-style);\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(--header-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 ${theme.components.table['striped-rows'] &&\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 {\n &.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 border-inline-start: var(--border-style);\n }\n }\n }\n }\n\n > .cell-action {\n background-color: var(--primary-background);\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 1px var(--border-color-freeze);\n box-shadow: calc(${theme.base.spacing} * 0.25) 0 0 0 ${freezeLineShadowTransparent};\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 ${theme.components.table['striped-rows'] &&\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: var(--primary-background);\n }\n .cell-fixed.aggregateCell {\n background: var(--header-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: var(--primary-background);\n .cell-fixed {\n background: var(--primary-background);\n }\n > .cell-action {\n background: var(--primary-background);\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: 14px;\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-left: calc(var(--expand-collapse-all-width) + 0.25rem);\n }\n }\n\n .row-container .row > .cell-first {\n &.row-select-handle {\n padding-inline-start: calc(\n var(--expand-collapse-all-width) - var(--cell-padding) + 0.25rem\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-right: var(--border-style);\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 &::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 border-right: var(--border-style);\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\n > .cell-first {\n padding: 0 var(--cell-padding);\n }\n\n .row {\n border-bottom: none;\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 /* stylelint-enable selector-max-class */\n .row .cell.cell-last {\n border-right: 0;\n flex-grow: 1;\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\n & > .row:not(.group-header-row) {\n min-width: 100%;\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 white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n word-break: break-all;\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 /* stylelint-disable-next-line selector-max-class */\n .cell-content {\n flex-grow: unset;\n }\n }\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: normal;\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 selector-max-class */\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: normal;\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 padding: 0 8px;\n margin: 0 calc(${theme.base.spacing} / 4);\n }\n\n .toolbar-button {\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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableA11y.d.ts","sourceRoot":"","sources":["../../../../Core/Views/Table/TableA11y.js"],"names":[],"mappings":";AA6BA;IACE,gLAoBC;IARC,4BAAwB;IACxB,qBAA2B;IAC3B,oBAAqB;IACrB,4BAA+B;IAC/B,oBAAoC;IACpC,eAA0B;IAC1B,+BAAkC;IAClC,uBAA0B;IAG5B,cAGC;IAED,wEAaC;IAED,8CAEC;IAED,kCAIC;IAED,6EAkBC;IAGD,wEA8BC;IAGD,gFA+BC;IAGD,iFA4BC;IAED,gFAYC;IAGD,wDAkBC;IAED,qGAmCC;IAED,yFASC;IAED,6CAsCC;IAED,+CAWC;IAED,
|
|
1
|
+
{"version":3,"file":"TableA11y.d.ts","sourceRoot":"","sources":["../../../../Core/Views/Table/TableA11y.js"],"names":[],"mappings":";AA6BA;IACE,gLAoBC;IARC,4BAAwB;IACxB,qBAA2B;IAC3B,oBAAqB;IACrB,4BAA+B;IAC/B,oBAAoC;IACpC,eAA0B;IAC1B,+BAAkC;IAClC,uBAA0B;IAG5B,cAGC;IAED,wEAaC;IAED,8CAEC;IAED,kCAIC;IAED,6EAkBC;IAGD,wEA8BC;IAGD,gFA+BC;IAGD,iFA4BC;IAED,gFAYC;IAGD,wDAkBC;IAED,qGAmCC;IAED,yFASC;IAED,6CAsCC;IAED,+CAWC;IAED,kCAQC;IAED,6EAYC;IAGD,2CAKC;IAED,4GAeC;IAED,2JAkCC;IAGD,sIAmCC;IAED,0CAIC;IAED,qCAwCC;IAED,wFAsBC;IAED,+BAWC;IAED,kCAcC;IAED,sCAeC;IAED,6CAoBC;IAED,qCAkBC;IAGD,8BAkFC;IAmBD,qDAWC;IAED,+CAIC;IAED,4BA8BC;IAED,+BAEC;IAED,qCAcC;IAED,sEAqCC;CACF;yBA9zB4C,gCAAgC"}
|
|
@@ -289,8 +289,9 @@ class TableA11y extends BaseA11y {
|
|
|
289
289
|
return true;
|
|
290
290
|
}
|
|
291
291
|
stopEventHandler(event) {
|
|
292
|
-
return (
|
|
293
|
-
event.target.
|
|
292
|
+
return (event.target.getAttribute('data-context-menu-active') === 'true' ||
|
|
293
|
+
(!event.target.closest(this.selectors.stickyGroupHeaderSelector) &&
|
|
294
|
+
event.target.getAttribute('aria-expanded')) === 'true' ||
|
|
294
295
|
event.target.closest('.popper') ||
|
|
295
296
|
!Object.values(this.keys).includes(event.keyCode));
|
|
296
297
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableA11y.js","sourceRoot":"","sources":["../../../../Core/Views/Table/TableA11y.js"],"names":[],"mappings":"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","sourcesContent":["import { BaseA11y, rowErrorColumnMeta } from 'pega-repeating-structures-core';\n\nconst sortOrder = {\n row: 'aria-rowindex',\n column: 'aria-colindex'\n};\n\nconst TAB_INDEX = 'tabindex';\nconst DATA_INDEX = 'data-index';\nconst HEADER_MENU = '.header-menu';\nconst HEADER = 'header';\nconst ARIA_DESCRIBEDBY = 'aria-describedby';\n\nfunction gainFocus(element) {\n element.setAttribute(TAB_INDEX, 0);\n element.focus();\n}\n\nfunction getHeaderColumnToFocusOnCtrlHome(columns) {\n return columns.find(column => {\n return !!column.querySelector(HEADER_MENU);\n });\n}\n\nfunction setFocusToFocusableElementOrCell(focusableElements, cell) {\n if (focusableElements.length === 1) focusableElements[0].focus();\n else gainFocus(cell);\n}\n\nclass TableA11y extends BaseA11y {\n constructor(\n selectors,\n focusableSelectors,\n // eslint-disable-next-line default-param-last\n customKeys = {},\n container,\n announcePolite,\n translate,\n actionableSelectors,\n ariaLabel\n ) {\n super(selectors, focusableSelectors, customKeys, container, actionableSelectors, ariaLabel);\n this.nextRowIndex = null;\n this.nextColumnIndex = null;\n this.targetIndex = -2;\n this.ctrlHomeKeyPressed = false;\n this.announcePolite = announcePolite;\n this.translate = translate;\n this.isTableLoaderFocussed = false;\n this.dataEntryMode = false;\n }\n\n reset() {\n this.nextRowIndex = null;\n this.nextColumnIndex = null;\n }\n\n getFocusableElementsInCell(column, isCalledFromEsc = false) {\n if (column) {\n const scalarListTag = '.scalarlist-component';\n const scalarListComponent = column.querySelector(scalarListTag);\n if (scalarListComponent) return [scalarListComponent];\n const elementsInColumn = column.querySelectorAll(\n this.focusableSelectors.concat(this.actionableSelectors).join(',')\n );\n if (!isCalledFromEsc && elementsInColumn.length > 1) {\n return [];\n }\n return column.querySelectorAll(this.focusableSelectors.join(','));\n }\n }\n\n getActionableElementsInCell(column) {\n return column.querySelectorAll(this.actionableSelectors.join(','));\n }\n\n getSortedColumns(row) {\n return [...row.querySelectorAll(this.selectors.focusElementSelector)].sort(\n (colA, colB) => colA.getAttribute(sortOrder.column) - colB.getAttribute(sortOrder.column)\n );\n }\n\n handleRightKeyPressForExpandCollapseAll(selectAllSelector) {\n const row = this.container.querySelector(this.selectors.parentElementSelector);\n let firstActionMenuSelector;\n if (row) {\n const sortedColumns = this.getSortedColumns(row);\n if (sortedColumns.length > 0) {\n const firstSortedColumnSelector = sortedColumns[0];\n firstActionMenuSelector = this.getFocusableElementsInCell(firstSortedColumnSelector);\n if (firstActionMenuSelector.length > 0) {\n return gainFocus(firstActionMenuSelector[0]);\n }\n const selectAllCheckboxSelector = this.container.querySelectorAll(selectAllSelector);\n if (selectAllCheckboxSelector.length === 0 && firstActionMenuSelector.length === 0) {\n return gainFocus(firstSortedColumnSelector);\n }\n }\n }\n return null;\n }\n\n // Below method is added to handle key events for expand and collapse all button\n handleExpandCollapseAllEvents(event, selectAllSelector) {\n const { keyCode, shiftKey } = event;\n switch (keyCode) {\n case this.keys.RIGHT: {\n event.preventDefault();\n this.handleRightKeyPressForExpandCollapseAll(selectAllSelector);\n break;\n }\n case this.keys.DOWN: {\n event.preventDefault();\n const stickyCells = this.container.querySelector(this.selectors.stickyGroupHeaderSelector);\n const nextfirstCell = stickyCells;\n const nextfirstCellChild = nextfirstCell.nextSibling;\n gainFocus(nextfirstCellChild);\n break;\n }\n case this.keys.UP:\n case this.keys.LEFT:\n event.preventDefault();\n break;\n case this.keys.TAB: {\n const currentCol = this.container\n .getRootNode()\n .activeElement.closest(this.selectors.focusElementSelector);\n this.containerTabHandler(event, currentCol, shiftKey);\n break;\n }\n default:\n break;\n }\n }\n\n // Below method is added to add/remove aria-label for rows with errors. Aria-label is added on first focus and removed if traversing in the same row\n handleAnnouncementForErrors(nextItem, currentCol, keyCode) {\n let elementWithErrorMessage = currentCol.querySelector('[data-error-message-set]');\n elementWithErrorMessage = currentCol.dataset.errorMessageSet\n ? currentCol\n : elementWithErrorMessage;\n const ARIA_LABEL = 'aria-label';\n if (elementWithErrorMessage) {\n const { ariaLabel: previousAriaLabel } = elementWithErrorMessage.dataset ?? {};\n if (previousAriaLabel) elementWithErrorMessage.setAttribute(ARIA_LABEL, previousAriaLabel);\n else elementWithErrorMessage.removeAttribute(ARIA_LABEL);\n }\n\n if (\n (keyCode !== this.keys.UP && keyCode !== this.keys.DOWN) ||\n nextItem\n .closest(this.selectors.focusElementSelector)\n ?.classList.contains(rowErrorColumnMeta.options.classList[0])\n )\n return;\n\n let errorMessage = nextItem.closest(this.selectors.parentElementSelector)?.dataset.errorMessage;\n if (errorMessage) {\n if (!nextItem.classList.contains(this.selectors.focusElementSelector.split('.')[1])) {\n if (nextItem.hasAttribute(ARIA_LABEL)) {\n errorMessage += `, ${nextItem.getAttribute(ARIA_LABEL)}`;\n nextItem.dataset.ariaLabel = nextItem.getAttribute(ARIA_LABEL);\n } else errorMessage += `, ${nextItem.textContent}`;\n }\n nextItem.setAttribute(ARIA_LABEL, errorMessage);\n nextItem.dataset.errorMessageSet = true;\n }\n }\n\n // Below method is added to set the focus on expand and collapse all button if left arrow key is pressed from actions button or select all checkbox\n handleKeyleftForButtonMoreSelectAll(event, selectAllSelector) {\n const { keyCode } = event;\n const row = this.container.querySelector(this.selectors.parentElementSelector);\n let firstActionMenuSelector;\n if (row) {\n const sortedColumns = this.getSortedColumns(row);\n if (sortedColumns.length > 0) {\n const firstSortedColumnSelector = sortedColumns[0];\n firstActionMenuSelector = this.getFocusableElementsInCell(firstSortedColumnSelector);\n const selectAllCheckboxSelector = this.container.querySelectorAll(selectAllSelector);\n if (\n ((firstActionMenuSelector.length > 0 && event.target === firstActionMenuSelector[0]) ||\n (selectAllCheckboxSelector.length === 0 &&\n firstActionMenuSelector.length === 0 &&\n event.target === firstSortedColumnSelector)) &&\n keyCode === this.keys.LEFT &&\n this.container.querySelector(this.selectors.expandCollpaseAll)\n ) {\n const expandCollapseSelector = this.container.querySelector(\n this.selectors.expandCollpaseAll\n );\n const expandCollapseButton = this.getFocusableElementsInCell(expandCollapseSelector);\n gainFocus(expandCollapseButton[0]);\n return true;\n }\n }\n }\n return false;\n }\n\n handleScrollOnUpArrowForGroupHeaders(event, pContainerSelector) {\n const pContainer = this.container.querySelector(pContainerSelector);\n if (\n pContainer &&\n event.keyCode === this.keys.UP &&\n event.target.getBoundingClientRect().y -\n (pContainer.firstChild.getBoundingClientRect().y +\n pContainer.firstChild.getBoundingClientRect().height) <\n event.target.getBoundingClientRect().height * 2\n ) {\n pContainer.scrollTop -= event.target.getBoundingClientRect().height * 2;\n }\n }\n\n // Used to update this.targetIndex on keydown which is later used by handleGroupHeaderEvents\n updateTargetColumnIndexForGroupHeader(event) {\n const { target, keyCode } = event;\n if (\n this.targetIndex === null ||\n this.targetIndex === -1 ||\n keyCode === this.keys.UP ||\n keyCode === this.keys.DOWN\n ) {\n if (target.closest(this.selectors.expandCollpaseAll)) {\n this.targetIndex = -1;\n return;\n }\n const cell = target.closest(this.selectors.focusElementSelector);\n let row = target.closest(this.selectors.parentElementSelector);\n row = this.getSortedColumns(row);\n\n this.targetIndex = [...row].indexOf(cell);\n }\n }\n\n handleUpDownKeyPressForGroupHeader(keyCode, target, cellToFocus, event) {\n // If the group header is at the last row and DOWN key is press then\n if (\n keyCode === this.keys.DOWN &&\n target.closest(this.selectors.parentElementSelector).nextElementSibling === null\n ) {\n // if footer exists\n const footer = this.container.querySelector(this.selectors.footer);\n const index = this.targetIndex < 0 ? 0 : this.targetIndex;\n if (footer) {\n const cell = this.getSortedColumns(\n footer.querySelector(this.selectors.parentElementSelector)\n )[index];\n setFocusToFocusableElementOrCell(this.getFocusableElementsInCell(cell), cell);\n }\n return true;\n }\n // If the focus came to the group header from the expand all button\n if (keyCode === this.keys.UP && this.targetIndex === -1) {\n this.container.querySelector(this.selectors.expandCollpaseAll).children[0].focus();\n } else {\n event.preventDefault();\n // If initially the group header is clicked and the keyboard is used\n if (cellToFocus && !cellToFocus.hasAttribute('tabindex')) {\n cellToFocus.setAttribute('tabindex', -1);\n }\n // Flushing the -1 index\n if (keyCode === this.keys.DOWN && this.targetIndex === -1) {\n this.targetIndex = 0;\n }\n if (cellToFocus) {\n cellToFocus.focus();\n }\n }\n return true;\n }\n\n handleLeftRightKeyPressForGroupHeader(keyCode, target, cellToFocus) {\n if (cellToFocus && !cellToFocus.hasAttribute('tabindex')) {\n cellToFocus.setAttribute('tabindex', -1);\n }\n\n if (!this.targetIndex) this.targetIndex = 0;\n if (cellToFocus) {\n setFocusToFocusableElementOrCell(this.getFocusableElementsInCell(cellToFocus), cellToFocus);\n }\n }\n\n handleGroupHeaderEvents(event) {\n const { keyCode, target, ctrlKey } = event;\n const index = this.targetIndex < 0 ? 0 : this.targetIndex;\n const cellToFocus = this.getSortedColumns(target.closest(this.selectors.parentElementSelector))[\n index\n ];\n\n switch (keyCode) {\n case this.keys.UP:\n case this.keys.DOWN: {\n return this.handleUpDownKeyPressForGroupHeader(keyCode, target, cellToFocus, event);\n }\n case this.keys.RIGHT:\n {\n // To Prevent Scrolling\n event.preventDefault();\n const row = target.closest(this.selectors.parentElementSelector);\n if (row.querySelector('.aggregate-button')) {\n const firstFocusableElementInRow = this.getSortedColumns(row)[0];\n this.handleLeftRightKeyPressForGroupHeader(keyCode, target, firstFocusableElementInRow);\n return false;\n }\n }\n break;\n case this.keys.TAB:\n if (cellToFocus) {\n cellToFocus.focus();\n }\n break;\n case this.keys.HOME:\n if (ctrlKey) {\n this.handleCtrlHomeKeypress();\n }\n break;\n default:\n break;\n }\n return true;\n }\n\n checkEventsForGroupHeader(event) {\n if (\n event.target &&\n (event.target.closest(this.selectors.focusElementSelector) ||\n event.target.closest(this.selectors.expandCollpaseAll))\n ) {\n this.updateTargetColumnIndexForGroupHeader(event);\n } else if (event.target && event.target.closest(this.selectors.stickyGroupHeaderSelector)) {\n return this.handleGroupHeaderEvents(event);\n }\n return true;\n }\n\n stopEventHandler(event) {\n return (\n (!event.target.closest(this.selectors.stickyGroupHeaderSelector) &&\n event.target.getAttribute('aria-expanded')) === 'true' ||\n event.target.closest('.popper') ||\n !Object.values(this.keys).includes(event.keyCode)\n );\n }\n\n handleLeftKeyPressOnAggregateCells(target, aggregateCell) {\n const firstCell = this.getSortedColumns(\n target.closest(this.selectors.parentElementSelector)\n )[0];\n if (firstCell === target.closest(aggregateCell)) {\n const groupHeaderButton = target\n .closest(this.selectors.parentElementSelector)\n ?.querySelector('.stickyGroupHeader > button');\n groupHeaderButton.focus();\n return false;\n }\n return true;\n }\n\n // eslint-disable-next-line class-methods-use-this\n isAccessibleElement(element) {\n return (\n !(element.hasAttribute('aria-hidden') && element.getAttribute('aria-hidden') === 'true') &&\n !(element.hasAttribute(TAB_INDEX) && element.getAttribute(TAB_INDEX) === '-1')\n );\n }\n\n getNextAccessibleElement(cellInputableElements, shiftKey = false, currentElementIndex = -1) {\n if (shiftKey) {\n cellInputableElements = [...cellInputableElements]\n .reverse()\n .slice(\n currentElementIndex !== -1 ? cellInputableElements.length - currentElementIndex : 0,\n cellInputableElements.length\n );\n } else {\n cellInputableElements = [...cellInputableElements].slice(\n currentElementIndex + 1,\n cellInputableElements.length\n );\n }\n return cellInputableElements.find(element => this.isAccessibleElement(element));\n }\n\n getAdjacentColumnCell(\n shiftKey,\n currentColumnIndex,\n currentEleParentIndex,\n sortedColumns,\n parentElements,\n currentCol\n ) {\n let nextColumnCell = null;\n if (shiftKey) {\n if (currentColumnIndex - 1 >= 0) {\n nextColumnCell = sortedColumns[sortedColumns.indexOf(currentCol) - 1];\n } else if (currentEleParentIndex - 1 >= 0) {\n sortedColumns = [\n ...parentElements[currentEleParentIndex - 1].querySelectorAll(\n this.selectors.focusElementSelector\n )\n ];\n currentEleParentIndex -= 1;\n nextColumnCell = sortedColumns[sortedColumns.length - 1];\n }\n } else if (currentColumnIndex + 1 < sortedColumns.length) {\n nextColumnCell = sortedColumns[sortedColumns.indexOf(currentCol) + 1];\n } else if (currentEleParentIndex + 1 < parentElements.length) {\n sortedColumns = [\n ...parentElements[currentEleParentIndex + 1].querySelectorAll(\n this.selectors.focusElementSelector\n )\n ];\n currentEleParentIndex += 1;\n\n nextColumnCell = sortedColumns[0];\n }\n return [nextColumnCell, sortedColumns, currentEleParentIndex];\n }\n\n // This method is to recursively find the next column cell with actionable or focusable elements and skip any empty cells\n getNextColumnCellInTaborder(\n sortedColumns,\n currentCol,\n shiftKey,\n parentElements,\n currentEleParentIndex\n ) {\n if (!currentCol) {\n return null;\n }\n let nextColumnCell = null;\n const currentColumnIndex = sortedColumns.indexOf(currentCol);\n [nextColumnCell, sortedColumns, currentEleParentIndex] = this.getAdjacentColumnCell(\n shiftKey,\n currentColumnIndex,\n currentEleParentIndex,\n sortedColumns,\n parentElements,\n currentCol\n );\n const elements =\n nextColumnCell &&\n nextColumnCell.querySelectorAll(\n [...this.actionableSelectors, ...this.focusableSelectors].join(',')\n );\n if (elements?.length) {\n return nextColumnCell;\n }\n return this.getNextColumnCellInTaborder(\n sortedColumns,\n nextColumnCell,\n shiftKey,\n parentElements,\n currentEleParentIndex\n );\n }\n\n isFocusableElement(element) {\n const colItem = element?.closest(this.selectors.focusElementSelector);\n if (!colItem) return false;\n return [...colItem.querySelectorAll(this.focusableSelectors.join(','))].includes(element);\n }\n\n handleTabKey(shiftKey) {\n const parentElements = this.container.querySelectorAll(this.selectors.parentElementSelector);\n const rootNode = this.container.getRootNode();\n const currentCol = rootNode.activeElement?.closest(this.selectors.focusElementSelector);\n const currentEleParentIndex = [...parentElements].indexOf(\n currentCol.closest(this.selectors.parentElementSelector)\n );\n const currentColumnElements = Array.from(\n currentCol.querySelectorAll(\n [...this.actionableSelectors, ...this.focusableSelectors].join(',')\n )\n );\n const currentEleIndex = currentColumnElements.indexOf(rootNode.activeElement);\n\n const sortedColumns = this.getSortedColumns(\n currentCol.closest(this.selectors.parentElementSelector)\n );\n\n const nextColumnCell = this.getNextColumnCellInTaborder(\n sortedColumns,\n currentCol,\n shiftKey,\n parentElements,\n currentEleParentIndex\n );\n\n if (\n (!shiftKey && currentEleIndex + 1 < currentColumnElements.length) ||\n (shiftKey && currentEleIndex - 1 >= 0)\n ) {\n return false;\n }\n if (nextColumnCell) {\n const nextColumnCellElements = nextColumnCell.querySelectorAll(\n [...this.actionableSelectors, ...this.focusableSelectors].join(',')\n );\n if (nextColumnCellElements.length !== 0) return false;\n }\n this.updateDataEntry();\n return true;\n }\n\n updateDataEntry(updateForHandler, focusElements, nextFocusElement) {\n switch (updateForHandler) {\n case 'click':\n if (focusElements.length === 1) {\n const hasFocusableElement = Array.from(focusElements).some(element =>\n this.focusableSelectors.some(selector => element.matches(selector))\n );\n this.dataEntryMode = !hasFocusableElement;\n } else if (nextFocusElement) {\n this.dataEntryMode = true;\n } else {\n this.dataEntryMode = false;\n }\n break;\n\n case 'enter':\n this.dataEntryMode = true;\n break;\n\n default:\n this.dataEntryMode = false;\n }\n }\n\n clickHandler(event) {\n const cell = event?.target?.closest(this.selectors.focusElementSelector);\n if (cell && cell !== event.target) {\n const focusElements = cell.querySelectorAll(\n this.focusableSelectors.concat(this.actionableSelectors).join(',')\n );\n const nextFocusElement = this.getNextAccessibleElement(focusElements);\n this.updateDataEntry('click', focusElements, nextFocusElement);\n } else {\n this.updateDataEntry();\n }\n }\n\n handleEnterKey(target) {\n const focusElements = target.querySelectorAll(\n this.focusableSelectors.concat(this.actionableSelectors).join(',')\n );\n const nextFocusElement = this.getNextAccessibleElement(focusElements);\n // register escape event for RTE to support event bubbling\n if (nextFocusElement?.nodeName === 'IFRAME') {\n this.registerEscapeEventForRTE(nextFocusElement);\n target.tabIndex = -1;\n } else if (nextFocusElement) {\n this.updateDataEntry('enter');\n gainFocus(nextFocusElement);\n target.tabIndex = -1;\n }\n }\n\n handleEscapeKey(target) {\n const cell = target.closest(this.selectors.focusElementSelector);\n if (\n cell &&\n (this.getFocusableElementsInCell(cell, true).length > 1 ||\n this.getActionableElementsInCell(cell).length >= 1)\n ) {\n this.updateDataEntry();\n gainFocus(cell);\n }\n if (this.getFocusableElementsInCell(cell, true).length === 1) {\n this.updateDataEntry();\n }\n\n return !cell;\n }\n\n registerEscapeEventForRTE(target) {\n const iframeContent = target.contentWindow || target.contentDocument;\n if (iframeContent?.document) {\n this.updateDataEntry('enter');\n iframeContent.document.querySelector(\"[contenteditable='true']\").focus();\n if (!iframeContent.document.escapeKeyHandlerInjected) {\n iframeContent.document.addEventListener('keydown', event => {\n if (event.keyCode === this.keys.ESCAPE) {\n const escapeEvent = new KeyboardEvent('keydown', {\n key: 'Escape',\n code: 'Escape',\n keyCode: this.keys.ESCAPE,\n bubbles: true\n });\n target.dispatchEvent(escapeEvent);\n }\n });\n }\n iframeContent.document.escapeKeyHandlerInjected = true;\n }\n }\n\n tableLoaderHandler(event) {\n const { keyCode } = event;\n switch (keyCode) {\n case this.keys.LEFT:\n case this.keys.RIGHT:\n case this.keys.UP:\n case this.keys.DOWN: {\n event.preventDefault();\n break;\n }\n case this.keys.TAB: {\n this.tabHandler(event);\n this.isTableLoaderFocussed = false;\n break;\n }\n default:\n break;\n }\n }\n\n // Below method is overridden to handle key events for expand and collapse all button, group headers\n a11yHandler(event) {\n const buttonMoreSelector = '.button-more';\n const selectAllSelector = '.select-all-checkbox';\n const selectHeaderWithoutCheckbox = '.row-select-handle';\n const pContainerSelector = '.pContainer';\n const aggregateCell = '.aggregateCell';\n const rootNode = this.container.getRootNode();\n let shouldCallSuper = true;\n const tableLoader = this.container.querySelector(this.selectors.tableLoader);\n const currentCol = rootNode.activeElement.closest(this.selectors.focusElementSelector);\n\n // Handling the key handling events for Loading indicator\n if (tableLoader && tableLoader === event.target) {\n this.tableLoaderHandler(event);\n return;\n }\n\n // Handling events related to group header\n if (this.container.querySelector(this.selectors.stickyGroupHeaderSelector)) {\n shouldCallSuper = this.checkEventsForGroupHeader(event);\n }\n\n // To handle left click from first aggregate cell\n if (event.target && event.target.closest(aggregateCell) && event.keyCode === this.keys.LEFT) {\n shouldCallSuper = this.handleLeftKeyPressOnAggregateCells(event.target, aggregateCell);\n }\n\n // Arrow key handlers restriction for data entry mode\n if (\n event.target &&\n this.dataEntryMode &&\n currentCol !== rootNode.activeElement &&\n (event.keyCode === this.keys.RIGHT ||\n event.keyCode === this.keys.LEFT ||\n event.keyCode === this.keys.UP ||\n event.keyCode === this.keys.DOWN)\n ) {\n return;\n }\n // Enter key handler\n if (event.target && event.keyCode === this.keys.ENTER) {\n this.handleEnterKey(event.target);\n }\n\n // Escape key handler\n if (event.target && event.keyCode === this.keys.ESCAPE) {\n this.handleEscapeKey(event.target);\n }\n\n // Tab key handler\n if (\n event.target &&\n event.keyCode === this.keys.TAB &&\n this.dataEntryMode &&\n currentCol !== rootNode.activeElement\n ) {\n shouldCallSuper = this.handleTabKey(event.shiftKey);\n }\n\n if (!shouldCallSuper) return;\n\n // Handling events for expand and collapse all button & handling scrolling for group header\n if (event.target && event.target.closest(this.selectors.expandCollpaseAll)) {\n this.handleExpandCollapseAllEvents(event, selectAllSelector);\n return;\n }\n if (event.target && event.target.closest(this.selectors.stickyGroupHeaderSelector)) {\n this.handleScrollOnUpArrowForGroupHeaders(event, pContainerSelector);\n }\n if (\n event.target &&\n (event.target.closest(buttonMoreSelector) ||\n event.target.closest(selectAllSelector) ||\n event.target.closest(selectHeaderWithoutCheckbox))\n ) {\n if (!this.handleKeyleftForButtonMoreSelectAll(event, selectAllSelector)) {\n // if focus is not handed in handleKeyLeftForButtonMoreSelectAll then invoke super.a11yHandler\n super.a11yHandler(event);\n }\n return;\n }\n super.a11yHandler(event);\n }\n\n // Below method is overridden to set the focus on expand and collapse all button if grouping is applied, to set the focus on table loader if navigated from toolbar by pressing tab key\n focusFirstElement() {\n if (this.container.querySelector(this.selectors.tableLoader)) {\n const tableLoadingIndicator = this.container.querySelector(this.selectors.tableLoader);\n tableLoadingIndicator.focus();\n this.isTableLoaderFocussed = true;\n return;\n }\n if (this.container.querySelector(this.selectors.expandCollpaseAll)) {\n const expandCollapseSelector = this.container.querySelector(this.selectors.expandCollpaseAll);\n const expandCollapseButton = this.getFocusableElementsInCell(expandCollapseSelector);\n gainFocus(expandCollapseButton[0]);\n return;\n }\n super.focusFirstElement();\n }\n\n setFocusOnLoader(loader, currentCol) {\n super.setFocusOnLoader(loader, currentCol);\n const nextRowIndexDirection = loader.classList.contains(this.selectors.aboveLoader.substr(1))\n ? -1\n : 1;\n this.nextColumnIndex = currentCol.getAttribute(sortOrder.column);\n this.nextRowIndex =\n parseInt(\n currentCol.closest(this.selectors.parentElementSelector).getAttribute(sortOrder.row),\n 10\n ) + nextRowIndexDirection;\n }\n\n dynamicLoadersKeyDownHandler(event) {\n if (super.dynamicLoadersKeyDownHandler(event)) {\n this.reset();\n }\n }\n\n itemsLoadedCallback() {\n if (this.ctrlHomeKeyPressed) {\n // ctrl+Home keypress happens on any cell but when initial rows are not present in container fetch happens for those rows\n // on rerender of the container focus the row1 data col1 of the table\n this.ctrlHomeKeyPressed = false;\n this.handleCtrlHomeKeypress();\n }\n // Below if condition is written to announce Loading completed once the table loader is hidden and we are also shifting the\n // focus on firstfocusableelement once the table Loader is hidden\n if (this.isTableLoaderFocussed && !this.container.querySelector(this.selectors.tableLoader)) {\n this.announcePolite({\n message: this.translate('Loading completed'),\n type: 'info'\n });\n this.focusFirstElement();\n this.isTableLoaderFocussed = false;\n }\n if (this.nextRowIndex && this.nextColumnIndex) {\n const row = this.container.querySelector(`[${sortOrder.row}='${this.nextRowIndex}']`);\n if (row) {\n const column = row.querySelector(`[${sortOrder.column}='${this.nextColumnIndex}']`);\n const restoreFocusRef = {\n columnIndex: [\n ...this.container.querySelectorAll(this.selectors.focusElementSelector)\n ].indexOf(column)\n };\n this.reset();\n this.setFocusToCell(restoreFocusRef);\n }\n }\n }\n\n isFirstDataRowInDOM() {\n return !!this.container.querySelector(`[${DATA_INDEX}='0']`);\n }\n\n getFocusableElementOnCtrlHome() {\n if (this.isFirstDataRowInDOM() && this.selectors.parentElementSelector) {\n const firstRow = this.container.querySelector(this.selectors.parentElementSelector);\n const sortedColumns = this.getSortedColumns(firstRow);\n if (firstRow.classList.contains(HEADER)) {\n // when header row is present focus first data column in the header\n return getHeaderColumnToFocusOnCtrlHome(sortedColumns);\n }\n // when there's no header focus row2 col1 element\n return sortedColumns[0];\n }\n // fetch 1st set of rows by setting scrollTop to 0 & then focus (handled in itemsLoadedCallback)\n this.ctrlHomeKeyPressed = true;\n return null;\n }\n\n toggleStyleFormatAriaDescription(nextCol, currentCol) {\n const nextColFocusableElements = this.getFocusableElementsInCell(nextCol);\n const currentColFocusableElements = this.getFocusableElementsInCell(currentCol);\n\n if (nextColFocusableElements.length === 1) {\n const nextFocusableElement = nextColFocusableElements[0];\n const nextElementAriaDescribedby = nextFocusableElement.getAttribute(ARIA_DESCRIBEDBY);\n\n const styleFormatId = nextCol.getAttribute('data-style-format');\n if (styleFormatId) {\n const combinedAriaDescribedby = [styleFormatId, nextElementAriaDescribedby]\n .filter(Boolean)\n .join(' ');\n nextFocusableElement.setAttribute(ARIA_DESCRIBEDBY, combinedAriaDescribedby);\n }\n }\n\n if (currentColFocusableElements.length === 1) {\n const currentFocusableElement = currentColFocusableElements[0];\n\n let originalAriaDescribedby = [];\n const currentAriaDescribedby = currentFocusableElement.getAttribute(ARIA_DESCRIBEDBY);\n if (currentAriaDescribedby) {\n originalAriaDescribedby = currentAriaDescribedby\n .split(' ')\n .filter(\n ariaDescribedby => ariaDescribedby !== currentCol.getAttribute('data-style-format')\n )\n .filter(Boolean);\n }\n\n if (originalAriaDescribedby.length) {\n currentFocusableElement.setAttribute(ARIA_DESCRIBEDBY, originalAriaDescribedby.join(' '));\n } else {\n currentFocusableElement.removeAttribute(ARIA_DESCRIBEDBY);\n }\n }\n }\n}\n\nexport default TableA11y;\n"]}
|
|
1
|
+
{"version":3,"file":"TableA11y.js","sourceRoot":"","sources":["../../../../Core/Views/Table/TableA11y.js"],"names":[],"mappings":"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","sourcesContent":["import { BaseA11y, rowErrorColumnMeta } from 'pega-repeating-structures-core';\n\nconst sortOrder = {\n row: 'aria-rowindex',\n column: 'aria-colindex'\n};\n\nconst TAB_INDEX = 'tabindex';\nconst DATA_INDEX = 'data-index';\nconst HEADER_MENU = '.header-menu';\nconst HEADER = 'header';\nconst ARIA_DESCRIBEDBY = 'aria-describedby';\n\nfunction gainFocus(element) {\n element.setAttribute(TAB_INDEX, 0);\n element.focus();\n}\n\nfunction getHeaderColumnToFocusOnCtrlHome(columns) {\n return columns.find(column => {\n return !!column.querySelector(HEADER_MENU);\n });\n}\n\nfunction setFocusToFocusableElementOrCell(focusableElements, cell) {\n if (focusableElements.length === 1) focusableElements[0].focus();\n else gainFocus(cell);\n}\n\nclass TableA11y extends BaseA11y {\n constructor(\n selectors,\n focusableSelectors,\n // eslint-disable-next-line default-param-last\n customKeys = {},\n container,\n announcePolite,\n translate,\n actionableSelectors,\n ariaLabel\n ) {\n super(selectors, focusableSelectors, customKeys, container, actionableSelectors, ariaLabel);\n this.nextRowIndex = null;\n this.nextColumnIndex = null;\n this.targetIndex = -2;\n this.ctrlHomeKeyPressed = false;\n this.announcePolite = announcePolite;\n this.translate = translate;\n this.isTableLoaderFocussed = false;\n this.dataEntryMode = false;\n }\n\n reset() {\n this.nextRowIndex = null;\n this.nextColumnIndex = null;\n }\n\n getFocusableElementsInCell(column, isCalledFromEsc = false) {\n if (column) {\n const scalarListTag = '.scalarlist-component';\n const scalarListComponent = column.querySelector(scalarListTag);\n if (scalarListComponent) return [scalarListComponent];\n const elementsInColumn = column.querySelectorAll(\n this.focusableSelectors.concat(this.actionableSelectors).join(',')\n );\n if (!isCalledFromEsc && elementsInColumn.length > 1) {\n return [];\n }\n return column.querySelectorAll(this.focusableSelectors.join(','));\n }\n }\n\n getActionableElementsInCell(column) {\n return column.querySelectorAll(this.actionableSelectors.join(','));\n }\n\n getSortedColumns(row) {\n return [...row.querySelectorAll(this.selectors.focusElementSelector)].sort(\n (colA, colB) => colA.getAttribute(sortOrder.column) - colB.getAttribute(sortOrder.column)\n );\n }\n\n handleRightKeyPressForExpandCollapseAll(selectAllSelector) {\n const row = this.container.querySelector(this.selectors.parentElementSelector);\n let firstActionMenuSelector;\n if (row) {\n const sortedColumns = this.getSortedColumns(row);\n if (sortedColumns.length > 0) {\n const firstSortedColumnSelector = sortedColumns[0];\n firstActionMenuSelector = this.getFocusableElementsInCell(firstSortedColumnSelector);\n if (firstActionMenuSelector.length > 0) {\n return gainFocus(firstActionMenuSelector[0]);\n }\n const selectAllCheckboxSelector = this.container.querySelectorAll(selectAllSelector);\n if (selectAllCheckboxSelector.length === 0 && firstActionMenuSelector.length === 0) {\n return gainFocus(firstSortedColumnSelector);\n }\n }\n }\n return null;\n }\n\n // Below method is added to handle key events for expand and collapse all button\n handleExpandCollapseAllEvents(event, selectAllSelector) {\n const { keyCode, shiftKey } = event;\n switch (keyCode) {\n case this.keys.RIGHT: {\n event.preventDefault();\n this.handleRightKeyPressForExpandCollapseAll(selectAllSelector);\n break;\n }\n case this.keys.DOWN: {\n event.preventDefault();\n const stickyCells = this.container.querySelector(this.selectors.stickyGroupHeaderSelector);\n const nextfirstCell = stickyCells;\n const nextfirstCellChild = nextfirstCell.nextSibling;\n gainFocus(nextfirstCellChild);\n break;\n }\n case this.keys.UP:\n case this.keys.LEFT:\n event.preventDefault();\n break;\n case this.keys.TAB: {\n const currentCol = this.container\n .getRootNode()\n .activeElement.closest(this.selectors.focusElementSelector);\n this.containerTabHandler(event, currentCol, shiftKey);\n break;\n }\n default:\n break;\n }\n }\n\n // Below method is added to add/remove aria-label for rows with errors. Aria-label is added on first focus and removed if traversing in the same row\n handleAnnouncementForErrors(nextItem, currentCol, keyCode) {\n let elementWithErrorMessage = currentCol.querySelector('[data-error-message-set]');\n elementWithErrorMessage = currentCol.dataset.errorMessageSet\n ? currentCol\n : elementWithErrorMessage;\n const ARIA_LABEL = 'aria-label';\n if (elementWithErrorMessage) {\n const { ariaLabel: previousAriaLabel } = elementWithErrorMessage.dataset ?? {};\n if (previousAriaLabel) elementWithErrorMessage.setAttribute(ARIA_LABEL, previousAriaLabel);\n else elementWithErrorMessage.removeAttribute(ARIA_LABEL);\n }\n\n if (\n (keyCode !== this.keys.UP && keyCode !== this.keys.DOWN) ||\n nextItem\n .closest(this.selectors.focusElementSelector)\n ?.classList.contains(rowErrorColumnMeta.options.classList[0])\n )\n return;\n\n let errorMessage = nextItem.closest(this.selectors.parentElementSelector)?.dataset.errorMessage;\n if (errorMessage) {\n if (!nextItem.classList.contains(this.selectors.focusElementSelector.split('.')[1])) {\n if (nextItem.hasAttribute(ARIA_LABEL)) {\n errorMessage += `, ${nextItem.getAttribute(ARIA_LABEL)}`;\n nextItem.dataset.ariaLabel = nextItem.getAttribute(ARIA_LABEL);\n } else errorMessage += `, ${nextItem.textContent}`;\n }\n nextItem.setAttribute(ARIA_LABEL, errorMessage);\n nextItem.dataset.errorMessageSet = true;\n }\n }\n\n // Below method is added to set the focus on expand and collapse all button if left arrow key is pressed from actions button or select all checkbox\n handleKeyleftForButtonMoreSelectAll(event, selectAllSelector) {\n const { keyCode } = event;\n const row = this.container.querySelector(this.selectors.parentElementSelector);\n let firstActionMenuSelector;\n if (row) {\n const sortedColumns = this.getSortedColumns(row);\n if (sortedColumns.length > 0) {\n const firstSortedColumnSelector = sortedColumns[0];\n firstActionMenuSelector = this.getFocusableElementsInCell(firstSortedColumnSelector);\n const selectAllCheckboxSelector = this.container.querySelectorAll(selectAllSelector);\n if (\n ((firstActionMenuSelector.length > 0 && event.target === firstActionMenuSelector[0]) ||\n (selectAllCheckboxSelector.length === 0 &&\n firstActionMenuSelector.length === 0 &&\n event.target === firstSortedColumnSelector)) &&\n keyCode === this.keys.LEFT &&\n this.container.querySelector(this.selectors.expandCollpaseAll)\n ) {\n const expandCollapseSelector = this.container.querySelector(\n this.selectors.expandCollpaseAll\n );\n const expandCollapseButton = this.getFocusableElementsInCell(expandCollapseSelector);\n gainFocus(expandCollapseButton[0]);\n return true;\n }\n }\n }\n return false;\n }\n\n handleScrollOnUpArrowForGroupHeaders(event, pContainerSelector) {\n const pContainer = this.container.querySelector(pContainerSelector);\n if (\n pContainer &&\n event.keyCode === this.keys.UP &&\n event.target.getBoundingClientRect().y -\n (pContainer.firstChild.getBoundingClientRect().y +\n pContainer.firstChild.getBoundingClientRect().height) <\n event.target.getBoundingClientRect().height * 2\n ) {\n pContainer.scrollTop -= event.target.getBoundingClientRect().height * 2;\n }\n }\n\n // Used to update this.targetIndex on keydown which is later used by handleGroupHeaderEvents\n updateTargetColumnIndexForGroupHeader(event) {\n const { target, keyCode } = event;\n if (\n this.targetIndex === null ||\n this.targetIndex === -1 ||\n keyCode === this.keys.UP ||\n keyCode === this.keys.DOWN\n ) {\n if (target.closest(this.selectors.expandCollpaseAll)) {\n this.targetIndex = -1;\n return;\n }\n const cell = target.closest(this.selectors.focusElementSelector);\n let row = target.closest(this.selectors.parentElementSelector);\n row = this.getSortedColumns(row);\n\n this.targetIndex = [...row].indexOf(cell);\n }\n }\n\n handleUpDownKeyPressForGroupHeader(keyCode, target, cellToFocus, event) {\n // If the group header is at the last row and DOWN key is press then\n if (\n keyCode === this.keys.DOWN &&\n target.closest(this.selectors.parentElementSelector).nextElementSibling === null\n ) {\n // if footer exists\n const footer = this.container.querySelector(this.selectors.footer);\n const index = this.targetIndex < 0 ? 0 : this.targetIndex;\n if (footer) {\n const cell = this.getSortedColumns(\n footer.querySelector(this.selectors.parentElementSelector)\n )[index];\n setFocusToFocusableElementOrCell(this.getFocusableElementsInCell(cell), cell);\n }\n return true;\n }\n // If the focus came to the group header from the expand all button\n if (keyCode === this.keys.UP && this.targetIndex === -1) {\n this.container.querySelector(this.selectors.expandCollpaseAll).children[0].focus();\n } else {\n event.preventDefault();\n // If initially the group header is clicked and the keyboard is used\n if (cellToFocus && !cellToFocus.hasAttribute('tabindex')) {\n cellToFocus.setAttribute('tabindex', -1);\n }\n // Flushing the -1 index\n if (keyCode === this.keys.DOWN && this.targetIndex === -1) {\n this.targetIndex = 0;\n }\n if (cellToFocus) {\n cellToFocus.focus();\n }\n }\n return true;\n }\n\n handleLeftRightKeyPressForGroupHeader(keyCode, target, cellToFocus) {\n if (cellToFocus && !cellToFocus.hasAttribute('tabindex')) {\n cellToFocus.setAttribute('tabindex', -1);\n }\n\n if (!this.targetIndex) this.targetIndex = 0;\n if (cellToFocus) {\n setFocusToFocusableElementOrCell(this.getFocusableElementsInCell(cellToFocus), cellToFocus);\n }\n }\n\n handleGroupHeaderEvents(event) {\n const { keyCode, target, ctrlKey } = event;\n const index = this.targetIndex < 0 ? 0 : this.targetIndex;\n const cellToFocus = this.getSortedColumns(target.closest(this.selectors.parentElementSelector))[\n index\n ];\n\n switch (keyCode) {\n case this.keys.UP:\n case this.keys.DOWN: {\n return this.handleUpDownKeyPressForGroupHeader(keyCode, target, cellToFocus, event);\n }\n case this.keys.RIGHT:\n {\n // To Prevent Scrolling\n event.preventDefault();\n const row = target.closest(this.selectors.parentElementSelector);\n if (row.querySelector('.aggregate-button')) {\n const firstFocusableElementInRow = this.getSortedColumns(row)[0];\n this.handleLeftRightKeyPressForGroupHeader(keyCode, target, firstFocusableElementInRow);\n return false;\n }\n }\n break;\n case this.keys.TAB:\n if (cellToFocus) {\n cellToFocus.focus();\n }\n break;\n case this.keys.HOME:\n if (ctrlKey) {\n this.handleCtrlHomeKeypress();\n }\n break;\n default:\n break;\n }\n return true;\n }\n\n checkEventsForGroupHeader(event) {\n if (\n event.target &&\n (event.target.closest(this.selectors.focusElementSelector) ||\n event.target.closest(this.selectors.expandCollpaseAll))\n ) {\n this.updateTargetColumnIndexForGroupHeader(event);\n } else if (event.target && event.target.closest(this.selectors.stickyGroupHeaderSelector)) {\n return this.handleGroupHeaderEvents(event);\n }\n return true;\n }\n\n stopEventHandler(event) {\n return (\n event.target.getAttribute('data-context-menu-active') === 'true' ||\n (!event.target.closest(this.selectors.stickyGroupHeaderSelector) &&\n event.target.getAttribute('aria-expanded')) === 'true' ||\n event.target.closest('.popper') ||\n !Object.values(this.keys).includes(event.keyCode)\n );\n }\n\n handleLeftKeyPressOnAggregateCells(target, aggregateCell) {\n const firstCell = this.getSortedColumns(\n target.closest(this.selectors.parentElementSelector)\n )[0];\n if (firstCell === target.closest(aggregateCell)) {\n const groupHeaderButton = target\n .closest(this.selectors.parentElementSelector)\n ?.querySelector('.stickyGroupHeader > button');\n groupHeaderButton.focus();\n return false;\n }\n return true;\n }\n\n // eslint-disable-next-line class-methods-use-this\n isAccessibleElement(element) {\n return (\n !(element.hasAttribute('aria-hidden') && element.getAttribute('aria-hidden') === 'true') &&\n !(element.hasAttribute(TAB_INDEX) && element.getAttribute(TAB_INDEX) === '-1')\n );\n }\n\n getNextAccessibleElement(cellInputableElements, shiftKey = false, currentElementIndex = -1) {\n if (shiftKey) {\n cellInputableElements = [...cellInputableElements]\n .reverse()\n .slice(\n currentElementIndex !== -1 ? cellInputableElements.length - currentElementIndex : 0,\n cellInputableElements.length\n );\n } else {\n cellInputableElements = [...cellInputableElements].slice(\n currentElementIndex + 1,\n cellInputableElements.length\n );\n }\n return cellInputableElements.find(element => this.isAccessibleElement(element));\n }\n\n getAdjacentColumnCell(\n shiftKey,\n currentColumnIndex,\n currentEleParentIndex,\n sortedColumns,\n parentElements,\n currentCol\n ) {\n let nextColumnCell = null;\n if (shiftKey) {\n if (currentColumnIndex - 1 >= 0) {\n nextColumnCell = sortedColumns[sortedColumns.indexOf(currentCol) - 1];\n } else if (currentEleParentIndex - 1 >= 0) {\n sortedColumns = [\n ...parentElements[currentEleParentIndex - 1].querySelectorAll(\n this.selectors.focusElementSelector\n )\n ];\n currentEleParentIndex -= 1;\n nextColumnCell = sortedColumns[sortedColumns.length - 1];\n }\n } else if (currentColumnIndex + 1 < sortedColumns.length) {\n nextColumnCell = sortedColumns[sortedColumns.indexOf(currentCol) + 1];\n } else if (currentEleParentIndex + 1 < parentElements.length) {\n sortedColumns = [\n ...parentElements[currentEleParentIndex + 1].querySelectorAll(\n this.selectors.focusElementSelector\n )\n ];\n currentEleParentIndex += 1;\n\n nextColumnCell = sortedColumns[0];\n }\n return [nextColumnCell, sortedColumns, currentEleParentIndex];\n }\n\n // This method is to recursively find the next column cell with actionable or focusable elements and skip any empty cells\n getNextColumnCellInTaborder(\n sortedColumns,\n currentCol,\n shiftKey,\n parentElements,\n currentEleParentIndex\n ) {\n if (!currentCol) {\n return null;\n }\n let nextColumnCell = null;\n const currentColumnIndex = sortedColumns.indexOf(currentCol);\n [nextColumnCell, sortedColumns, currentEleParentIndex] = this.getAdjacentColumnCell(\n shiftKey,\n currentColumnIndex,\n currentEleParentIndex,\n sortedColumns,\n parentElements,\n currentCol\n );\n const elements =\n nextColumnCell &&\n nextColumnCell.querySelectorAll(\n [...this.actionableSelectors, ...this.focusableSelectors].join(',')\n );\n if (elements?.length) {\n return nextColumnCell;\n }\n return this.getNextColumnCellInTaborder(\n sortedColumns,\n nextColumnCell,\n shiftKey,\n parentElements,\n currentEleParentIndex\n );\n }\n\n isFocusableElement(element) {\n const colItem = element?.closest(this.selectors.focusElementSelector);\n if (!colItem) return false;\n return [...colItem.querySelectorAll(this.focusableSelectors.join(','))].includes(element);\n }\n\n handleTabKey(shiftKey) {\n const parentElements = this.container.querySelectorAll(this.selectors.parentElementSelector);\n const rootNode = this.container.getRootNode();\n const currentCol = rootNode.activeElement?.closest(this.selectors.focusElementSelector);\n const currentEleParentIndex = [...parentElements].indexOf(\n currentCol.closest(this.selectors.parentElementSelector)\n );\n const currentColumnElements = Array.from(\n currentCol.querySelectorAll(\n [...this.actionableSelectors, ...this.focusableSelectors].join(',')\n )\n );\n const currentEleIndex = currentColumnElements.indexOf(rootNode.activeElement);\n\n const sortedColumns = this.getSortedColumns(\n currentCol.closest(this.selectors.parentElementSelector)\n );\n\n const nextColumnCell = this.getNextColumnCellInTaborder(\n sortedColumns,\n currentCol,\n shiftKey,\n parentElements,\n currentEleParentIndex\n );\n\n if (\n (!shiftKey && currentEleIndex + 1 < currentColumnElements.length) ||\n (shiftKey && currentEleIndex - 1 >= 0)\n ) {\n return false;\n }\n if (nextColumnCell) {\n const nextColumnCellElements = nextColumnCell.querySelectorAll(\n [...this.actionableSelectors, ...this.focusableSelectors].join(',')\n );\n if (nextColumnCellElements.length !== 0) return false;\n }\n this.updateDataEntry();\n return true;\n }\n\n updateDataEntry(updateForHandler, focusElements, nextFocusElement) {\n switch (updateForHandler) {\n case 'click':\n if (focusElements.length === 1) {\n const hasFocusableElement = Array.from(focusElements).some(element =>\n this.focusableSelectors.some(selector => element.matches(selector))\n );\n this.dataEntryMode = !hasFocusableElement;\n } else if (nextFocusElement) {\n this.dataEntryMode = true;\n } else {\n this.dataEntryMode = false;\n }\n break;\n\n case 'enter':\n this.dataEntryMode = true;\n break;\n\n default:\n this.dataEntryMode = false;\n }\n }\n\n clickHandler(event) {\n const cell = event?.target?.closest(this.selectors.focusElementSelector);\n if (cell && cell !== event.target) {\n const focusElements = cell.querySelectorAll(\n this.focusableSelectors.concat(this.actionableSelectors).join(',')\n );\n const nextFocusElement = this.getNextAccessibleElement(focusElements);\n this.updateDataEntry('click', focusElements, nextFocusElement);\n } else {\n this.updateDataEntry();\n }\n }\n\n handleEnterKey(target) {\n const focusElements = target.querySelectorAll(\n this.focusableSelectors.concat(this.actionableSelectors).join(',')\n );\n const nextFocusElement = this.getNextAccessibleElement(focusElements);\n // register escape event for RTE to support event bubbling\n if (nextFocusElement?.nodeName === 'IFRAME') {\n this.registerEscapeEventForRTE(nextFocusElement);\n target.tabIndex = -1;\n } else if (nextFocusElement) {\n this.updateDataEntry('enter');\n gainFocus(nextFocusElement);\n target.tabIndex = -1;\n }\n }\n\n handleEscapeKey(target) {\n const cell = target.closest(this.selectors.focusElementSelector);\n if (\n cell &&\n (this.getFocusableElementsInCell(cell, true).length > 1 ||\n this.getActionableElementsInCell(cell).length >= 1)\n ) {\n this.updateDataEntry();\n gainFocus(cell);\n }\n if (this.getFocusableElementsInCell(cell, true).length === 1) {\n this.updateDataEntry();\n }\n\n return !cell;\n }\n\n registerEscapeEventForRTE(target) {\n const iframeContent = target.contentWindow || target.contentDocument;\n if (iframeContent?.document) {\n this.updateDataEntry('enter');\n iframeContent.document.querySelector(\"[contenteditable='true']\").focus();\n if (!iframeContent.document.escapeKeyHandlerInjected) {\n iframeContent.document.addEventListener('keydown', event => {\n if (event.keyCode === this.keys.ESCAPE) {\n const escapeEvent = new KeyboardEvent('keydown', {\n key: 'Escape',\n code: 'Escape',\n keyCode: this.keys.ESCAPE,\n bubbles: true\n });\n target.dispatchEvent(escapeEvent);\n }\n });\n }\n iframeContent.document.escapeKeyHandlerInjected = true;\n }\n }\n\n tableLoaderHandler(event) {\n const { keyCode } = event;\n switch (keyCode) {\n case this.keys.LEFT:\n case this.keys.RIGHT:\n case this.keys.UP:\n case this.keys.DOWN: {\n event.preventDefault();\n break;\n }\n case this.keys.TAB: {\n this.tabHandler(event);\n this.isTableLoaderFocussed = false;\n break;\n }\n default:\n break;\n }\n }\n\n // Below method is overridden to handle key events for expand and collapse all button, group headers\n a11yHandler(event) {\n const buttonMoreSelector = '.button-more';\n const selectAllSelector = '.select-all-checkbox';\n const selectHeaderWithoutCheckbox = '.row-select-handle';\n const pContainerSelector = '.pContainer';\n const aggregateCell = '.aggregateCell';\n const rootNode = this.container.getRootNode();\n let shouldCallSuper = true;\n const tableLoader = this.container.querySelector(this.selectors.tableLoader);\n const currentCol = rootNode.activeElement.closest(this.selectors.focusElementSelector);\n\n // Handling the key handling events for Loading indicator\n if (tableLoader && tableLoader === event.target) {\n this.tableLoaderHandler(event);\n return;\n }\n\n // Handling events related to group header\n if (this.container.querySelector(this.selectors.stickyGroupHeaderSelector)) {\n shouldCallSuper = this.checkEventsForGroupHeader(event);\n }\n\n // To handle left click from first aggregate cell\n if (event.target && event.target.closest(aggregateCell) && event.keyCode === this.keys.LEFT) {\n shouldCallSuper = this.handleLeftKeyPressOnAggregateCells(event.target, aggregateCell);\n }\n\n // Arrow key handlers restriction for data entry mode\n if (\n event.target &&\n this.dataEntryMode &&\n currentCol !== rootNode.activeElement &&\n (event.keyCode === this.keys.RIGHT ||\n event.keyCode === this.keys.LEFT ||\n event.keyCode === this.keys.UP ||\n event.keyCode === this.keys.DOWN)\n ) {\n return;\n }\n // Enter key handler\n if (event.target && event.keyCode === this.keys.ENTER) {\n this.handleEnterKey(event.target);\n }\n\n // Escape key handler\n if (event.target && event.keyCode === this.keys.ESCAPE) {\n this.handleEscapeKey(event.target);\n }\n\n // Tab key handler\n if (\n event.target &&\n event.keyCode === this.keys.TAB &&\n this.dataEntryMode &&\n currentCol !== rootNode.activeElement\n ) {\n shouldCallSuper = this.handleTabKey(event.shiftKey);\n }\n\n if (!shouldCallSuper) return;\n\n // Handling events for expand and collapse all button & handling scrolling for group header\n if (event.target && event.target.closest(this.selectors.expandCollpaseAll)) {\n this.handleExpandCollapseAllEvents(event, selectAllSelector);\n return;\n }\n if (event.target && event.target.closest(this.selectors.stickyGroupHeaderSelector)) {\n this.handleScrollOnUpArrowForGroupHeaders(event, pContainerSelector);\n }\n if (\n event.target &&\n (event.target.closest(buttonMoreSelector) ||\n event.target.closest(selectAllSelector) ||\n event.target.closest(selectHeaderWithoutCheckbox))\n ) {\n if (!this.handleKeyleftForButtonMoreSelectAll(event, selectAllSelector)) {\n // if focus is not handed in handleKeyLeftForButtonMoreSelectAll then invoke super.a11yHandler\n super.a11yHandler(event);\n }\n return;\n }\n super.a11yHandler(event);\n }\n\n // Below method is overridden to set the focus on expand and collapse all button if grouping is applied, to set the focus on table loader if navigated from toolbar by pressing tab key\n focusFirstElement() {\n if (this.container.querySelector(this.selectors.tableLoader)) {\n const tableLoadingIndicator = this.container.querySelector(this.selectors.tableLoader);\n tableLoadingIndicator.focus();\n this.isTableLoaderFocussed = true;\n return;\n }\n if (this.container.querySelector(this.selectors.expandCollpaseAll)) {\n const expandCollapseSelector = this.container.querySelector(this.selectors.expandCollpaseAll);\n const expandCollapseButton = this.getFocusableElementsInCell(expandCollapseSelector);\n gainFocus(expandCollapseButton[0]);\n return;\n }\n super.focusFirstElement();\n }\n\n setFocusOnLoader(loader, currentCol) {\n super.setFocusOnLoader(loader, currentCol);\n const nextRowIndexDirection = loader.classList.contains(this.selectors.aboveLoader.substr(1))\n ? -1\n : 1;\n this.nextColumnIndex = currentCol.getAttribute(sortOrder.column);\n this.nextRowIndex =\n parseInt(\n currentCol.closest(this.selectors.parentElementSelector).getAttribute(sortOrder.row),\n 10\n ) + nextRowIndexDirection;\n }\n\n dynamicLoadersKeyDownHandler(event) {\n if (super.dynamicLoadersKeyDownHandler(event)) {\n this.reset();\n }\n }\n\n itemsLoadedCallback() {\n if (this.ctrlHomeKeyPressed) {\n // ctrl+Home keypress happens on any cell but when initial rows are not present in container fetch happens for those rows\n // on rerender of the container focus the row1 data col1 of the table\n this.ctrlHomeKeyPressed = false;\n this.handleCtrlHomeKeypress();\n }\n // Below if condition is written to announce Loading completed once the table loader is hidden and we are also shifting the\n // focus on firstfocusableelement once the table Loader is hidden\n if (this.isTableLoaderFocussed && !this.container.querySelector(this.selectors.tableLoader)) {\n this.announcePolite({\n message: this.translate('Loading completed'),\n type: 'info'\n });\n this.focusFirstElement();\n this.isTableLoaderFocussed = false;\n }\n if (this.nextRowIndex && this.nextColumnIndex) {\n const row = this.container.querySelector(`[${sortOrder.row}='${this.nextRowIndex}']`);\n if (row) {\n const column = row.querySelector(`[${sortOrder.column}='${this.nextColumnIndex}']`);\n const restoreFocusRef = {\n columnIndex: [\n ...this.container.querySelectorAll(this.selectors.focusElementSelector)\n ].indexOf(column)\n };\n this.reset();\n this.setFocusToCell(restoreFocusRef);\n }\n }\n }\n\n isFirstDataRowInDOM() {\n return !!this.container.querySelector(`[${DATA_INDEX}='0']`);\n }\n\n getFocusableElementOnCtrlHome() {\n if (this.isFirstDataRowInDOM() && this.selectors.parentElementSelector) {\n const firstRow = this.container.querySelector(this.selectors.parentElementSelector);\n const sortedColumns = this.getSortedColumns(firstRow);\n if (firstRow.classList.contains(HEADER)) {\n // when header row is present focus first data column in the header\n return getHeaderColumnToFocusOnCtrlHome(sortedColumns);\n }\n // when there's no header focus row2 col1 element\n return sortedColumns[0];\n }\n // fetch 1st set of rows by setting scrollTop to 0 & then focus (handled in itemsLoadedCallback)\n this.ctrlHomeKeyPressed = true;\n return null;\n }\n\n toggleStyleFormatAriaDescription(nextCol, currentCol) {\n const nextColFocusableElements = this.getFocusableElementsInCell(nextCol);\n const currentColFocusableElements = this.getFocusableElementsInCell(currentCol);\n\n if (nextColFocusableElements.length === 1) {\n const nextFocusableElement = nextColFocusableElements[0];\n const nextElementAriaDescribedby = nextFocusableElement.getAttribute(ARIA_DESCRIBEDBY);\n\n const styleFormatId = nextCol.getAttribute('data-style-format');\n if (styleFormatId) {\n const combinedAriaDescribedby = [styleFormatId, nextElementAriaDescribedby]\n .filter(Boolean)\n .join(' ');\n nextFocusableElement.setAttribute(ARIA_DESCRIBEDBY, combinedAriaDescribedby);\n }\n }\n\n if (currentColFocusableElements.length === 1) {\n const currentFocusableElement = currentColFocusableElements[0];\n\n let originalAriaDescribedby = [];\n const currentAriaDescribedby = currentFocusableElement.getAttribute(ARIA_DESCRIBEDBY);\n if (currentAriaDescribedby) {\n originalAriaDescribedby = currentAriaDescribedby\n .split(' ')\n .filter(\n ariaDescribedby => ariaDescribedby !== currentCol.getAttribute('data-style-format')\n )\n .filter(Boolean);\n }\n\n if (originalAriaDescribedby.length) {\n currentFocusableElement.setAttribute(ARIA_DESCRIBEDBY, originalAriaDescribedby.join(' '));\n } else {\n currentFocusableElement.removeAttribute(ARIA_DESCRIBEDBY);\n }\n }\n }\n}\n\nexport default TableA11y;\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pega/lists-react",
|
|
3
|
-
"version": "9.0.0-build.
|
|
3
|
+
"version": "9.0.0-build.12.0",
|
|
4
4
|
"description": "Repeating view structures such as Table, Gallery(Repeating layouts), Kanban etc.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"author": "Pegasystems",
|
|
@@ -14,9 +14,9 @@
|
|
|
14
14
|
"build": "tsc -b tsconfig.build.json"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@pega/cosmos-react-condition-builder": "9.0.0-build.
|
|
18
|
-
"@pega/cosmos-react-core": "9.0.0-build.
|
|
19
|
-
"@pega/cosmos-react-rte": "9.0.0-build.
|
|
17
|
+
"@pega/cosmos-react-condition-builder": "9.0.0-build.12.0",
|
|
18
|
+
"@pega/cosmos-react-core": "9.0.0-build.12.0",
|
|
19
|
+
"@pega/cosmos-react-rte": "9.0.0-build.12.0",
|
|
20
20
|
"@types/lodash.get": "^4.4.9",
|
|
21
21
|
"@types/react": "^17.0.62 || ^18.3.3",
|
|
22
22
|
"@types/react-dom": "^17.0.20 || ^18.3.0",
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
"dayjs": "^1.11.13",
|
|
25
25
|
"fast-deep-equal": "^3.1.3",
|
|
26
26
|
"lodash.get": "^4.4.2",
|
|
27
|
-
"pega-repeating-structures-core": "npm:@pega/lists-core@9.0.0-build.
|
|
28
|
-
"pega-ui-list-data-apis": "npm:@pega/lists-core-utils@9.0.0-build.
|
|
27
|
+
"pega-repeating-structures-core": "npm:@pega/lists-core@9.0.0-build.12.0",
|
|
28
|
+
"pega-ui-list-data-apis": "npm:@pega/lists-core-utils@9.0.0-build.12.0",
|
|
29
29
|
"polished": "^4.1.0",
|
|
30
30
|
"prop-types": "^15.8.1",
|
|
31
31
|
"react": "^17.0.0 || ^18.0.0",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"@testing-library/react": "^16.0.0",
|
|
45
45
|
"@testing-library/user-event": "^14.6.1",
|
|
46
46
|
"jest-axe": "^8.0.0",
|
|
47
|
-
"srs-utils": "9.0.0-build.
|
|
47
|
+
"srs-utils": "9.0.0-build.12.0",
|
|
48
48
|
"typescript": "~5.8.3"
|
|
49
49
|
}
|
|
50
50
|
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export default DateTime;
|
|
2
|
-
declare function DateTime(props: any): import("react/jsx-runtime").JSX.Element;
|
|
3
|
-
declare namespace DateTime {
|
|
4
|
-
namespace propTypes {
|
|
5
|
-
let onCancel: PropTypes.Validator<(...args: any[]) => any>;
|
|
6
|
-
let onSubmit: PropTypes.Validator<(...args: any[]) => any>;
|
|
7
|
-
let getField: PropTypes.Validator<(...args: any[]) => any>;
|
|
8
|
-
let getValue: PropTypes.Validator<(...args: any[]) => any>;
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
import PropTypes from 'prop-types';
|
|
12
|
-
//# sourceMappingURL=DateTime.d.ts.map
|
package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/DateTime.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DateTime.d.ts","sourceRoot":"","sources":["../../../../../../Core/Components/DefaultComponents/CellRenderers/EditComponents/DateTime.jsx"],"names":[],"mappings":";AAUA,+EAoCC;;;;;;;;;sBA7CqB,YAAY"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { useState, useRef, useEffect } from 'react';
|
|
3
|
-
import PropTypes from 'prop-types';
|
|
4
|
-
import { Input } from '@pega/cosmos-react-core';
|
|
5
|
-
import { FieldType } from 'pega-repeating-structures-core';
|
|
6
|
-
const styles = {
|
|
7
|
-
input: { width: '100%' }
|
|
8
|
-
};
|
|
9
|
-
function DateTime(props) {
|
|
10
|
-
const { getField, getValue } = props;
|
|
11
|
-
const { type } = getField();
|
|
12
|
-
const oldValue = getValue();
|
|
13
|
-
const [value, setValue] = useState(type === FieldType.DATE_TIME ? oldValue?.slice(0, -1) : oldValue);
|
|
14
|
-
const inputRef = useRef(null);
|
|
15
|
-
const onChange = event => setValue(event.target.value);
|
|
16
|
-
const onEscape = event => {
|
|
17
|
-
if (event.key === 'Escape') {
|
|
18
|
-
props.onCancel();
|
|
19
|
-
}
|
|
20
|
-
};
|
|
21
|
-
const onBlur = () => props.onSubmit({ oldValue, newValue: value });
|
|
22
|
-
useEffect(() => {
|
|
23
|
-
inputRef.current?.focus();
|
|
24
|
-
}, [inputRef]);
|
|
25
|
-
return (_jsx(Input, { ...props, type: type === FieldType.DATE_TIME ? 'datetime-local' : type, value: value, style: styles.input, ref: ref => {
|
|
26
|
-
inputRef.current = ref;
|
|
27
|
-
}, onChange: onChange, onBlur: onBlur, onKeyDown: onEscape }));
|
|
28
|
-
}
|
|
29
|
-
DateTime.propTypes = {
|
|
30
|
-
onCancel: PropTypes.func.isRequired,
|
|
31
|
-
onSubmit: PropTypes.func.isRequired,
|
|
32
|
-
getField: PropTypes.func.isRequired,
|
|
33
|
-
getValue: PropTypes.func.isRequired
|
|
34
|
-
};
|
|
35
|
-
export default DateTime;
|
|
36
|
-
//# sourceMappingURL=DateTime.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DateTime.js","sourceRoot":"","sources":["../../../../../../Core/Components/DefaultComponents/CellRenderers/EditComponents/DateTime.jsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAE3D,MAAM,MAAM,GAAG;IACb,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;CACzB,CAAC;AAEF,SAAS,QAAQ,CAAC,KAAK;IACrB,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IACrC,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAG,QAAQ,EAAE,CAAC;IAC5B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAChC,IAAI,KAAK,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CACjE,CAAC;IACF,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAE9B,MAAM,QAAQ,GAAG,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEvD,MAAM,QAAQ,GAAG,KAAK,CAAC,EAAE;QACvB,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC3B,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IACnE,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,OAAO,CACL,KAAC,KAAK,OACA,KAAK,EACT,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAC5D,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,GAAG,EAAE,GAAG,CAAC,EAAE;YACT,QAAQ,CAAC,OAAO,GAAG,GAAG,CAAC;QACzB,CAAC,EACD,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,QAAQ,GACnB,CACH,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,SAAS,GAAG;IACnB,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;IACnC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;IACnC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;IACnC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;CACpC,CAAC;AAEF,eAAe,QAAQ,CAAC","sourcesContent":["import { useState, useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Input } from '@pega/cosmos-react-core';\nimport { FieldType } from 'pega-repeating-structures-core';\n\nconst styles = {\n input: { width: '100%' }\n};\n\nfunction DateTime(props) {\n const { getField, getValue } = props;\n const { type } = getField();\n const oldValue = getValue();\n const [value, setValue] = useState(\n type === FieldType.DATE_TIME ? oldValue?.slice(0, -1) : oldValue\n );\n const inputRef = useRef(null);\n\n const onChange = event => setValue(event.target.value);\n\n const onEscape = event => {\n if (event.key === 'Escape') {\n props.onCancel();\n }\n };\n\n const onBlur = () => props.onSubmit({ oldValue, newValue: value });\n useEffect(() => {\n inputRef.current?.focus();\n }, [inputRef]);\n\n return (\n <Input\n {...props}\n type={type === FieldType.DATE_TIME ? 'datetime-local' : type}\n value={value}\n style={styles.input}\n ref={ref => {\n inputRef.current = ref;\n }}\n onChange={onChange}\n onBlur={onBlur}\n onKeyDown={onEscape}\n />\n );\n}\n\nDateTime.propTypes = {\n onCancel: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n getField: PropTypes.func.isRequired,\n getValue: PropTypes.func.isRequired\n};\n\nexport default DateTime;\n"]}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export default RadioGroup;
|
|
2
|
-
declare function RadioGroup(props: any): import("react/jsx-runtime").JSX.Element;
|
|
3
|
-
declare namespace RadioGroup {
|
|
4
|
-
namespace propTypes {
|
|
5
|
-
let onCancel: PropTypes.Validator<(...args: any[]) => any>;
|
|
6
|
-
let onSubmit: PropTypes.Validator<(...args: any[]) => any>;
|
|
7
|
-
let getField: PropTypes.Validator<(...args: any[]) => any>;
|
|
8
|
-
let getValue: PropTypes.Validator<(...args: any[]) => any>;
|
|
9
|
-
let getFormatter: PropTypes.Validator<(...args: any[]) => any>;
|
|
10
|
-
let renderFactory: PropTypes.Validator<(...args: any[]) => any>;
|
|
11
|
-
let resolveCellComponent: PropTypes.Validator<(...args: any[]) => any>;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
import PropTypes from 'prop-types';
|
|
15
|
-
//# sourceMappingURL=Radio.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Radio.d.ts","sourceRoot":"","sources":["../../../../../../Core/Components/DefaultComponents/CellRenderers/EditComponents/Radio.jsx"],"names":[],"mappings":";AASA,iFA+CC;;;;;;;;;;;;sBAvDqB,YAAY"}
|