@elliemae/ds-data-table 1.55.0 → 1.56.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/cjs/DataTable.js +1 -1
  2. package/cjs/addons/Columns/ColumnDragHandle/ColumnDragHandle.js +1 -1
  3. package/cjs/addons/Columns/ColumnExpand/ColumnExpand.js +1 -1
  4. package/cjs/addons/Columns/ColumnSelectMultiple/ColumnSelectMultiple.js +1 -1
  5. package/cjs/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.js +1 -1
  6. package/cjs/addons/Columns/index.js +1 -1
  7. package/cjs/addons/Editables/ComboboxEditableCell/ComboboxEditableCell.js +1 -1
  8. package/cjs/addons/Editables/DateEditableCell/DateEditableCell.js +1 -1
  9. package/cjs/addons/Editables/TextEditableCell/TextEditableCell.js +1 -1
  10. package/cjs/addons/Editables/index.js +1 -1
  11. package/cjs/addons/Filters/Components/DateRangeFilter/index.js +1 -1
  12. package/cjs/addons/Filters/Components/NumberRangeFilter/index.js +1 -1
  13. package/cjs/addons/Filters/Components/SelectFilter/BaseSelectFilter.js +1 -1
  14. package/cjs/addons/Filters/Components/SelectFilter/MultiSelectFilter.js +1 -1
  15. package/cjs/addons/Filters/Components/SelectFilter/SingleSelectFilter.js +1 -1
  16. package/cjs/addons/Filters/Components/SelectFilter/useSelectFilterHandlers.js +1 -1
  17. package/cjs/addons/Filters/Components/SelectFilter/utils.js +1 -1
  18. package/cjs/addons/Filters/Components/SingleDateFilter/index.js +1 -1
  19. package/cjs/addons/Filters/Components/TextInputFilter/index.js +1 -1
  20. package/cjs/addons/Filters/Components/index.js +1 -1
  21. package/cjs/addons/Filters/index.js +1 -1
  22. package/cjs/addons/Pagination/PagesButtons.js +1 -1
  23. package/cjs/addons/Pagination/Pagination.js +1 -1
  24. package/cjs/addons/Pagination/index.js +1 -1
  25. package/cjs/configs/index.js +1 -1
  26. package/cjs/configs/useDatatableConfig.js +1 -1
  27. package/cjs/configs/useTableColsWithAddons.js +5 -3
  28. package/cjs/configs/useTableColsWithAddons.js.map +1 -1
  29. package/cjs/exported-related/EditableCell.js +1 -1
  30. package/cjs/exported-related/FilterPopover.js +1 -1
  31. package/cjs/exported-related/Filters/applyOutOfTheBoxFilters.js +1 -1
  32. package/cjs/exported-related/Filters/dateRangeFilterFn.js +1 -1
  33. package/cjs/exported-related/Filters/index.js +1 -1
  34. package/cjs/exported-related/Filters/singleDateFilterFn.js +1 -1
  35. package/cjs/exported-related/RowRenderer/DefaultRowContentRenderer.js +1 -1
  36. package/cjs/exported-related/RowRenderer/index.js +1 -1
  37. package/cjs/exported-related/RowRenderer/useRowRendererHandlers.js +1 -1
  38. package/cjs/exported-related/Toolbar/Toolbar.js +1 -1
  39. package/cjs/exported-related/Toolbar/index.js +1 -1
  40. package/cjs/exported-related/index.js +1 -1
  41. package/cjs/helpers/dndkit/hierarchy/customCollisionDetection.js +1 -1
  42. package/cjs/helpers/dndkit/hierarchy/getHierarchyKeyboardCoordinates.js +1 -1
  43. package/cjs/helpers/dndkit/hierarchy/useHierarchyDndkitConfig.js +1 -1
  44. package/cjs/helpers/dndkit/hierarchy/useHierarchyPreviewHandlers.js +1 -1
  45. package/cjs/index.js +1 -1
  46. package/cjs/parts/Cells/Cell.js +1 -1
  47. package/cjs/parts/Cells/index.js +1 -1
  48. package/cjs/parts/DnDHandle.js +1 -1
  49. package/cjs/parts/FilterBar/FiltersBar.js +1 -1
  50. package/cjs/parts/FilterBar/index.js +1 -1
  51. package/cjs/parts/Filters/index.js +1 -1
  52. package/cjs/parts/Headers/HeaderCell.js +1 -1
  53. package/cjs/parts/Headers/HeaderCellGroup.js +1 -1
  54. package/cjs/parts/Headers/HeaderCellTitle.js +1 -1
  55. package/cjs/parts/Headers/HeaderResizer.js +1 -1
  56. package/cjs/parts/Headers/index.js +1 -1
  57. package/cjs/parts/HoC/withConditionalDnDColumnContext.js +1 -1
  58. package/cjs/parts/HoC/withDnDSortableColumnContext.js +1 -1
  59. package/cjs/parts/Row.js +1 -1
  60. package/cjs/parts/RowLoading.js +1 -1
  61. package/cjs/parts/RowVariants/RowVariantHeader.js +1 -1
  62. package/cjs/parts/RowVariants/RowVariantPrimary.js +1 -1
  63. package/cjs/parts/RowVariants/RowVariantSecondary.js +1 -1
  64. package/cjs/parts/RowVariants/index.js +1 -1
  65. package/cjs/parts/Rows.js +1 -1
  66. package/cjs/parts/TableContent.js +1 -1
  67. package/cjs/parts/VirtualRowsList.js +1 -1
  68. package/cjs/parts/index.js +1 -1
  69. package/cjs/{styled-b48112f8.js → styled-26b1eef5.js} +20 -9
  70. package/cjs/styled-26b1eef5.js.map +1 -0
  71. package/cjs/styled.js +1 -1
  72. package/esm/DataTable.js +1 -1
  73. package/esm/addons/Columns/ColumnDragHandle/ColumnDragHandle.js +1 -1
  74. package/esm/addons/Columns/ColumnExpand/ColumnExpand.js +1 -1
  75. package/esm/addons/Columns/ColumnSelectMultiple/ColumnSelectMultiple.js +1 -1
  76. package/esm/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.js +1 -1
  77. package/esm/addons/Columns/index.js +1 -1
  78. package/esm/addons/Editables/ComboboxEditableCell/ComboboxEditableCell.js +1 -1
  79. package/esm/addons/Editables/DateEditableCell/DateEditableCell.js +1 -1
  80. package/esm/addons/Editables/TextEditableCell/TextEditableCell.js +1 -1
  81. package/esm/addons/Editables/index.js +1 -1
  82. package/esm/addons/Filters/Components/DateRangeFilter/index.js +1 -1
  83. package/esm/addons/Filters/Components/NumberRangeFilter/index.js +1 -1
  84. package/esm/addons/Filters/Components/SelectFilter/BaseSelectFilter.js +1 -1
  85. package/esm/addons/Filters/Components/SelectFilter/MultiSelectFilter.js +1 -1
  86. package/esm/addons/Filters/Components/SelectFilter/SingleSelectFilter.js +1 -1
  87. package/esm/addons/Filters/Components/SelectFilter/useSelectFilterHandlers.js +1 -1
  88. package/esm/addons/Filters/Components/SelectFilter/utils.js +1 -1
  89. package/esm/addons/Filters/Components/SingleDateFilter/index.js +1 -1
  90. package/esm/addons/Filters/Components/TextInputFilter/index.js +1 -1
  91. package/esm/addons/Filters/Components/index.js +1 -1
  92. package/esm/addons/Filters/index.js +1 -1
  93. package/esm/addons/Pagination/PagesButtons.js +1 -1
  94. package/esm/addons/Pagination/Pagination.js +1 -1
  95. package/esm/addons/Pagination/index.js +1 -1
  96. package/esm/configs/index.js +1 -1
  97. package/esm/configs/useDatatableConfig.js +1 -1
  98. package/esm/configs/useTableColsWithAddons.js +6 -4
  99. package/esm/configs/useTableColsWithAddons.js.map +1 -1
  100. package/esm/exported-related/EditableCell.js +1 -1
  101. package/esm/exported-related/FilterPopover.js +1 -1
  102. package/esm/exported-related/Filters/applyOutOfTheBoxFilters.js +1 -1
  103. package/esm/exported-related/Filters/dateRangeFilterFn.js +1 -1
  104. package/esm/exported-related/Filters/index.js +1 -1
  105. package/esm/exported-related/Filters/singleDateFilterFn.js +1 -1
  106. package/esm/exported-related/RowRenderer/DefaultRowContentRenderer.js +1 -1
  107. package/esm/exported-related/RowRenderer/index.js +1 -1
  108. package/esm/exported-related/RowRenderer/useRowRendererHandlers.js +1 -1
  109. package/esm/exported-related/Toolbar/Toolbar.js +1 -1
  110. package/esm/exported-related/Toolbar/index.js +1 -1
  111. package/esm/exported-related/index.js +1 -1
  112. package/esm/helpers/dndkit/hierarchy/customCollisionDetection.js +1 -1
  113. package/esm/helpers/dndkit/hierarchy/getHierarchyKeyboardCoordinates.js +1 -1
  114. package/esm/helpers/dndkit/hierarchy/useHierarchyDndkitConfig.js +1 -1
  115. package/esm/helpers/dndkit/hierarchy/useHierarchyPreviewHandlers.js +1 -1
  116. package/esm/index.js +1 -1
  117. package/esm/parts/Cells/Cell.js +1 -1
  118. package/esm/parts/Cells/index.js +1 -1
  119. package/esm/parts/DnDHandle.js +1 -1
  120. package/esm/parts/FilterBar/FiltersBar.js +1 -1
  121. package/esm/parts/FilterBar/index.js +1 -1
  122. package/esm/parts/Filters/index.js +1 -1
  123. package/esm/parts/Headers/HeaderCell.js +1 -1
  124. package/esm/parts/Headers/HeaderCellGroup.js +1 -1
  125. package/esm/parts/Headers/HeaderCellTitle.js +1 -1
  126. package/esm/parts/Headers/HeaderResizer.js +1 -1
  127. package/esm/parts/Headers/index.js +1 -1
  128. package/esm/parts/HoC/withConditionalDnDColumnContext.js +1 -1
  129. package/esm/parts/HoC/withDnDSortableColumnContext.js +1 -1
  130. package/esm/parts/Row.js +1 -1
  131. package/esm/parts/RowLoading.js +1 -1
  132. package/esm/parts/RowVariants/RowVariantHeader.js +1 -1
  133. package/esm/parts/RowVariants/RowVariantPrimary.js +1 -1
  134. package/esm/parts/RowVariants/RowVariantSecondary.js +1 -1
  135. package/esm/parts/RowVariants/index.js +1 -1
  136. package/esm/parts/Rows.js +1 -1
  137. package/esm/parts/TableContent.js +1 -1
  138. package/esm/parts/VirtualRowsList.js +1 -1
  139. package/esm/parts/index.js +1 -1
  140. package/esm/{styled-98b7b59b.js → styled-2aa33852.js} +21 -10
  141. package/esm/styled-2aa33852.js.map +1 -0
  142. package/esm/styled.js +1 -1
  143. package/package.json +14 -14
  144. package/cjs/styled-b48112f8.js.map +0 -1
  145. package/esm/styled-98b7b59b.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styled-26b1eef5.js","sources":["../../src/addons/Columns/ColumnExpand/ColumnExpand.tsx","../../src/addons/Columns/ColumnSelectMultiple/ColumnSelectMultiple.tsx","../../src/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.tsx","../../src/addons/Pagination/PagesButtons.tsx","../../src/addons/Pagination/Pagination.tsx","../../src/parts/RowLoading.tsx","../../src/exported-related/FilterPopover.tsx","../../src/exported-related/EditableCell.tsx","../../src/exported-related/Filters/singleDateFilterFn.tsx","../../src/exported-related/Filters/dateRangeFilterFn.tsx","../../src/exported-related/Filters/applyOutOfTheBoxFilters.tsx","../../src/addons/Editables/TextEditableCell/TextEditableCell.tsx","../../src/addons/Editables/ComboboxEditableCell/ComboboxEditableCell.tsx","../../src/addons/Editables/index.tsx","../../src/parts/Cells/Cell.tsx","../../src/parts/Cells/index.tsx","../../src/exported-related/RowRenderer/DefaultRowContentRenderer.tsx","../../src/exported-related/RowRenderer/useRowRendererHandlers.tsx","../../src/exported-related/RowRenderer/index.tsx","../../src/parts/RowVariants/RowVariantHeader.tsx","../../src/parts/RowVariants/RowVariantPrimary.tsx","../../src/parts/RowVariants/RowVariantSecondary.tsx","../../src/parts/RowVariants/index.tsx","../../src/parts/Row.tsx","../../src/parts/Rows.tsx","../../src/helpers/dndkit/hierarchy/useHierarchyPreviewHandlers.tsx","../../src/helpers/dndkit/hierarchy/getHierarchyKeyboardCoordinates.tsx","../../src/helpers/dndkit/hierarchy/customCollisionDetection.tsx","../../src/helpers/dndkit/hierarchy/useHierarchyDndkitConfig.tsx","../../src/parts/HoC/withConditionalDnDColumnContext.tsx","../../src/addons/Filters/Components/DateRangeFilter/index.tsx","../../src/addons/Filters/Components/NumberRangeFilter/index.tsx","../../src/addons/Filters/Components/SelectFilter/utils.tsx","../../src/addons/Filters/Components/SelectFilter/useSelectFilterHandlers.tsx","../../src/addons/Filters/Components/SelectFilter/BaseSelectFilter.tsx","../../src/addons/Filters/Components/SelectFilter/SingleSelectFilter.tsx","../../src/addons/Filters/Components/SelectFilter/MultiSelectFilter.tsx","../../src/addons/Filters/Components/SingleDateFilter/index.tsx","../../src/addons/Filters/Components/TextInputFilter/index.tsx","../../src/parts/Filters/index.tsx","../../src/parts/Headers/HeaderResizer.tsx","../../src/parts/Headers/HeaderCellTitle.tsx","../../src/parts/Headers/HeaderCell.tsx","../../src/parts/HoC/withDnDSortableColumnContext.tsx","../../src/parts/Headers/HeaderCellGroup.tsx","../../src/parts/Headers/index.tsx","../../src/parts/VirtualRowsList.tsx","../../src/parts/TableContent.tsx","../../src/parts/DnDHandle.tsx","../../src/addons/Columns/ColumnDragHandle/ColumnDragHandle.tsx","../../src/addons/Columns/index.tsx","../../src/styled.tsx"],"sourcesContent":["/* eslint-disable react/prop-types */\n/* eslint-disable max-lines */\nimport React, { useMemo, useCallback } from 'react';\nimport { ArrowheadDown, ArrowheadRight, ArrowShortReturn } from '@elliemae/ds-icons';\nimport * as CSS from 'csstype';\nimport styled from 'styled-components';\nimport { TypescriptColumn } from '../../../types/props';\nimport { StyledFocusWithin } from '../../../styled';\nimport { DATA_TESTID } from '../../../configs';\n\nconst StyledSpan = styled.span`\n cursor: pointer;\n box-sizing: border-box;\n outline: none;\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nexport const expandRowColumn: TypescriptColumn = {\n // Build our expander column\n id: 'expander', // Make sure it has an ID\n accessor: 'expandRowColumn',\n Header: ({ ctx }) => {\n const {\n tableProps: { expandedRows, onRowExpand },\n allDataFlattened,\n } = ctx;\n\n const allExpandable = useMemo(() => {\n const expandable = {};\n allDataFlattened.forEach((row) => {\n if (row.original.subRows || row.original.tableRowDetails || row.original.dimsumHeaderValue)\n expandable[row.uid] = true;\n });\n return expandable;\n }, [allDataFlattened]);\n\n const isAllRowsExpanded = useMemo(\n () => Object.keys(allExpandable).length === Object.keys(expandedRows).length,\n [allExpandable, expandedRows],\n );\n\n const onExpandedAllHandler = useCallback(() => {\n if (isAllRowsExpanded) onRowExpand({}, 'All');\n else onRowExpand({ ...allExpandable }, 'All');\n }, [allExpandable, isAllRowsExpanded, onRowExpand]);\n\n const GlobalExpandIcon = useMemo(() => {\n if (isAllRowsExpanded)\n return (\n <ArrowheadDown\n size=\"s\"\n color={['brand-primary', '600']}\n data-testid={DATA_TESTID.DATA_TABLE_ICON_ARROW_DOWN}\n />\n );\n\n // Mixed\n if (Object.keys(expandedRows).length) {\n return (\n <ArrowheadRight\n size=\"s\"\n color={['brand-primary', '600']}\n data-testid={DATA_TESTID.DATA_TABLE_ICON_ARROW_MIXED}\n style={{ transform: 'rotate(45deg)' }}\n />\n );\n }\n return (\n <ArrowheadRight\n size=\"s\"\n color={['brand-primary', '600']}\n data-testid={DATA_TESTID.DATA_TABLE_ICON_ARROW_RIGHT}\n />\n );\n }, [expandedRows, isAllRowsExpanded]);\n\n return (\n <StyledFocusWithin>\n <StyledSpan\n role=\"button\"\n tabIndex={0}\n title=\"Toggle All Rows Expanded\"\n onClick={onExpandedAllHandler}\n onKeyDown={(e) => {\n if (['Enter', 'Space'].includes(e.code)) {\n onExpandedAllHandler();\n e.preventDefault();\n }\n }}\n data-testid={DATA_TESTID.DATA_TABLE_GLOBAL_EXPAND_CELL}\n aria-expanded={isAllRowsExpanded}\n style={{ width: '24px', height: '24px' }}\n >\n {GlobalExpandIcon}\n </StyledSpan>\n </StyledFocusWithin>\n );\n },\n Cell: ({ cell, row, isRowSelected, ctx, draggableProps }) => {\n const {\n tableProps: { dragAndDropRows, expandedRows, onRowExpand },\n } = ctx;\n\n const uniqueId = row.uid;\n\n const isExpanded = expandedRows[uniqueId];\n\n const shouldPrintCaret =\n (row.original.subRows?.length && row.depth === 0) || // only allows 1 level of expands\n row.original.tableRowDetails ||\n row.original.dimsumHeaderValue;\n\n const onRowExpandHandler = useCallback(\n (e) => {\n e.stopPropagation();\n if (expandedRows[uniqueId]) {\n delete expandedRows[uniqueId];\n } else {\n expandedRows[uniqueId] = true;\n }\n onRowExpand({ ...expandedRows }, uniqueId);\n },\n [expandedRows, uniqueId, onRowExpand],\n );\n\n const isDragging = draggableProps ? draggableProps.isDragging : false;\n const isDragOverlay = dragAndDropRows && !draggableProps;\n\n const indentStyle: CSS.Properties = useMemo(\n () => ({\n marginLeft: `${row.depth * 32}px`,\n marginRight: '18px',\n paddingLeft: '2px',\n paddingRight: '2px',\n position: 'relative',\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n }),\n [row.depth],\n );\n\n const rowProps = useMemo(\n () => ({\n role: 'button',\n key: `${row.uid}-expand-button`,\n title: 'Toggle Row Expanded',\n onClick: onRowExpandHandler,\n onKeyDown: (e) => {\n if (['Enter', 'Space'].includes(e.code)) {\n e.preventDefault();\n onRowExpandHandler(e);\n }\n },\n ref: cell.ref,\n tabIndex: isRowSelected ? 0 : -1,\n 'data-testid': 'data-table-row-expand-cell',\n 'aria-expanded': isExpanded,\n isRightArrow: !isExpanded || isDragging || isDragOverlay,\n }),\n [row.uid, onRowExpandHandler, cell.ref, isRowSelected, isExpanded, isDragging, isDragOverlay],\n );\n\n const PureCaretIcon = useMemo(\n () =>\n isExpanded && !isDragging && !isDragOverlay ? (\n <ArrowheadDown\n data-is-col-expanded={isExpanded}\n data-role=\"row-expander-col\"\n size=\"s\"\n data-testid={DATA_TESTID.DATA_TABLE_ICON_ARROW_DOWN}\n />\n ) : (\n <ArrowheadRight\n data-is-col-expanded={isExpanded}\n data-role=\"row-expander-col\"\n size=\"s\"\n data-testid={DATA_TESTID.DATA_TABLE_ICON_ARROW_RIGHT}\n />\n ),\n [isExpanded, isDragging, isDragOverlay],\n );\n\n const ChildIcon = useMemo(\n () => (\n <ArrowShortReturn\n size=\"s\"\n data-testid={DATA_TESTID.DATA_TABLE_ICON_CHILD}\n style={{ transform: 'rotate(90deg) scaleY(-1)' }}\n color={['brand-primary', '600']}\n />\n ),\n [],\n );\n\n if (shouldPrintCaret)\n return (\n <StyledFocusWithin style={indentStyle}>\n <StyledSpan {...rowProps}>{PureCaretIcon}</StyledSpan>\n </StyledFocusWithin>\n );\n if (row.depth !== 0) return <span style={indentStyle}>{ChildIcon}</span>;\n\n return <div style={{ width: '36px' }} />;\n },\n textWrap: 'wrap',\n canResize: false,\n width: 25,\n padding: 0,\n isFocuseable: false,\n disableDnD: true,\n};\n","import React, { useMemo, useCallback } from 'react';\nimport DSCheckbox from '@elliemae/ds-form/Checkbox';\nimport { TypescriptColumn } from '../../../types/props';\nimport { DATA_TESTID } from '../../../configs';\n\nexport const multiSelectColumn: TypescriptColumn = {\n // Build our multiSelecter column\n id: 'multiSelecter', // Make sure it has an ID\n Header: ({ ctx }) => {\n const {\n tableProps: { onSelectionChange, selection, data, disabledRows },\n allDataFlattened,\n } = ctx;\n\n const selectionKeyCount = Object.keys(selection).length;\n\n const currentGlobalState = useMemo(\n () => (selectionKeyCount > 0 && selectionKeyCount < data.length ? 'mixed' : selectionKeyCount > 0),\n [selectionKeyCount, data],\n );\n\n const newGlobalStateAfterToggle = useMemo(() => {\n // false -- toggles into --> true\n // mixed -- toggles into --> true\n // true -- toggles into --> false\n let newState = false;\n if (currentGlobalState === false || currentGlobalState === 'mixed') newState = true;\n return newState;\n }, [currentGlobalState]);\n\n const newSelection = useMemo(() => {\n if (newGlobalStateAfterToggle) {\n const nextSelection = {};\n allDataFlattened.forEach((datum) => {\n nextSelection[datum.uid] = !disabledRows[datum.uid];\n });\n return nextSelection;\n }\n return {};\n }, [newGlobalStateAfterToggle, allDataFlattened, disabledRows]);\n\n const onChangeHandler = useCallback(\n (e) => {\n onSelectionChange(newSelection, 'All', e);\n },\n [newSelection, onSelectionChange],\n );\n\n const PureHeaderCheckbox = useMemo(\n () => (\n <DSCheckbox\n data-testid={DATA_TESTID.DATA_TABLE_GLOBAL_CHECKBOX}\n title=\"Toggle All Rows Selected\"\n checked={currentGlobalState}\n onChange={onChangeHandler}\n tabIndex=\"0\"\n style={{ cursor: 'pointer' }}\n />\n ),\n [currentGlobalState, onChangeHandler],\n );\n return PureHeaderCheckbox;\n },\n Cell: ({ cell, row, isRowSelected, ctx }) => {\n const {\n tableProps: { onSelectionChange, selection, disabledRows },\n } = ctx;\n const { uid } = row;\n const selectedState = selection?.[uid];\n const PureCheckboxCell = useMemo(\n () => (\n <DSCheckbox\n data-testid={DATA_TESTID.DATA_TABLE_CHECKBOX}\n title=\"Toggle Row Selected\"\n aria-checked={selectedState}\n aria-disabled={false}\n checked={selectedState}\n onChange={(e) => {\n const newState = !selectedState;\n const newSelection = { ...selection, [uid]: newState }; // we only want true and mixed values\n if (!newState) delete newSelection[uid]; // if newState is false, remove from the new selection\n onSelectionChange(newSelection, uid, e);\n }}\n disabled={disabledRows[row.uid]}\n innerRef={cell.ref}\n tabIndex={isRowSelected ? 0 : -1}\n style={{ cursor: 'pointer' }}\n />\n ),\n [selectedState, disabledRows, row.uid, cell.ref, isRowSelected, selection, uid, onSelectionChange],\n );\n return PureCheckboxCell;\n },\n textWrap: 'wrap',\n width: 32,\n padding: 7,\n canResize: false,\n isFocuseable: false,\n disableDnD: true,\n};\n","import React, { useMemo } from 'react';\nimport styled from 'styled-components';\n\nimport DSRadio from '@elliemae/ds-form/Radio';\nimport { TypescriptColumn } from '../../../types/props';\nimport { DATA_TESTID } from '../../../configs';\n\nconst CenteredContent = styled.div`\n display: flex;\n height: 100%;\n width: 100%;\n justify-content: center;\n align-items: center;\n`;\nconst StyledDSRadio = styled(DSRadio)`\n padding-bottom: 0;\n cursor: pointer;\n`;\n\nexport const singleSelectColumn: TypescriptColumn = {\n // Build our singleSelecter column\n id: 'singleSelecter', // Make sure it has an ID\n // The header doesn't need anything for single selection\n Header: () => <div />,\n Cell: ({ cell, row, isRowSelected, ctx }) => {\n const {\n tableProps: { onSelectionChange, selection, disabledRows },\n } = ctx;\n const { uid } = row;\n const selectedState = selection?.[uid];\n\n const PureCheckBox = useMemo(\n () => (\n <CenteredContent>\n <StyledDSRadio\n // eslint-disable-next-line react/prop-types\n containerProps={{\n 'aria-checked': selectedState,\n 'aria-disabled': false,\n title: 'Toggle Row Selected',\n }}\n checked={selectedState}\n onChange={() => {\n // in single select we only allow one item to be selected\n onSelectionChange(!selectedState ? { [uid]: !selectedState } : {});\n }}\n data-testid={DATA_TESTID.DATA_TABLE_RADIO}\n disabled={disabledRows[row.uid]}\n innerRef={cell.ref}\n value=\"\"\n tabIndex={isRowSelected ? 0 : -1}\n />\n </CenteredContent>\n ),\n [selectedState, disabledRows, row.uid, cell.ref, isRowSelected, onSelectionChange, uid],\n );\n return PureCheckBox;\n },\n textWrap: 'wrap',\n width: 32,\n padding: 4,\n canResize: false,\n isFocuseable: false,\n disableDnD: true,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport DSButton from '@elliemae/ds-button';\nimport styled from 'styled-components';\nimport ActiveZoneButtons from './ActiveZoneButtons';\nimport { TypescriptPagination } from '../../types/props';\nimport { DATA_TESTID } from '../../configs';\n\nconst InlineDSButton = styled(DSButton)`\n display: inline-block;\n margin: 0 5px;\n`;\n\nconst PagesButtons: React.ComponentType<TypescriptPagination> = (props) => {\n const { canPreviousPage, canNextPage, pageIndex, pageCount, onNextPage, onPreviousPage, onPageChange } = props;\n\n return (\n <>\n <InlineDSButton\n onClick={() => {\n if (canPreviousPage) onPreviousPage();\n }}\n disabled={!canPreviousPage}\n labelText=\"Previous\"\n buttonType=\"secondary\"\n data-testid={DATA_TESTID.DATA_TABLE_PAGINATION_PREVIOUS_BUTTON}\n aria-label=\"Go to previous page\"\n />\n\n <ActiveZoneButtons\n pageIndex={pageIndex}\n pageCount={pageCount}\n onPageChange={onPageChange}\n ButtonComponent={InlineDSButton}\n />\n <InlineDSButton\n onClick={() => {\n if (canNextPage) onNextPage();\n }}\n disabled={!canNextPage}\n labelText=\"Next\"\n buttonType=\"secondary\"\n data-testid={DATA_TESTID.DATA_TABLE_PAGINATION_NEXT_BUTTON}\n aria-label=\"Go to next page\"\n />\n </>\n );\n};\n\nPagesButtons.propTypes = {\n canPreviousPage: PropTypes.bool.isRequired,\n canNextPage: PropTypes.bool.isRequired,\n pageIndex: PropTypes.number.isRequired,\n pageCount: PropTypes.number.isRequired,\n onNextPage: PropTypes.func.isRequired,\n onPreviousPage: PropTypes.func.isRequired,\n onPageChange: PropTypes.func.isRequired,\n};\n\nexport default PagesButtons;\n","import React, { useContext, useEffect, useMemo } from 'react';\nimport { PaginationContainer, PaginationWrapper } from '../../styled';\nimport DataTableContext from '../../DataTableContext';\nimport PerPageSelector from './PerPageSelector';\nimport PagesButtons from './PagesButtons';\nimport { DATA_TESTID } from '../../configs';\nimport { TypescriptPagination } from '../../types/props';\n\nexport const Pagination: React.ComponentType<Record<string, never>> = () => {\n const {\n tableProps: { pagination, onPageChanged },\n paginationHelpers: {\n pageIndex,\n pageSize,\n canPreviousPage,\n canNextPage,\n onPageSizeChange,\n onNextPage,\n onPreviousPage,\n onPageChange,\n pageCount,\n },\n flattenedData: page,\n layoutHelpers: { totalColumnsWidth },\n } = useContext(DataTableContext);\n\n const originalPage = useMemo(() => page.map((row) => row.original), [page]);\n\n useEffect(() => {\n onPageChanged(originalPage);\n }, [onPageChanged, originalPage]);\n\n return (\n <PaginationContainer width={totalColumnsWidth} data-testid={DATA_TESTID.DATA_TABLE_PAGINATION_CONTAINER}>\n <PaginationWrapper>\n <PerPageSelector\n pagination={pagination as TypescriptPagination}\n pageSize={pageSize}\n setPageSize={onPageSizeChange}\n />\n <PagesButtons\n canPreviousPage={canPreviousPage}\n canNextPage={canNextPage}\n pageCount={pageCount}\n pageIndex={pageIndex}\n onNextPage={onNextPage}\n onPreviousPage={onPreviousPage}\n onPageChange={onPageChange}\n />\n </PaginationWrapper>\n </PaginationContainer>\n );\n};\n","import React, { useMemo } from 'react';\nimport DSIndeterminateProgressIndicator from '@elliemae/ds-indeterminate-progress-indicator';\nimport Grid from '@elliemae/ds-grid';\nimport styled from 'styled-components';\nimport { DATA_TESTID } from '../configs';\n\nconst StyledRowLoadingContainer = styled(Grid)`\n position: absolute;\n bottom: -40px;\n left: 0;\n width: 100%;\n place-items: center;\n background-color: white;\n`;\n\nconst RowLoading: React.ComponentType = () => {\n const PureLoading = useMemo(\n () => (\n <StyledRowLoadingContainer role=\"row\" data-testid={DATA_TESTID.DATA_TABLE_ROW}>\n <DSIndeterminateProgressIndicator processing title=\"Loading\" />\n </StyledRowLoadingContainer>\n ),\n [],\n );\n\n return PureLoading;\n};\nexport default RowLoading;\n","/* eslint-disable react/prop-types */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\nimport React, { MutableRefObject, useRef, useState } from 'react';\nimport DSButton from '@elliemae/ds-button';\nimport { DSPopperJS } from '@elliemae/ds-popperjs';\nimport styled from 'styled-components';\nimport { useDispatchHeadersActions } from '../redux/reducers';\nimport { DATA_TESTID } from '../configs';\n\nconst FilterButton = styled.span<{ hide: boolean }>`\n display: inline-grid;\n ${(props) => (props.hide ? 'opacity: 0; display: none; width: 0;' : '')}\n`;\n\nconst Button = styled(DSButton)`\n position: relative;\n justify-self: flex-end;\n`;\n\ninterface FilterPopoverProps {\n columnId: string;\n triggerIcon: JSX.Element;\n menuContent: JSX.Element;\n onTriggerClick?: (id: string, e: UIEvent) => void;\n onClickOutsideMenu?: (id: string, e: UIEvent) => void;\n reduxHeader: { hideFilterButton: boolean; hideFilterMenu: boolean; withTabStops: boolean };\n innerRef: MutableRefObject<HTMLDivElement>;\n ariaLabel: string;\n}\n\nexport const FilterPopover: React.ComponentType<FilterPopoverProps> = ({\n column,\n columnId,\n triggerIcon,\n menuContent,\n onTriggerClick = () => null,\n onClickOutsideMenu = () => null,\n reduxHeader,\n innerRef,\n ariaLabel,\n}) => {\n const { hideFilterButton, hideFilterMenu } = reduxHeader || {\n hideFilterButton: true,\n hideFilterMenu: true,\n };\n const popperRef = useRef(null);\n const { patchHeaderFilterButtonAndMenu, patchHeader } = useDispatchHeadersActions();\n const isIconVisible = !hideFilterButton || !hideFilterMenu;\n const isMenuOpen = !hideFilterMenu;\n\n const handleClickOutsideMenu = (e) => {\n onClickOutsideMenu(columnId, e);\n if (isMenuOpen) patchHeaderFilterButtonAndMenu(columnId, true);\n };\n\n const handleTriggerClick = (e) => {\n onTriggerClick(columnId, e);\n patchHeaderFilterButtonAndMenu(columnId, false);\n e.stopPropagation();\n };\n\n const [referenceElement, setReferenceElement] = useState(null);\n\n return (\n <div\n // This is here to prevent propagation, and not trigger the sort functionality\n onClick={(e) => e.stopPropagation()}\n onKeyDown={(e) => {\n e.stopPropagation();\n if (e.code === 'Escape') {\n patchHeader(columnId, { hideFilterMenu: true, hideFilterButton: false });\n referenceElement.focus();\n }\n // Stop propagation for some reason is not enough to prevent scrolling of the datatable\n // so we just prevent default behaviour in this case\n if (['ArrowUp', 'ArrowDown'].includes(e.code)) {\n e.preventDefault();\n }\n }}\n style={{ display: 'flex' }}\n onBlur={(e) => {\n if (e.target !== referenceElement && !popperRef.current.contains(e.relatedTarget)) {\n referenceElement.focus();\n }\n }}\n >\n <FilterButton hide={!isIconVisible} data-testid={DATA_TESTID.DATA_TABLE_FILTER_BUTTON}>\n <Button\n onClick={handleTriggerClick}\n buttonType=\"text\"\n aria-label={ariaLabel}\n aria-hidden=\"true\"\n size=\"s\"\n leftIcon={triggerIcon}\n // implement treeview mergerefs\n innerRef={(_ref) => {\n if (isIconVisible) setReferenceElement(_ref);\n innerRef.current = _ref;\n }}\n tabIndex={reduxHeader?.withTabStops ? 0 : -1}\n />\n </FilterButton>\n <DSPopperJS\n referenceElement={referenceElement}\n showPopover={isMenuOpen}\n closeContextMenu={handleClickOutsideMenu}\n data-testid={DATA_TESTID.DATA_TABLE_FILTER_MENU_CONTENT}\n startPlacementPreference=\"bottom-end\"\n customOffset={[5, 4]}\n withoutArrow\n zIndex={10}\n extraPopperStyles={{ minWidth: column.ref?.current?.offsetWidth ?? '0px' }}\n placementOrderPreference={['bottom-end']}\n >\n <div style={{ backgroundColor: '#fff' }} ref={popperRef}>\n {menuContent}\n </div>\n </DSPopperJS>\n </div>\n );\n};\n","/* eslint-disable react/prop-types */\nimport React, { useState, useCallback, useContext, useLayoutEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { StyledPencilIcon, StyledEditableContainer } from '../styled';\nimport DataTableContext from '../DataTableContext';\n\nexport const EditableCell: React.ComponentType<any> = (props) => {\n const { StandardRender, EditableRenderer, cell, isRowSelected } = props;\n const { virtualListHelpers } = useContext(DataTableContext);\n\n const [isEditing, setIsEditing] = useState(false);\n const [lastIsEditing, setLastIsEditing] = useState(false);\n\n // When an editable cell is switched on-off, we recalculate the height of the rows\n useLayoutEffect(() => {\n if (isEditing !== lastIsEditing) {\n virtualListHelpers.measure();\n setLastIsEditing(isEditing);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isEditing]);\n\n const handleCellClick = useCallback(\n (e) => {\n if (!isEditing) {\n e.stopPropagation();\n setIsEditing(true);\n }\n },\n [isEditing],\n );\n\n const handleOnKeyDown = useCallback(\n (e) => {\n if (isEditing) e.stopPropagation();\n if (['Enter', 'Space'].includes(e.code)) {\n handleCellClick(e);\n }\n },\n [isEditing, handleCellClick],\n );\n\n const handleOnBlur = useCallback(\n (event) => {\n if (isEditing && !event.currentTarget.contains(event.relatedTarget)) {\n // Not triggered when swapping focus between children\n setIsEditing(false);\n }\n },\n [isEditing],\n );\n\n return (\n <StyledEditableContainer\n cols={!isEditing ? ['auto', 'min-content'] : ['auto']}\n tabIndex={isRowSelected && !isEditing ? 0 : -1}\n ref={cell.ref}\n onClick={handleCellClick}\n onKeyDown={handleOnKeyDown}\n onBlur={handleOnBlur}\n shouldDisplayEditIcon={cell.column.alwaysDisplayEditIcon}\n role=\"cell\"\n aria-describedby={isEditing ? undefined : cell.id}\n >\n {!isEditing ? StandardRender : EditableRenderer}\n {!isEditing && <StyledPencilIcon />}\n <span id={cell.id} style={{ display: 'none' }} aria-hidden=\"true\">\n Editable cell. To edit the content&apos;s of this cell, press the Enter key\n </span>\n </StyledEditableContainer>\n );\n};\n\nEditableCell.propTypes = {\n StandardRender: PropTypes.oneOfType([PropTypes.func, PropTypes.object]).isRequired,\n EditableRenderer: PropTypes.oneOfType([PropTypes.func, PropTypes.object]).isRequired,\n cell: PropTypes.object.isRequired,\n};\n","import moment from 'moment';\nimport { momentFormat } from '../../configs';\n// configs imports this file, we can't import from /configs/index.js directly\n// use file instead of index to avoid circular imports!\nimport { FilterFn } from './types';\n\nexport const singleDateFilterFn: FilterFn = (unfilteredData, filterKey, filterValue) =>\n unfilteredData.filter((datum) => moment(filterValue, momentFormat).isSame(datum[filterKey], 'day'));\n","import moment from 'moment';\nimport { momentFormat } from '../../configs';\n// configs imports this file, we can't import from /configs/index.js directly\n// use file instead of index to avoid circular imports!\nimport { FilterFn } from './types';\n\nexport const dateRangeFilterFn: FilterFn<{\n startDate: string;\n endDate: string;\n}> = (unfilteredData, filterKey, filterValue) =>\n unfilteredData.filter(\n (datum) =>\n !(filterValue?.startDate && filterValue?.endDate) ||\n (moment(filterValue?.startDate, momentFormat).isSameOrBefore(datum[filterKey], 'day') &&\n moment(filterValue?.endDate, momentFormat).isSameOrAfter(datum[filterKey], 'day')),\n );\n","import { singleSelectFilterFn } from './singleSelectFilterFn';\nimport { multiSelectFilterFn } from './multiSelectFilterFn';\nimport { textFilterFn } from './textFilterFn';\nimport { singleDateFilterFn } from './singleDateFilterFn';\nimport { dateRangeFilterFn } from './dateRangeFilterFn';\nimport { numberRangeFilterFn } from './numberRangeFilterFn';\nimport { FilterFn } from './types';\nimport { FILTER_TYPES } from '../FilterTypes';\nimport { TypescriptAppliedFilter, TypescriptRow } from '../../types/props';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst filterMapper: Record<string, FilterFn<any>> = {\n [FILTER_TYPES.SELECT]: singleSelectFilterFn,\n [FILTER_TYPES.MULTI_SELECT]: multiSelectFilterFn,\n [FILTER_TYPES.TEXT]: textFilterFn,\n [FILTER_TYPES.SINGLE_DATE]: singleDateFilterFn,\n [FILTER_TYPES.DATE_RANGE]: dateRangeFilterFn,\n [FILTER_TYPES.NUMBER_RANGE]: numberRangeFilterFn,\n};\n\nexport const applyOutOfTheBoxFilters = (data: TypescriptRow[], filters: TypescriptAppliedFilter[]): TypescriptRow[] => {\n let filteredData = data;\n\n filters.forEach((filter) => {\n if (filter.type in filterMapper) {\n filteredData = filterMapper[filter.type](filteredData, filter.id, filter.value);\n }\n });\n\n return filteredData;\n};\n","/* eslint-disable jsx-a11y/no-autofocus */\nimport React, { useContext, useState, useCallback } from 'react';\nimport styled from 'styled-components';\nimport { EditableCell } from '../../../exported-related';\nimport DataTableContext from '../../../DataTableContext';\nimport { editableCellPropType } from '../../../prop-types';\n\nconst StyledInput = styled.input`\n outline: none;\n :focus {\n border: 2px solid ${(props) => props.theme.colors.brand[700]};\n }\n max-width: 100%;\n`;\n\nexport const TextEditableCell: React.ComponentType<any> = (props) => {\n const { cell, DefaultCellRender, isRowSelected } = props;\n\n const {\n tableProps: { onCellValueChange },\n } = useContext(DataTableContext);\n\n const [value, setValue] = useState(cell.value);\n\n const handleOnChange = useCallback((e) => {\n const {\n target: { value: tValue },\n } = e;\n setValue(tValue);\n }, []);\n\n const handleOnBlur = useCallback(() => {\n const property = cell.column.id;\n const rowIndex = cell.row.index;\n onCellValueChange({ value, property, rowIndex });\n }, [value, onCellValueChange, cell.column.id, cell.row.index]);\n\n return (\n <EditableCell\n StandardRender={DefaultCellRender}\n EditableRenderer={<StyledInput value={value} onChange={handleOnChange} onBlur={handleOnBlur} autoFocus />}\n cell={cell}\n isRowSelected={isRowSelected}\n />\n );\n};\nTextEditableCell.propTypes = editableCellPropType;\n","/* eslint-disable jsx-a11y/no-autofocus */\nimport React, { useContext, useState, useCallback, useMemo } from 'react';\nimport ComboBoxFreeSolo from '@elliemae/ds-form/ComboBoxFreeSolo';\nimport { EditableCell } from '../../../exported-related';\nimport DataTableContext from '../../../DataTableContext';\nimport { editableCellPropType } from '../../../prop-types';\n\nexport const ComboboxEditableCell: React.ComponentType<any> = (props) => {\n const { cell, DefaultCellRender, isRowSelected } = props;\n\n const {\n tableProps: { onCellValueChange },\n flattenedData,\n } = useContext(DataTableContext);\n const cellValue = useMemo(() => cell.value, [cell.value]);\n const columnId = useMemo(() => cell.column.id, [cell.column.id]);\n\n const [value, setValue] = useState({ value: cellValue, label: cellValue });\n\n const uniqueOptions = useMemo(() => {\n const uniqueValuesMap = {};\n return flattenedData.reduce((optionsSoFar, currRow) => {\n const currValue = currRow.original[columnId];\n if (!uniqueValuesMap[currValue]) {\n optionsSoFar.push({ value: currValue, label: currValue });\n uniqueValuesMap[currValue] = true;\n }\n return optionsSoFar;\n }, []);\n }, [flattenedData, columnId]);\n\n const handleOnBlur = useCallback(() => {\n const property = columnId;\n onCellValueChange({ value: value?.value, property, rowIndex: cell.row.index });\n }, [columnId, onCellValueChange, value?.value, cell.row.index]);\n\n return (\n <EditableCell\n StandardRender={DefaultCellRender}\n EditableRenderer={\n <ComboBoxFreeSolo value={value} autoFocus onBlur={handleOnBlur} onChange={setValue} options={uniqueOptions} />\n }\n cell={cell}\n isRowSelected={isRowSelected}\n />\n );\n};\nComboboxEditableCell.propTypes = editableCellPropType;\n","import React from 'react';\nimport { TextEditableCell } from './TextEditableCell/TextEditableCell';\nimport { ComboboxEditableCell } from './ComboboxEditableCell/ComboboxEditableCell';\n\nexport const outOfTheBoxEditables: Record<string, { EditableComponent: React.ComponentType<any> }> = {\n 'ds-edit-text': { EditableComponent: TextEditableCell },\n 'ds-edit-combobox': {\n EditableComponent: ComboboxEditableCell,\n },\n};\n","/* eslint-disable max-lines */\n/* eslint-disable react/prop-types */\nimport React, { useContext, useMemo, memo } from 'react';\nimport { SimpleTruncatedTooltipText } from '@elliemae/ds-truncated-tooltip-text';\nimport Grid from '@elliemae/ds-grid';\nimport { StyledCell, StyledCellContent } from '../../styled';\nimport { outOfTheBoxEditables } from '../../addons/Editables';\nimport DataTableContext from '../../DataTableContext';\nimport { TypescriptColumn, TypescriptRow } from '../../types/props';\nimport { SortableItemContext } from '../HoC/SortableItemContext';\nimport { expandRowColumn } from '../../addons/Columns';\nimport { DATA_TESTID } from '../../configs';\nimport { useCellStyle } from './useCellStyle';\n\nconst PureStandardCell = memo<{ cellStyle: unknown; column: TypescriptColumn }>(({ cellStyle, children, column }) => (\n <StyledCell column={column} style={cellStyle} role=\"cell\" data-testid={DATA_TESTID.DATA_TABLE_CELL}>\n {children}\n </StyledCell>\n));\n\ninterface CellProps {\n cell: any;\n column: TypescriptColumn;\n row: TypescriptRow;\n isRowSelected: boolean;\n shouldAddExpandCell: boolean;\n isDragOverlay: boolean;\n}\n\nconst Cell: React.ComponentType<CellProps> = ({\n cell,\n column,\n row,\n isRowSelected,\n shouldAddExpandCell,\n isDragOverlay,\n}) => {\n const ctx = useContext(DataTableContext);\n const {\n tableProps: { cellRendererProps },\n } = ctx;\n const { draggableProps } = useContext(SortableItemContext);\n\n const [appliedTextWrap, cellStyle] = useCellStyle(column, shouldAddExpandCell);\n\n const cellProps = useMemo(\n () => ({\n ...cellRendererProps,\n cell,\n row,\n isRowSelected,\n ctx,\n draggableProps,\n isDragOverlay,\n role: 'cell',\n cellStyle,\n column,\n }),\n [cellRendererProps, cell, row, isRowSelected, ctx, draggableProps, isDragOverlay, cellStyle, column],\n );\n\n const CellComponent = cell.render;\n\n const pureCellContent = useMemo(() => {\n if (shouldAddExpandCell) {\n return (\n <Grid cols={['min-content', 'auto']} alignItems=\"center\" height=\"100%\">\n {shouldAddExpandCell && <expandRowColumn.Cell {...cellProps} />}\n <CellComponent {...cellProps} />\n </Grid>\n );\n }\n return <CellComponent {...cellProps} />;\n }, [CellComponent, cellProps, shouldAddExpandCell]);\n\n const DefaultCellContentJSX = useMemo(\n () => (\n <StyledCellContent>\n {appliedTextWrap === 'truncate' ? <SimpleTruncatedTooltipText value={pureCellContent} /> : pureCellContent}\n </StyledCellContent>\n ),\n [appliedTextWrap, pureCellContent],\n );\n\n const EditableContentJSX = useMemo(() => {\n if (typeof column.editable === 'string') {\n const { EditableComponent } = outOfTheBoxEditables?.[column.editable];\n if (EditableComponent) return <EditableComponent {...cellProps} DefaultCellRender={DefaultCellContentJSX} />;\n }\n if (typeof column.editable === 'function')\n return column.editable({\n DefaultCellRender: DefaultCellContentJSX,\n ...cellProps,\n }) as JSX.Element;\n\n return null;\n }, [DefaultCellContentJSX, cellProps, column]);\n\n return (\n <PureStandardCell {...cellProps}>{column.editable ? EditableContentJSX : DefaultCellContentJSX}</PureStandardCell>\n );\n};\n\nexport default Cell;\n","/* eslint-disable react/prop-types */\nimport React, { useContext } from 'react';\nimport { INTERNAL_COLUMNS } from '../../addons/Columns';\nimport { StyledActionCell } from '../../styled';\nimport { TypescriptRow } from '../../types/props';\nimport Cell from './Cell';\nimport DataTableContext from '../../DataTableContext';\n\nconst Cells: React.ComponentType<{\n row: TypescriptRow;\n isRowSelected: boolean;\n isDragOverlay: boolean;\n}> = (props) => {\n const { row, isRowSelected, isDragOverlay } = props;\n const ctx = useContext(DataTableContext);\n // we won't print sub-rows more nested than the first level\n if (row.depth <= 1) {\n let shouldAddExpandCell = false;\n let userCellsProcessed = 0;\n return (\n <>\n {row.cells.map((cell: any) => {\n const { column } = cell;\n\n const isUserCell = !INTERNAL_COLUMNS.includes(column.id);\n\n let jsx = null;\n\n if (column.id === 'rowActions') {\n const ActionComponent = cell.render;\n jsx = (\n <StyledActionCell role=\"cell\" key={cell.id}>\n <ActionComponent row={row} cell={cell} column={column} isRowSelected={isRowSelected} ctx={ctx} />\n </StyledActionCell>\n );\n } else if (column.id === 'expander') {\n // Next user's cell will have the expand cell\n shouldAddExpandCell = !isDragOverlay; // Don't add it on drag overlay\n } else {\n jsx = (\n <Cell\n cell={cell}\n column={column}\n row={row}\n isRowSelected={isRowSelected}\n shouldAddExpandCell={isUserCell && shouldAddExpandCell}\n isDragOverlay={isDragOverlay}\n key={cell.id}\n />\n );\n }\n\n // Drag overlay only need to print the DnD handle and the first user's cell\n if (isDragOverlay) {\n if (column.id !== 'dragHandleColumn' && (!isUserCell || userCellsProcessed !== 0)) jsx = null;\n }\n\n // Reset expand cell\n if (isUserCell) {\n shouldAddExpandCell = false;\n userCellsProcessed += 1;\n }\n return jsx;\n })}\n </>\n );\n }\n\n return null;\n};\n\nexport default Cells;\n","/* eslint-disable max-lines */\n/* eslint-disable react/prop-types */\nimport React, { useMemo, useLayoutEffect, useRef } from 'react';\nimport { INTERNAL_COLUMNS } from '../../addons/Columns';\nimport { DATA_TESTID } from '../../configs';\nimport Cells from '../../parts/Cells';\nimport { DropIndicatorPosition } from '../../parts/HoC/SortableItemContext';\nimport { RowVariantProps } from '../../parts/RowVariants/types';\nimport { StyledCellContainer } from '../../styled';\nimport { TypescriptRow } from '../../types/props';\n\nconst DetailsWrapper = (props) => (\n // This can be further customized\n // eslint-disable-next-line react/prop-types\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div\n data-role=\"detail-view\"\n style={{\n borderTop: '1px solid #EBEDF0',\n borderBottom: '1px solid #EBEDF0',\n }}\n onClick={(e) => e.stopPropagation()}\n onKeyDown={(e) => e.stopPropagation()}\n >\n {props.children}\n </div>\n);\n\nconst ariaLabelMessage = (row: TypescriptRow, selected: boolean) =>\n `Row number ${row.realIndex + 1}${row.parentIndex !== null ? `, child of row number ${row.parentIndex + 1}` : ''}. ${\n selected ? 'Selected. ' : ''\n }To interact with the cells press enter`;\n\nexport const DefaultRowContentRenderer: React.ComponentType<RowVariantProps> = (props) => {\n const {\n row,\n ctx: {\n tableProps: { isExpandable, colsLayoutStyle, selection, noSelectionColumn, expandedRows, disabledRows },\n layoutHelpers: { gridLayout },\n visibleColumns,\n },\n draggableProps,\n isDragOverlay,\n backgroundColor = 'white',\n dropIndicatorPosition,\n focusedRowId,\n selectedRowId,\n compact,\n } = props;\n\n const rowRef = useRef<HTMLDivElement>(null);\n const isDndActive = draggableProps && draggableProps.active;\n const isDragging = draggableProps && draggableProps.isDragging;\n\n useLayoutEffect(() => {\n if (row.uid === focusedRowId) {\n rowRef.current.focus({ preventScroll: true });\n }\n }, [focusedRowId, row.uid]);\n\n const gridTemplateColProps = useMemo(\n () => ({\n cols: isDragOverlay ? ['24px', 'auto'] : gridLayout,\n isExpandable,\n colLayoutStyle: colsLayoutStyle,\n }),\n [isDragOverlay, gridLayout, colsLayoutStyle, isExpandable],\n );\n\n const detailsIndent = useMemo(() => {\n let padding = 0;\n for (let i = 0; i < visibleColumns.length; i += 1) {\n if (INTERNAL_COLUMNS.includes(visibleColumns[i].id)) {\n padding += visibleColumns[i].width;\n } else {\n padding += row.depth * 32 + 15;\n break;\n }\n }\n return padding;\n }, [row.depth, visibleColumns]);\n\n const PureRowContent = useMemo(() => {\n const DetailsView = row.original.tableRowDetails;\n return (\n <>\n <StyledCellContainer\n ref={rowRef}\n key={row.uid}\n tabIndex={0}\n role=\"row\"\n aria-rowindex={row.realIndex + 1}\n aria-label={ariaLabelMessage(row, selection?.[row.uid] === true)}\n aria-level={row.depth + 1}\n aria-selected={selection?.[row.uid] === true}\n aria-expanded={isExpandable ? expandedRows[row.uid] === true : undefined}\n aria-disabled={disabledRows[row.uid]}\n {...gridTemplateColProps}\n backgroundColor={backgroundColor}\n height={compact ? '24px' : 'auto'}\n minHeight={compact ? '24px' : '36px'}\n isDropIndicatorPositionInside={dropIndicatorPosition === DropIndicatorPosition.Inside}\n shouldDisplayHover={!isDndActive && !isDragging && !isDragOverlay}\n isDragOverlay={isDragOverlay}\n isDragging={isDragging}\n selected={noSelectionColumn && selection?.[row.uid] === true}\n disabled={disabledRows[row.uid]}\n data-testid={DATA_TESTID.DATA_TABLE_ROW_CONTENT}\n >\n <Cells row={row} isRowSelected={selectedRowId === row.uid} isDragOverlay={isDragOverlay} key={row.uid} />\n </StyledCellContainer>\n {isExpandable && row.isExpanded && DetailsView && (\n <DetailsWrapper>\n <DetailsView row={row} detailsIndent={detailsIndent} />\n </DetailsWrapper>\n )}\n </>\n );\n }, [\n row,\n selection,\n isExpandable,\n expandedRows,\n disabledRows,\n gridTemplateColProps,\n backgroundColor,\n compact,\n dropIndicatorPosition,\n isDndActive,\n isDragging,\n isDragOverlay,\n noSelectionColumn,\n selectedRowId,\n detailsIndent,\n ]);\n\n return PureRowContent;\n};\n","import React, { useCallback, useContext } from 'react';\nimport { DATA_TESTID } from '../../configs';\nimport DataTableContext from '../../DataTableContext';\nimport { SortableItemContextType } from '../../parts/HoC/SortableItemContext';\nimport { useDispatchRowsActions } from '../../redux/reducers';\nimport { TypescriptRow } from '../../types/props';\n\nexport const useRowRendererHandlers = ({\n row,\n itemIndex,\n items,\n draggableProps,\n isDragOverlay,\n selectedRowId,\n}: {\n row: TypescriptRow;\n itemIndex: number;\n items: TypescriptRow[];\n draggableProps: SortableItemContextType['draggableProps'];\n isDragOverlay: boolean;\n selectedRowId: string;\n}): {\n handleItemClick: React.MouseEventHandler;\n handleKeyDown: React.KeyboardEventHandler;\n handleOnBlur: React.FocusEventHandler;\n handleOnFocus: React.FocusEventHandler;\n} => {\n const {\n tableProps: { onRowClick, onRowFocus },\n virtualListHelpers: { scrollToIndex },\n } = useContext(DataTableContext);\n\n const { setSelectedRowId, setFocusedRowId } = useDispatchRowsActions();\n\n const handleItemClick = useCallback(\n (e, { original, uid } = row) => {\n // setSelectedRowId(null);\n onRowClick(original, e, uid);\n onRowFocus(\n {\n itemIndex,\n scrollToItem: (\n opts: { align: 'auto' | 'start' | 'center' | 'end' } = {\n align: 'start',\n },\n ) => scrollToIndex(itemIndex, opts),\n original,\n },\n e,\n );\n },\n [row, onRowClick, onRowFocus, itemIndex, scrollToIndex],\n );\n\n const isActive = draggableProps && draggableProps.active;\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (isDragOverlay || isActive) {\n e.preventDefault();\n return;\n }\n if (e.code === 'Enter') {\n e.preventDefault();\n if (selectedRowId !== row.uid) {\n setSelectedRowId(row.uid);\n setTimeout(() => {\n const focuseableCell = row.cells.find((cell) => cell.ref.current !== null);\n if (focuseableCell) focuseableCell.ref.current.focus();\n });\n }\n }\n if (e.code === 'Space') {\n e.preventDefault();\n handleItemClick(e, row);\n }\n if (e.code === 'ArrowDown') {\n e.preventDefault();\n if (itemIndex + 1 < items.length) setFocusedRowId(items[itemIndex + 1].uid);\n }\n if (e.code === 'ArrowUp') {\n e.preventDefault();\n if (itemIndex - 1 >= 0) setFocusedRowId(items[itemIndex - 1].uid);\n }\n },\n [isDragOverlay, isActive, selectedRowId, row, setSelectedRowId, handleItemClick, itemIndex, items, setFocusedRowId],\n );\n\n const handleOnBlur = useCallback(\n (e) => {\n if (e.relatedTarget?.getAttribute('data-testid') === 'data-table-row-content') {\n setSelectedRowId(null);\n }\n },\n [setSelectedRowId],\n );\n\n const handleOnFocus: React.FocusEventHandler = useCallback(\n (e) => {\n if (e.target && e.target.getAttribute('data-testid') === DATA_TESTID.DATA_TABLE_ROW_CONTENT) {\n setFocusedRowId(row.uid);\n }\n },\n [row.uid, setFocusedRowId],\n );\n\n return { handleItemClick, handleKeyDown, handleOnBlur, handleOnFocus };\n};\n","/* eslint-disable max-lines */\n/* eslint-disable react/prop-types */\nimport React, { useContext } from 'react';\nimport DataTableContext from '../../DataTableContext';\nimport { RowVariantProps } from '../../parts/RowVariants/types';\nimport { StyledFullsizeGrid } from '../../styled';\nimport { TypescriptRow } from '../../types/props';\nimport { DefaultRowContentRenderer } from './DefaultRowContentRenderer';\nimport { useRowRendererHandlers } from './useRowRendererHandlers';\nimport { useRowRendererProperties } from './useRowRendererProperties';\nimport DropIndicator from '../../parts/DropIndicator';\nimport { SortableItemContext } from '../../parts/HoC/SortableItemContext';\nimport { DATA_TESTID } from '../../configs';\n\ninterface RowRendererProps {\n row: TypescriptRow;\n compact: boolean;\n itemIndex: number;\n isDragOverlay: boolean;\n minHeight: string;\n height: string;\n rowsLayout?: (string | number)[];\n colsLayout?: (string | number)[];\n CustomRowContentRenderer?: React.ComponentType<RowVariantProps>;\n focusedRowId: string;\n selectedRowId: string;\n backgroundColor?: string;\n}\n\n// CSS don't let us modify the spacing between the dots, so one solution is to use SVG\nconst magicDottedBorder = (\n <svg width=\"100%\" height=\"1px\">\n <line\n x1=\"0\"\n y1=\"0\"\n x2=\"100%\"\n y2=\"0\"\n stroke=\"#B0B9C8FF\"\n strokeWidth=\"1.5\"\n strokeDasharray=\"0, 5\"\n strokeDashoffset=\"0\"\n strokeLinecap=\"round\"\n />\n </svg>\n);\n\nconst RowRenderer: React.ComponentType<RowRendererProps> = (props) => {\n const {\n row,\n itemIndex,\n minHeight = '36px',\n height = 'auto',\n rowsLayout = [1],\n CustomRowContentRenderer,\n focusedRowId,\n selectedRowId,\n isDragOverlay,\n } = props;\n\n const ctx = useContext(DataTableContext);\n const { draggableProps } = useContext(SortableItemContext);\n const { flattenedData } = ctx;\n\n // ===========================================================================\n // Properties for the row\n // ===========================================================================\n\n const {\n userDataProperties,\n colsLayoutStyle,\n totalColumnsWidth,\n rowStyle,\n shouldAppendDottedBorder,\n dropIndicatorPosition,\n } = useRowRendererProperties({\n row,\n });\n\n // ===========================================================================\n // Handlers\n // ===========================================================================\n\n const { handleItemClick, handleKeyDown, handleOnBlur, handleOnFocus } = useRowRendererHandlers({\n row,\n itemIndex,\n items: flattenedData,\n draggableProps,\n isDragOverlay,\n selectedRowId,\n });\n\n const rowContentProps: RowVariantProps = {\n ...props,\n ctx,\n focusedRowId,\n selectedRowId,\n draggableProps,\n dropIndicatorPosition,\n };\n\n return (\n <StyledFullsizeGrid\n data-testid={DATA_TESTID.DATA_TABLE_ROW}\n key={row.uid}\n colsLayoutStyle={colsLayoutStyle}\n {...userDataProperties}\n totalColumnsWidth={totalColumnsWidth}\n style={rowStyle}\n onClick={handleItemClick}\n onKeyDown={handleKeyDown}\n onBlur={handleOnBlur}\n onFocus={handleOnFocus}\n data-expandable={Boolean(row.original.tableRowDetails)}\n data-is-row-expanded={row.isExpanded}\n rows={rowsLayout}\n minHeight={minHeight}\n height={height}\n >\n {CustomRowContentRenderer ? (\n <CustomRowContentRenderer {...rowContentProps} />\n ) : (\n <DefaultRowContentRenderer {...rowContentProps} key={row.uid} />\n )}\n {shouldAppendDottedBorder && magicDottedBorder}\n <DropIndicator\n vertical={false}\n dropIndicatorPosition={dropIndicatorPosition}\n isLast={row.index === flattenedData.length - 1 && draggableProps && draggableProps.isDragging}\n />\n </StyledFullsizeGrid>\n );\n};\n\nexport default RowRenderer;\n","/* eslint-disable react/prop-types */\nimport React, { useLayoutEffect, useMemo, useRef } from 'react';\nimport Grid from '@elliemae/ds-grid';\nimport RowRenderer from '../../exported-related/RowRenderer';\nimport { GroupHeaderContainer, GroupHeaderTitle, StyledCellContainer } from '../../styled';\nimport { RowVariantProps } from './types';\nimport { expandRowColumn } from '../../addons/Columns';\nimport { DATA_TESTID } from '../../configs';\n\nconst RowContent: React.ComponentType<RowVariantProps> = (props) => {\n const {\n row,\n ctx,\n ctx: {\n tableProps: { groupedRowsRenderHeader },\n },\n backgroundColor = 'white',\n focusedRowId,\n selectedRowId,\n } = props;\n\n const rowRef = useRef<HTMLDivElement>(null);\n\n const hasExpandCell = useMemo(\n () => row.original.subRows && row.cells.find((cell) => cell.column.accessor === 'expandRowColumn'),\n [row],\n );\n\n const titleContent = useMemo(() => {\n if (typeof groupedRowsRenderHeader === 'function') {\n return groupedRowsRenderHeader(row.original.dimsumHeaderValue, row.original.subRows);\n }\n return row.original.dimsumHeaderValue;\n }, [groupedRowsRenderHeader, row]);\n\n useLayoutEffect(() => {\n if (row.uid === focusedRowId) {\n rowRef.current.focus();\n }\n }, [focusedRowId, row.uid]);\n\n return (\n <StyledCellContainer\n ref={rowRef}\n minHeight=\"0px\"\n tabIndex={0}\n backgroundColor={backgroundColor}\n data-testid={DATA_TESTID.DATA_TABLE_ROW_HEADER_CONTENT}\n >\n <GroupHeaderContainer\n data-testid={DATA_TESTID.DATA_TABLE_ROW_GROUP_HEADER}\n cols={hasExpandCell ? ['min-content', 'auto'] : ['auto']}\n padding={hasExpandCell ? '4px' : '16px'}\n >\n {hasExpandCell ? (\n <expandRowColumn.Cell\n row={row}\n cell={row.cells[0]}\n isRowSelected={selectedRowId === row.uid}\n ctx={ctx}\n draggableProps={{}}\n />\n ) : (\n <Grid width=\"16px\" />\n )}\n <GroupHeaderTitle>{titleContent}</GroupHeaderTitle>\n </GroupHeaderContainer>\n </StyledCellContainer>\n );\n};\n\nexport const RowVariantHeader: React.ComponentType<RowVariantProps> = ({\n row,\n itemIndex,\n isDragOverlay,\n focusedRowId,\n selectedRowId,\n}) => (\n <RowRenderer\n row={row}\n itemIndex={itemIndex}\n isDragOverlay={isDragOverlay}\n minHeight=\"0px\"\n height=\"24px\"\n CustomRowContentRenderer={RowContent}\n focusedRowId={focusedRowId}\n selectedRowId={selectedRowId}\n />\n);\n","/* eslint-disable react/prop-types */\nimport React from 'react';\nimport { RowVariantProps } from './types';\nimport RowRenderer from '../../exported-related/RowRenderer';\n\nexport const RowVariantPrimary: React.ComponentType<RowVariantProps> = ({\n row,\n itemIndex,\n isDragOverlay,\n ctx,\n focusedRowId,\n selectedRowId,\n compact,\n}) => {\n const {\n layoutHelpers: { gridLayout },\n } = ctx;\n\n return (\n <RowRenderer\n row={row}\n itemIndex={itemIndex}\n isDragOverlay={isDragOverlay}\n compact={compact}\n height={compact ? '24px' : 'auto'}\n minHeight={compact ? '24px' : '36px'}\n colsLayout={row.isExpanded ? undefined : gridLayout}\n rowsLayout={row.isExpanded ? ['auto', 'auto'] : [1]}\n focusedRowId={focusedRowId}\n selectedRowId={selectedRowId}\n />\n );\n};\n","/* eslint-disable react/prop-types */\nimport React from 'react';\nimport { RowVariantProps } from './types';\nimport RowRenderer from '../../exported-related/RowRenderer';\n\nexport const RowVariantSecondary: React.ComponentType<RowVariantProps> = ({\n row,\n itemIndex,\n isDragOverlay,\n ctx,\n focusedRowId,\n selectedRowId,\n compact,\n}) => {\n const {\n layoutHelpers: { gridLayout },\n } = ctx;\n\n return (\n <RowRenderer\n row={row}\n itemIndex={itemIndex}\n isDragOverlay={isDragOverlay}\n compact={compact}\n height={compact ? '24px' : 'auto'}\n minHeight={compact ? '24px' : '36px'}\n colsLayout={row.isExpanded ? undefined : gridLayout}\n rowsLayout={row.isExpanded ? ['auto', 'auto'] : [1]}\n backgroundColor=\"#F6F7F9\"\n focusedRowId={focusedRowId}\n selectedRowId={selectedRowId}\n />\n );\n};\n","/* eslint-disable react/prop-types */\nimport React from 'react';\nimport { ROW_VARIANTS } from '../../exported-related';\nimport { TypescriptContext, TypescriptRow } from '../../types/props';\nimport Cells from '../Cells';\nimport { RowVariantHeader } from './RowVariantHeader';\nimport { RowVariantPrimary } from './RowVariantPrimary';\nimport { RowVariantSecondary } from './RowVariantSecondary';\nimport { RowVariantProps } from './types';\n\nconst RowVariantMapper: Record<string, React.ComponentType<RowVariantProps>> = {\n [ROW_VARIANTS.HEADER_GROUP]: RowVariantHeader,\n [ROW_VARIANTS.PRIMARY]: RowVariantPrimary,\n [ROW_VARIANTS.SECONDARY]: RowVariantSecondary,\n [ROW_VARIANTS.COMPACT_PRIMARY]: (props) => <RowVariantPrimary compact {...props} />,\n [ROW_VARIANTS.COMPACT_SECONDARY]: (props) => <RowVariantSecondary compact {...props} />,\n};\n\ninterface RowVariantMapItemProps {\n row: TypescriptRow;\n itemIndex: number;\n isDragOverlay: boolean;\n ctx: TypescriptContext;\n focusedRowId: string;\n selectedRowId: string;\n}\n\nexport const RowVariantMapItem: React.ComponentType<RowVariantMapItemProps> = (props) => {\n const {\n row,\n ctx: {\n tableProps: { getRowVariant },\n },\n } = props;\n\n const variant = getRowVariant(row, Cells);\n\n let Component: React.ComponentType<any>;\n\n if (typeof variant === 'string') {\n if (!(variant in RowVariantMapper)) {\n throw new Error(`${variant} is not an out-of-the-box row variant`);\n }\n Component = RowVariantMapper[variant];\n } else {\n Component = variant;\n }\n\n return <Component {...props} />;\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport DataTableContext from '../DataTableContext';\nimport { setMultipleRefs } from '../helpers';\nimport { SortableItemContext } from './HoC/SortableItemContext';\nimport { withDnDSortableRowContext } from './HoC/withDnDSortableRowContext';\nimport { RowVariantMapItem } from './RowVariants';\n\n// Sortable Items needs to update\n// - the virtual list ref (for react-virtual requirement)\n// - (conditionally) draggableProps.setNodeRef for drag and drop of rows\nconst setItemRefs = (measureRef, draggableRef, ref) => {\n const refsToSet = [measureRef];\n if (draggableRef) refsToSet.push(draggableRef);\n setMultipleRefs(...refsToSet)(ref);\n};\n\nconst Row = (props) => {\n const { row, measureRef, itemWrapperStyle, itemIndex, isDragOverlay, focusedRowId, selectedRowId } = props;\n\n const ctx = useContext(DataTableContext);\n const { draggableProps } = useContext(SortableItemContext);\n const draggableRef = draggableProps && draggableProps.setNodeRef;\n\n return (\n <div style={!isDragOverlay ? itemWrapperStyle : {}} ref={(ref) => setItemRefs(measureRef, draggableRef, ref)}>\n <RowVariantMapItem\n row={row}\n itemIndex={itemIndex}\n isDragOverlay={isDragOverlay}\n ctx={ctx}\n focusedRowId={focusedRowId}\n selectedRowId={selectedRowId}\n />\n </div>\n );\n};\n\nRow.propTypes = {\n row: PropTypes.object.isRequired,\n itemIndex: PropTypes.number.isRequired,\n measureRef: PropTypes.func.isRequired,\n itemWrapperStyle: PropTypes.object,\n isDragOverlay: PropTypes.bool,\n focusedRowId: PropTypes.string,\n selectedRowId: PropTypes.string,\n};\nRow.defaultProps = {\n itemWrapperStyle: {},\n};\n\nconst mapStateToProps = (state) => ({\n focusedRowId: state.rows.focusedRowId,\n selectedRowId: state.rows.selectedRowId,\n});\n\nexport default withDnDSortableRowContext(connect(mapStateToProps)(Row));\n","/* eslint-disable no-underscore-dangle */\nimport React, { useContext, useMemo } from 'react';\n\nimport Row from './Row';\nimport DataTableContext from '../DataTableContext';\nimport { DnDTreeContext, withConditionalDnDRowContext } from './HoC/withConditionalDnDRowContext';\nimport { addCellData } from '../helpers';\n\nconst Rows = (): JSX.Element => {\n const {\n virtualListHelpers: { virtualItems },\n layoutHelpers: { totalColumnsWidth },\n flattenedData,\n visibleColumns,\n } = useContext(DataTableContext);\n\n const { visibleItems } = useContext(DnDTreeContext);\n\n const items = visibleItems || flattenedData;\n\n const PureVirtualizedRows = useMemo(\n () => (\n <>\n {virtualItems.map((virtualItem) => {\n const { index, measureRef, start } = virtualItem;\n const row = items[index];\n if (!row) return null;\n addCellData(row, visibleColumns);\n const style = {\n position: 'absolute',\n top: `${start}px`,\n left: 0,\n width: totalColumnsWidth,\n };\n const rowProps = {\n key: `ds-table-row-${row.uid}`,\n row,\n measureRef,\n index, // this is consumed by the DnD HOC\n itemIndex: index,\n itemWrapperStyle: style,\n };\n return <Row {...rowProps} />;\n })}\n </>\n ),\n [virtualItems, items, visibleColumns, totalColumnsWidth],\n );\n\n return PureVirtualizedRows;\n};\n\nRows.propTypes = {};\n\nexport default withConditionalDnDRowContext(Rows);\n","import { useCallback } from 'react';\nimport { DragStartEvent, DragOverEvent } from '@dnd-kit/core';\nimport type { useHierarchyPreviewHandlersReturn, useHierarchyPreviewHandlersArgs } from './types';\nimport { DATA_TESTID } from '../../../configs';\n\nexport const useHierarchyPreviewHandlers = ({\n setOverId,\n setActiveId,\n}: useHierarchyPreviewHandlersArgs): useHierarchyPreviewHandlersReturn => {\n const resetState = useCallback(() => {\n setOverId(null);\n setActiveId(null);\n\n document.body.style.setProperty('cursor', '');\n const el: HTMLElement = document.querySelector(`[data-testid=\"${DATA_TESTID.DATA_TABLE_SCROLLABLE_CONTAINER}\"]`);\n el.onscroll = () => null;\n }, [setOverId, setActiveId]);\n\n const handlePreviewDragStart = useCallback(\n ({ active: { id } }: DragStartEvent) => {\n setActiveId(id);\n setOverId(id);\n document.body.style.setProperty('cursor', 'grabbing');\n const el: HTMLElement = document.querySelector(`[data-testid=\"${DATA_TESTID.DATA_TABLE_SCROLLABLE_CONTAINER}\"]`);\n const y = el.scrollTop;\n el.onscroll = () => el.scrollTo(0, y);\n },\n [setActiveId, setOverId],\n );\n\n const handlePreviewDragMove = useCallback(() => null, []);\n\n const handlePreviewDragOver = useCallback(\n ({ over }: DragOverEvent) => {\n setOverId(over?.id ?? null);\n },\n [setOverId],\n );\n\n const handlePreviewDragEnd = useCallback(() => {\n resetState();\n }, [resetState]);\n\n const handlePreviewDragCancel = useCallback(() => {\n resetState();\n }, [resetState]);\n\n return {\n handlePreviewDragStart,\n handlePreviewDragMove,\n handlePreviewDragOver,\n handlePreviewDragEnd,\n handlePreviewDragCancel,\n };\n};\n","import { closestCorners, getViewRect, KeyboardCode, RectEntry, KeyboardCoordinateGetter } from '@dnd-kit/core';\nimport { Coordinates } from '@dnd-kit/core/dist/types';\nimport { DATA_TESTID } from '../../../configs';\n\nimport { getKeyboardCoordinatesArgs, SensorContext } from './types';\n\nconst directions: string[] = [KeyboardCode.Down, KeyboardCode.Right, KeyboardCode.Up, KeyboardCode.Left];\n\nconst vertical: string[] = [KeyboardCode.Up, KeyboardCode.Down];\n\nconst getHorizontalKeyboardCoordinates = ({\n items,\n active,\n over,\n event,\n currentCoordinates,\n droppableContainers,\n translatedRect,\n}: getKeyboardCoordinatesArgs): Coordinates => {\n if (vertical.includes(event.code)) return undefined;\n\n const activeItem = items.find((item) => item.id === active);\n\n const overRect = over.rect;\n\n const layoutRects: RectEntry[] = [];\n\n // Get the reacheable rects depending on the arrow key pressed\n Object.entries(droppableContainers).forEach(([id, container]) => {\n if (container?.disabled || !overRect) {\n return;\n }\n const node = container?.node.current;\n if (!node) {\n return;\n }\n const itemParent = items.find((item) => item.id === id).parentId;\n if (itemParent !== activeItem.parentId) return;\n const rect = getViewRect(node);\n if (event.code === KeyboardCode.Left && translatedRect.left > rect.right - 10) {\n layoutRects.push([id, rect]);\n } else if (event.code === KeyboardCode.Right && translatedRect.left < rect.left) {\n layoutRects.push([id, rect]);\n }\n });\n\n const dragOverlayRect = document\n .querySelector(`[data-testid=\"${DATA_TESTID.DATA_TABLE_COLUMN_DRAG_OVERLAY}\"]`)\n ?.getBoundingClientRect() ?? { width: 150, left: 0 };\n\n const closestId = closestCorners(layoutRects, translatedRect);\n\n if (!closestId) return undefined;\n\n const closestRect = getViewRect(droppableContainers[closestId].node.current);\n const activeRect = getViewRect(droppableContainers[active].node.current);\n return {\n ...currentCoordinates,\n x:\n closestRect.left +\n (closestRect.width - dragOverlayRect.width) / 2 +\n (closestRect.offsetLeft < activeRect.left ? -1 : 1),\n };\n\n return undefined;\n};\n\nexport const getHierarchyKeyboardCoordinates: (\n context: SensorContext,\n isHorizontalDnD: boolean,\n) => KeyboardCoordinateGetter =\n (context, isHorizontalDnD) =>\n (event, { active, currentCoordinates, context: { over, translatedRect, droppableContainers } }) => {\n if (directions.includes(event.code)) {\n event.preventDefault();\n if (!translatedRect) {\n return undefined;\n }\n\n const {\n current: { items },\n } = context;\n\n const args = {\n items,\n active,\n over,\n event,\n currentCoordinates,\n droppableContainers,\n translatedRect,\n };\n\n if (isHorizontalDnD) return getHorizontalKeyboardCoordinates(args);\n return undefined;\n }\n return undefined;\n };\n","/* eslint-disable @typescript-eslint/indent */\nimport { closestCorners, CollisionDetection } from '@dnd-kit/core';\nimport { DATA_TESTID } from '../../../configs';\nimport { Item } from './types';\n\nexport const customCollisionDetection =\n (activeId: string, activeParent: string, dndItems: Item[]): CollisionDetection =>\n (entries, target) => {\n const entriesWithSameParent = entries.filter(\n ([id]) => dndItems.find((item) => item.id === id)?.parentId === activeParent,\n );\n\n const dragOverlayRect = document\n .querySelector(`[data-testid=\"${DATA_TESTID.DATA_TABLE_COLUMN_DRAG_OVERLAY}\"]`)\n ?.getBoundingClientRect() ?? { width: 150 };\n\n const originalRect = entriesWithSameParent.find(([id]) => id === activeId);\n\n if (\n originalRect[1].offsetLeft <= target.offsetLeft &&\n target.offsetLeft <= originalRect[1].offsetLeft + originalRect[1].width\n ) {\n return originalRect[0];\n }\n\n const isLeft = target.offsetLeft <= originalRect[1].offsetLeft + dragOverlayRect.width / 2 + 5;\n let match = null;\n // If going to the left, search the closest offset left\n // Otherwise, get the closest offset right\n const collisionPoint = target.offsetLeft + dragOverlayRect.width / 2;\n entriesWithSameParent.forEach((entry) => {\n const [, rect] = entry;\n const offsetRight = rect.offsetLeft + rect.width;\n\n if (!match) match = entry;\n else if (isLeft && Math.abs(collisionPoint - rect.offsetLeft) <= Math.abs(collisionPoint - match[1].offsetLeft)) {\n match = entry;\n } else if (\n !isLeft &&\n Math.abs(collisionPoint - offsetRight) <= Math.abs(collisionPoint - match[1].offsetLeft - match[1].width)\n ) {\n match = entry;\n }\n });\n return match === null ? null : match[0];\n };\n","/* eslint-disable max-lines */\nimport { useState, useEffect, useMemo, useRef } from 'react';\nimport {\n useSensor,\n useSensors,\n KeyboardSensor,\n PointerSensor,\n LayoutMeasuring,\n LayoutMeasuringStrategy,\n} from '@dnd-kit/core';\nimport { useHierarchyActionHandlers } from './useHierarchyActionHandlers';\nimport { useHierarchyPreviewHandlers } from './useHierarchyPreviewHandlers';\nimport type { useHierarchyDndkitConfigType, SensorContext, Item } from './types';\nimport { getHierarchyKeyboardCoordinates } from './getHierarchyKeyboardCoordinates';\nimport { customCollisionDetection } from './customCollisionDetection';\nimport { useHierarchyAnnouncements } from './useHierarchyAnnouncements';\n\n// we make space for the drop indicator\n// if second parameter is true, the space will be done on the horizontal axis\nconst adjustTranslate = ({ transform }, isHorizontalDnD = false) => {\n const newTransform = {\n ...transform,\n };\n if (isHorizontalDnD) {\n newTransform.y = transform.y + 15;\n } else {\n newTransform.y = transform.y - 35;\n }\n return newTransform;\n};\n\nconst layoutMeasuring: Partial<LayoutMeasuring> = {\n strategy: LayoutMeasuringStrategy.Always,\n};\n\nconst useHierarchyDndkitConfig: useHierarchyDndkitConfigType = ({\n flattenedItems,\n isHorizontalDnD = false,\n onReorder,\n}) => {\n const [activeId, setActiveId] = useState<string | null>(null);\n const [overId, setOverId] = useState<string | null>(null);\n\n const dndItems = useMemo(() => flattenedItems.map(([item]) => item), [flattenedItems]);\n\n const activeItem = useMemo(() => dndItems.find((item) => item.id === activeId), [activeId, dndItems]);\n\n const itemsDictionary = useMemo(() => {\n const dictionary: Record<string, Item> = {};\n dndItems.forEach((item) => {\n dictionary[item.id] = item;\n });\n return dictionary;\n }, [dndItems]);\n\n const modifiers = useMemo(() => [(options) => adjustTranslate(options, isHorizontalDnD)], [isHorizontalDnD]);\n\n const sensorContext: SensorContext = useRef({\n items: dndItems,\n });\n\n useEffect(() => {\n sensorContext.current = {\n items: dndItems,\n };\n }, [dndItems]);\n\n const coordinateGetter = useMemo(\n () => getHierarchyKeyboardCoordinates(sensorContext, isHorizontalDnD),\n [isHorizontalDnD],\n );\n\n const sensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter,\n }),\n );\n\n const dragPreviewHandlers = useHierarchyPreviewHandlers({\n setActiveId,\n setOverId,\n });\n\n const dragActionHandlers = useHierarchyActionHandlers({\n ...dragPreviewHandlers,\n dndItems,\n onReorder,\n });\n\n const announcements = useHierarchyAnnouncements(itemsDictionary);\n\n const dndContextProps = useMemo(\n () => ({\n announcements,\n modifiers,\n sensors,\n layoutMeasuring,\n collisionDetection: customCollisionDetection(activeId, activeItem?.parentId, dndItems),\n ...dragActionHandlers,\n }),\n [announcements, modifiers, sensors, activeId, activeItem?.parentId, dndItems, dragActionHandlers],\n );\n\n return {\n dndContextProps,\n activeId,\n overId,\n activeIndex: activeId ? activeItem.index : -1,\n };\n};\n\nexport default useHierarchyDndkitConfig;\n","/* eslint-disable no-underscore-dangle */\n/* eslint-disable max-params */\nimport React, { createContext, useCallback, useMemo } from 'react';\nimport { DndContext, DragOverlay } from '@dnd-kit/core';\nimport { arrayMove } from '@dnd-kit/sortable';\nimport { DragOverlayContext } from './DragOverlayContext';\nimport { FunctionalHOC } from '../../types/FunctionalHoC';\nimport useHierarchyDndkitConfig from '../../helpers/dndkit/hierarchy/useHierarchyDndkitConfig';\nimport DataTableContext from '../../DataTableContext';\nimport { Item } from '../../helpers/dndkit/hierarchy/types';\nimport { TypescriptColumn } from '../../types/props';\n\ntype DnDGroupContextType = {\n activeIndex: number;\n};\n\nexport const DnDGroupContext = createContext<DnDGroupContextType>({\n activeIndex: undefined,\n});\n\nconst flattenColumns = (cols: TypescriptColumn[]) => {\n const flattened = [];\n const flatten = (col: TypescriptColumn, index, parentId = null) => {\n const id = col.Header;\n flattened.push([{ id, parentId, index }, col]);\n if (col.columns)\n col.columns.forEach((subColumn: TypescriptColumn, childIndex: number) => flatten(subColumn, childIndex, id));\n };\n cols.forEach((col, index) => flatten(col, index));\n return flattened;\n};\n\n// only wraps in \"DnDContext\" and \"DnDGroupContext\" if any Drag and Drop functionality is requested\nexport const withConditionalDnDColumnContext: FunctionalHOC = (Component) => (props) => {\n const {\n tableProps: { dragAndDropColumns, columns, onColumnsReorder },\n } = React.useContext(DataTableContext);\n\n const [PureDraggedJSX, setPureDraggedJSX] = React.useState(null); // todo: check if this can be done via portal\n\n const flattenedItems = useMemo(() => flattenColumns(columns), [columns]);\n\n const onReorder = useCallback(\n (movedItem: Item, indexes: { targetIndex: number; fromIndex: number }) => {\n // Send from index to target index\n const newFlattenedData = arrayMove(flattenedItems, indexes.fromIndex, indexes.targetIndex);\n // Pull the cols's data into an object\n const nodes = {};\n newFlattenedData.forEach(([dndData, colData]) => {\n delete colData.columns;\n nodes[dndData.id] = colData;\n });\n const newData = [];\n newFlattenedData.forEach(([dndData, colData]) => {\n // If row has parent, insert it to it's subrows\n // otherwise append it to the new user data\n if (dndData.parentId) {\n const parentNode = nodes[dndData.parentId];\n if (parentNode.columns) parentNode.columns.push(colData);\n else parentNode.columns = [colData];\n } else newData.push(colData);\n });\n onColumnsReorder(newData, indexes);\n },\n [flattenedItems, onColumnsReorder],\n );\n\n const { dndContextProps, activeId, activeIndex } = useHierarchyDndkitConfig({\n flattenedItems,\n isHorizontalDnD: true,\n onReorder,\n });\n\n if (dragAndDropColumns)\n return (\n <DndContext {...dndContextProps}>\n <DragOverlayContext.Provider value={{ setPureDraggedJSX }}>\n <DnDGroupContext.Provider value={{ activeIndex }}>\n <Component {...props} />\n </DnDGroupContext.Provider>\n </DragOverlayContext.Provider>\n <DragOverlay>{activeId ? PureDraggedJSX : null}</DragOverlay>\n </DndContext>\n );\n return <Component {...props} />;\n};\n","/* eslint-disable react/prop-types */\nimport React, { useEffect, useState } from 'react';\nimport DatePickerIcon from '@elliemae/ds-icons/DatePicker2';\nimport Grid from '@elliemae/ds-grid';\nimport { DSControlledDateRangePicker } from '@elliemae/ds-controlled-form';\nimport { FilterPopover, FILTER_TYPES } from '../../../../exported-related';\nimport { FilterProps } from '../../../../types/props';\nimport { DATA_TESTID } from '../../../../configs';\n\nconst emptyFilterValue = { startDate: null, endDate: null };\n\nexport const DateRangeFilter: React.ComponentType<FilterProps> = (props) => {\n const {\n column,\n column: { id },\n filterValue = emptyFilterValue,\n onValueChange,\n patchHeaderFilterButtonAndMenu,\n reduxHeader,\n innerRef,\n } = props;\n\n const dateRange = filterValue;\n\n const [startDate, setStartDate] = useState(dateRange.startDate || '');\n const [endDate, setEndDate] = useState(dateRange.endDate || '');\n\n useEffect(() => {\n setStartDate(dateRange.startDate || '');\n setEndDate(dateRange.endDate || '');\n }, [dateRange]);\n\n useEffect(() => {\n if (startDate && endDate && !startDate.includes('_') && !endDate.includes('_')) {\n onValueChange(FILTER_TYPES.DATE_RANGE, { startDate, endDate });\n }\n // We are missing onValueChange on purpose, this is an internal function and won't cause any problems\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [startDate, endDate]);\n\n return (\n <FilterPopover\n reduxHeader={reduxHeader}\n column={column}\n columnId={id}\n menuContent={\n <Grid width=\"260px\" data-testid={DATA_TESTID.DATA_TABLE_DATE_RANGE_CONTROLLER}>\n <Grid p=\"xxs\">\n <DSControlledDateRangePicker\n fromDate={startDate}\n onFromDateChange={setStartDate}\n toDate={endDate}\n onToDateChange={setEndDate}\n type=\"date-range-inputs\"\n autoFocus\n />\n </Grid>\n <Grid\n onKeyDown={(e) =>\n e.code === 'Enter' &&\n setTimeout(() => patchHeaderFilterButtonAndMenu(id, !!(dateRange.startDate || dateRange.endDate)), 0)\n }\n >\n <DSControlledDateRangePicker\n fromDate={startDate}\n onFromDateChange={setStartDate}\n toDate={endDate}\n onToDateChange={setEndDate}\n type=\"date-range-picker-controller-only\"\n />\n </Grid>\n </Grid>\n }\n triggerIcon={<DatePickerIcon />}\n innerRef={innerRef}\n ariaLabel=\"Open Date Range Filter\"\n />\n );\n};\n","/* eslint-disable react/prop-types */\nimport React from 'react';\nimport Grid from '@elliemae/ds-grid';\nimport DSTextBox from '@elliemae/ds-form/TextBox';\nimport SearchIcon from '@elliemae/ds-icons/SearchXsmall';\nimport { FilterPopover, FILTER_TYPES } from '../../../../exported-related';\nimport { FilterProps } from '../../../../types/props';\nimport { DATA_TESTID } from '../../../../configs';\n\nexport const NumberRangeFilter: React.ComponentType<FilterProps> = (props) => {\n const { column, filterValue = { from: null, to: null }, reduxHeader, onValueChange, innerRef } = props;\n const handleFromChange = (e) => {\n const from = e?.target?.value !== '' ? parseInt(e.target.value, 10) : '';\n const nextValue = {\n ...filterValue,\n from,\n };\n onValueChange(FILTER_TYPES.NUMBER_RANGE, nextValue);\n };\n const handleToChange = (e) => {\n const to = e?.target?.value !== '' ? parseInt(e.target.value, 10) : '';\n const nextValue = {\n ...filterValue,\n to,\n };\n onValueChange(FILTER_TYPES.NUMBER_RANGE, nextValue);\n };\n return (\n <FilterPopover\n reduxHeader={reduxHeader}\n column={column}\n columnId={column.id}\n menuContent={\n <Grid\n data-testid={DATA_TESTID.DATA_TABLE_NUMBER_RANGE_CONTROLLER}\n gutter=\"xxs\"\n padding=\"xs\"\n cols={['50px', 'auto', '50px']}\n >\n <DSTextBox value={`${filterValue?.from ?? ''}`} onChange={handleFromChange} type=\"number\" />\n <Grid justifyItems=\"center\" alignItems=\"center\">\n —\n </Grid>\n <DSTextBox value={`${filterValue?.to ?? ''}`} onChange={handleToChange} type=\"number\" />\n </Grid>\n }\n triggerIcon={<SearchIcon />}\n innerRef={innerRef}\n ariaLabel=\"Open Number Range Filter\"\n />\n );\n};\n","import { DATA_TESTID } from '../../../../configs';\n\nexport const focusNextMenuItem = (e, index) => {\n e.preventDefault();\n const menuItems = document.querySelectorAll<HTMLDivElement>(\n `[data-testid=\"${DATA_TESTID.DATA_TABLE_SELECT_MENU_ITEM}\"]`,\n );\n menuItems.item(index + 1)?.focus();\n};\n\nexport const focusPrevMenuItem = (e, index) => {\n e.preventDefault();\n const menuItems = document.querySelectorAll<HTMLDivElement>(\n `[data-testid=\"${DATA_TESTID.DATA_TABLE_SELECT_MENU_ITEM}\"]`,\n );\n menuItems.item(index - 1)?.focus();\n};\n","/* eslint-disable max-params */\nimport { useCallback } from 'react';\nimport { FilterProps } from '../../../../types/props';\nimport { focusNextMenuItem, focusPrevMenuItem } from './utils';\n\ninterface BaseSelectProps {\n isSingle?: boolean;\n isMulti?: boolean;\n selectedItems?: unknown[];\n type: string;\n}\n\nexport const useSelectFilterHandlers = ({\n column: { id },\n type,\n isSingle,\n isMulti,\n selectedItems,\n onValueChange,\n patchHeaderFilterButtonAndMenu,\n patchHeader,\n}: Partial<FilterProps> & BaseSelectProps): any => {\n const handleSelectItem = useCallback(\n (option) => {\n if (isSingle) {\n onValueChange(type, option);\n } else if (isMulti) {\n let nextSelectedItems = [];\n\n if (selectedItems.includes(option)) {\n nextSelectedItems = selectedItems.filter((opt) => opt !== option);\n } else {\n nextSelectedItems = [...selectedItems, option];\n }\n onValueChange(type, nextSelectedItems);\n }\n },\n [isSingle, isMulti, onValueChange, type, selectedItems],\n );\n\n const onInputWrapperKeyDown: React.KeyboardEventHandler = useCallback((e) => {\n if (e.code === 'ArrowDown') focusNextMenuItem(e, -1);\n }, []);\n\n const onMenuItemClick: (opt: string) => React.MouseEventHandler = useCallback(\n (option) => () => {\n handleSelectItem(option);\n if (isSingle) patchHeaderFilterButtonAndMenu(id, true);\n },\n [handleSelectItem, id, isSingle, patchHeaderFilterButtonAndMenu],\n );\n\n const onMenuItemKeyDown: (...args: any) => React.KeyboardEventHandler = useCallback(\n (option, index, virtualIndex, inputRef, innerRef) => (e) => {\n if (e.code === 'ArrowUp') {\n if (index === 0) inputRef.current.focus();\n else focusPrevMenuItem(e, virtualIndex);\n }\n if (e.code === 'ArrowDown') focusNextMenuItem(e, virtualIndex);\n if (e.code === 'Space') {\n e.preventDefault();\n handleSelectItem(option);\n if (isSingle) {\n patchHeader(id, { hideFilterMenu: true, hideFilterButton: false });\n setTimeout(() => innerRef.current.focus());\n }\n }\n if (e.code === 'Enter') {\n patchHeader(id, { hideFilterMenu: true, hideFilterButton: false });\n setTimeout(() => innerRef.current.focus());\n }\n },\n [handleSelectItem, id, isSingle, patchHeader],\n );\n\n return { onInputWrapperKeyDown, onMenuItemClick, onMenuItemKeyDown };\n};\n","/* eslint-disable react/prop-types */\n/* eslint-disable max-lines */\nimport React, { useState, useEffect, useRef, useCallback, useMemo } from 'react';\nimport { useVirtual } from 'react-virtual';\nimport SearchIcon from '@elliemae/ds-icons/SearchXsmall';\nimport CheckBox from '@elliemae/ds-form/Checkbox';\nimport { Wrapper, InputWrapper, Input, VirtualListWrapper, MenuList, MenuItem } from './components';\nimport { FilterPopover } from '../../../../exported-related';\nimport { FilterProps } from '../../../../types/props';\nimport { useSelectFilterHandlers } from './useSelectFilterHandlers';\nimport { DATA_TESTID } from '../../../../configs';\n\ninterface BaseSelectProps {\n isSingle?: boolean;\n isMulti?: boolean;\n selectedItems?: unknown[];\n type: string;\n}\n\nexport const BaseSelectFilter: React.ComponentType<FilterProps & BaseSelectProps> = (props) => {\n const {\n isMulti = false,\n selectedItems = [],\n column,\n column: { id, filterOptions: userFilterOptions },\n ctx: {\n tableProps: { data },\n },\n reduxHeader,\n innerRef,\n ...rest\n } = props;\n\n const filterOptions: string[] = useMemo(() => {\n // If the user didn't provide options, use the available ones\n if (!userFilterOptions) return [...new Set(data.map((datum) => datum[id].toString()))];\n // If user provided the array itself, use it\n if (Array.isArray(userFilterOptions)) return userFilterOptions;\n // Otherwise, it is a function\n return userFilterOptions();\n }, [data, id, userFilterOptions]);\n const inputRef = useRef(null);\n\n const [inputValue, setInputValue] = useState('');\n const [filteredOptions, setFilteredOptions] = useState(filterOptions);\n\n const virtualListRef = useRef();\n const virtualListHelpers = useVirtual({\n size: filteredOptions.length,\n parentRef: virtualListRef,\n overscan: 15,\n });\n const { virtualItems, totalSize } = virtualListHelpers;\n\n const handleInputChange = useCallback((e) => setInputValue(e.target.value), [setInputValue]);\n\n useEffect(() => {\n const filtered = filterOptions.filter((opt) => opt.toLowerCase().includes(inputValue.toLowerCase()));\n setFilteredOptions(filtered);\n }, [inputValue, filterOptions]);\n\n const { onInputWrapperKeyDown, onMenuItemClick, onMenuItemKeyDown } = useSelectFilterHandlers(props);\n\n const Select = (\n <Wrapper data-testid={rest['data-testid']}>\n <InputWrapper>\n <Input\n value={inputValue}\n onChange={handleInputChange}\n autoFocus\n onKeyDown={onInputWrapperKeyDown}\n ref={inputRef}\n />\n </InputWrapper>\n <VirtualListWrapper ref={virtualListRef}>\n <MenuList style={{ height: `${totalSize}px` }}>\n {virtualItems.map((virtualItem, virtualIndex) => {\n const { index, measureRef, start } = virtualItem;\n const option = filteredOptions[index];\n return (\n <MenuItem\n onClick={onMenuItemClick(option)}\n style={{ top: `${start}px`, outline: 'none' }}\n ref={measureRef}\n tabIndex={-1}\n key={option}\n data-testid={DATA_TESTID.DATA_TABLE_SELECT_MENU_ITEM}\n onKeyDown={onMenuItemKeyDown(option, index, virtualIndex, inputRef, innerRef)}\n >\n {isMulti && (\n <CheckBox\n style={{ marginRight: '10px' }}\n checked={selectedItems.includes(option)}\n onChange={onMenuItemKeyDown(option, index, virtualIndex, inputRef, innerRef)}\n />\n )}\n {option}\n </MenuItem>\n );\n })}\n </MenuList>\n </VirtualListWrapper>\n </Wrapper>\n );\n\n return (\n <FilterPopover\n reduxHeader={reduxHeader}\n column={column}\n columnId={column.id}\n menuContent={Select}\n triggerIcon={<SearchIcon />}\n innerRef={innerRef}\n ariaLabel=\"Open Selection Filter\"\n />\n );\n};\n","/* eslint-disable react/prop-types */\n/* eslint-disable max-lines */\nimport React from 'react';\nimport { BaseSelectFilter } from './BaseSelectFilter';\nimport { FilterProps } from '../../../../types/props';\nimport { FILTER_TYPES } from '../../../../exported-related';\nimport { DATA_TESTID } from '../../../../configs';\n\nexport const SingleSelectFilter: React.ComponentType<FilterProps> = ({\n column,\n ctx,\n patchHeaderFilterButtonAndMenu,\n patchHeader,\n onValueChange,\n reduxHeader,\n innerRef,\n}) => (\n <BaseSelectFilter\n reduxHeader={reduxHeader}\n data-testid={DATA_TESTID.DATA_TABLE_SINGLESELECT_CONTROLLER}\n isSingle\n column={column}\n ctx={ctx}\n type={FILTER_TYPES.SELECT}\n onValueChange={onValueChange}\n patchHeaderFilterButtonAndMenu={patchHeaderFilterButtonAndMenu}\n patchHeader={patchHeader}\n innerRef={innerRef}\n />\n);\n","/* eslint-disable react/prop-types */\nimport React from 'react';\nimport { FilterProps } from '../../../../types/props';\nimport { BaseSelectFilter } from './BaseSelectFilter';\nimport { FILTER_TYPES } from '../../../../exported-related';\nimport { DATA_TESTID } from '../../../../configs';\n\nexport const MultiSelectFilter: React.ComponentType<FilterProps> = ({\n column,\n ctx,\n onValueChange,\n patchHeaderFilterButtonAndMenu,\n patchHeader,\n reduxHeader,\n filterValue,\n innerRef,\n}) => (\n <BaseSelectFilter\n reduxHeader={reduxHeader}\n data-testid={DATA_TESTID.DATA_TABLE_MULTISELECT_CONTROLLER}\n isMulti\n column={column}\n ctx={ctx}\n selectedItems={filterValue ?? []}\n type={FILTER_TYPES.MULTI_SELECT}\n onValueChange={onValueChange}\n patchHeaderFilterButtonAndMenu={patchHeaderFilterButtonAndMenu}\n patchHeader={patchHeader}\n innerRef={innerRef}\n />\n);\n","/* eslint-disable react/prop-types */\nimport React, { useCallback, useEffect, useState } from 'react';\nimport DatePickerIcon from '@elliemae/ds-icons/DatePicker2';\nimport Grid from '@elliemae/ds-grid';\nimport { DSControlledDateTimePicker } from '@elliemae/ds-controlled-form';\nimport { FilterPopover, FILTER_TYPES } from '../../../../exported-related';\nimport { FilterProps } from '../../../../types/props';\nimport { DATA_TESTID } from '../../../../configs';\n\nexport const SingleDateFilter: React.ComponentType<FilterProps> = (props) => {\n const {\n column,\n column: { id },\n filterValue,\n reduxHeader,\n onValueChange,\n patchHeaderFilterButtonAndMenu,\n innerRef,\n } = props;\n\n const [date, setDate] = useState(filterValue || '');\n\n useEffect(() => {\n setDate(filterValue || '');\n }, [filterValue]);\n\n useEffect(() => {\n if (!date.includes('_')) onValueChange(FILTER_TYPES.SINGLE_DATE, date || undefined);\n // We are missing onValueChange on purpose, this is an internal function and won't cause any problems\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [date]);\n\n const commitDateChange = useCallback(() => {\n patchHeaderFilterButtonAndMenu(id, true);\n }, [id, patchHeaderFilterButtonAndMenu]);\n\n return (\n <FilterPopover\n reduxHeader={reduxHeader}\n column={column}\n columnId={column.id}\n menuContent={\n <Grid data-testid={DATA_TESTID.DATA_TABLE_SINGLE_DATE_CONTROLLER} width=\"260px\">\n <Grid p=\"xxs\">\n <DSControlledDateTimePicker date={date} onDateChange={setDate} type=\"date-inputs\" isClearable autoFocus />\n </Grid>\n <Grid onKeyDown={(e) => e.code === 'Enter' && setTimeout(commitDateChange, 0)}>\n <DSControlledDateTimePicker date={date} onDateChange={setDate} type=\"date-picker-controller-only\" />\n </Grid>\n </Grid>\n }\n triggerIcon={<DatePickerIcon />}\n innerRef={innerRef}\n ariaLabel=\"Open Single Date Filter\"\n />\n );\n};\n","/* eslint-disable react/prop-types */\nimport React from 'react';\nimport SearchIcon from '@elliemae/ds-icons/SearchXsmall';\nimport { FilterPopover, FILTER_TYPES } from '../../../../exported-related';\nimport { FilterProps } from '../../../../types/props';\n\nexport const TextInputFilter: React.ComponentType<FilterProps> = (props) => {\n const {\n column,\n filterValue = '',\n reduxHeader,\n onValueChange,\n ctx: {\n tableProps: { data },\n },\n innerRef,\n } = props;\n const count = data.length;\n\n const handleChange = (event) => {\n const newText = event?.target?.value || '';\n onValueChange(FILTER_TYPES.TEXT, newText);\n };\n\n return (\n <FilterPopover\n reduxHeader={reduxHeader}\n column={column}\n columnId={column.id}\n menuContent={\n // eslint-disable-next-line jsx-a11y/no-autofocus\n <input value={filterValue} onChange={handleChange} placeholder={`Search ${count} records...`} autoFocus />\n }\n triggerIcon={<SearchIcon />}\n removeWrapperStyles\n innerRef={innerRef}\n ariaLabel=\"Open Text Input Filter\"\n />\n );\n};\n","/* eslint-disable @typescript-eslint/indent */\n/* eslint-disable react/prop-types */\nimport React, { useCallback } from 'react';\nimport {\n DateRangeFilter,\n NumberRangeFilter,\n MultiSelectFilter,\n SingleSelectFilter,\n SingleDateFilter,\n TextInputFilter,\n} from '../../addons/Filters';\nimport { FILTER_TYPES } from '../../exported-related';\nimport { useDispatchHeadersActions } from '../../redux/reducers';\nimport { FilterProps } from '../../types/props';\n\nconst FilterMapper: Record<string, React.ComponentType<FilterProps>> = {\n [FILTER_TYPES.SELECT]: SingleSelectFilter,\n [FILTER_TYPES.MULTI_SELECT]: MultiSelectFilter,\n [FILTER_TYPES.TEXT]: TextInputFilter,\n [FILTER_TYPES.SINGLE_DATE]: SingleDateFilter,\n [FILTER_TYPES.DATE_RANGE]: DateRangeFilter,\n [FILTER_TYPES.NUMBER_RANGE]: NumberRangeFilter,\n};\nexport const FilterMapItem: React.ComponentType<\n Omit<FilterProps, 'patchHeaderFilterButtonAndMenu' | 'patchHeader' | 'onValueChange'>\n> = (props) => {\n const { column, filterValue: filters, onFiltersChange } = props;\n\n const { patchHeaderFilterButtonAndMenu, patchHeader } = useDispatchHeadersActions();\n\n const filterValue = filters.find((filter) => filter.id === column.id);\n\n const onValueChange = useCallback(\n (type: string, newValue: any) => {\n const filterIndex = filters.findIndex((filter) => filter.id === column.id);\n if (newValue === undefined) {\n const newFilters = filters.filter((filter) => filter.id !== column.id);\n onFiltersChange(newFilters);\n } else if (filterIndex === -1) {\n onFiltersChange([...filters, { id: column.id, type, value: newValue }]);\n } else {\n const newFilters = [...filters];\n newFilters[filterIndex].type = type;\n newFilters[filterIndex].value = newValue;\n onFiltersChange(newFilters);\n }\n },\n [column.id, filters, onFiltersChange],\n );\n\n const filterProps = {\n ...props,\n filterValue: filterValue?.value,\n onValueChange,\n patchHeader,\n patchHeaderFilterButtonAndMenu,\n };\n\n if (typeof column.filter === 'string') {\n if (!(column.filter in FilterMapper)) {\n throw new Error(`column.filter must be a supported out-of-the-box filter in ${column}`);\n }\n const FilterComp = FilterMapper[column.filter];\n return <FilterComp {...filterProps} />;\n }\n\n if (column.Filter) {\n if (typeof column.Filter !== 'function') {\n throw new Error(`column.Filter must be a component`);\n }\n const FilterComp = column.Filter;\n return <FilterComp {...filterProps} />;\n }\n\n // Column doesn't have any filters\n return null;\n};\n","/* eslint-disable react/prop-types */\nimport React, { useState, useCallback, useContext, useRef, useEffect, useMemo } from 'react';\nimport { ColsLayoutStyle } from '../../configs';\nimport DataTableContext from '../../DataTableContext';\nimport { columnsToGrid } from '../../helpers';\nimport { StyledResizer } from '../../styled';\nimport { TypescriptColumn } from '../../types/props';\n\nconst narrow = (value: number, min: number, max: number): number =>\n Math.min(Math.max(value, min ?? 30), max ?? Infinity);\n\nexport const HeaderResizer: React.ComponentType<{\n column: TypescriptColumn;\n}> = ({ column }) => {\n const {\n layoutHelpers: { setGridLayout },\n visibleColumns,\n tableProps: { onColumnResize },\n } = useContext(DataTableContext);\n\n const [isResizing, setIsResizing] = useState(false);\n const [nextWidth, setNextWidth] = useState(column.width ?? 150);\n\n const visibleColumnsCopy = useMemo(() => visibleColumns.map((col) => ({ ...col })), [visibleColumns]);\n\n useEffect(() => {\n const realColumnIndex = visibleColumnsCopy.findIndex((visibleColumn) => visibleColumn.id === column.id);\n\n visibleColumnsCopy[realColumnIndex].width = nextWidth;\n setGridLayout(columnsToGrid(visibleColumnsCopy, ColsLayoutStyle.Fixed));\n }, [column.id, nextWidth, setGridLayout, visibleColumnsCopy]);\n\n const ref = useRef<HTMLDivElement>(null);\n\n const onResizeStart = useCallback(() => {\n setIsResizing(true);\n }, []);\n\n const onResizeHandler = useCallback(\n (e) => {\n const delta = e.clientX - ref.current.getBoundingClientRect().x; // delta in pixels\n\n const realColumnIndex = visibleColumnsCopy.findIndex((visibleColumn) => visibleColumn.id === column.id);\n\n const widthWithDelta = narrow(\n nextWidth + delta,\n visibleColumnsCopy[realColumnIndex].minWidth,\n visibleColumnsCopy[realColumnIndex].maxWidth,\n );\n\n setNextWidth(widthWithDelta);\n\n // To prevent text selection\n e.preventDefault();\n e.stopPropagation();\n },\n [column.id, nextWidth, visibleColumnsCopy],\n );\n\n const onResizeEnd = useCallback(() => {\n setIsResizing(false);\n onColumnResize(column.id, nextWidth);\n setGridLayout(columnsToGrid(visibleColumns, ColsLayoutStyle.Fixed));\n }, [onColumnResize, column.id, nextWidth, setGridLayout, visibleColumns]);\n\n useEffect(() => {\n const debouncedResizeHandler = onResizeHandler;\n const debouncedResizeEnd = onResizeEnd;\n const addEvents = () => {\n document.addEventListener('mousemove', debouncedResizeHandler);\n document.addEventListener('touchmove', debouncedResizeHandler);\n document.addEventListener('mouseup', debouncedResizeEnd);\n document.addEventListener('touchend', debouncedResizeEnd);\n };\n const removeEvents = () => {\n document.removeEventListener('mousemove', debouncedResizeHandler);\n document.removeEventListener('touchmove', debouncedResizeHandler);\n document.removeEventListener('mouseup', debouncedResizeEnd);\n document.removeEventListener('touchend', debouncedResizeEnd);\n };\n\n if (isResizing) addEvents();\n else removeEvents();\n\n // just in case the component is unmounted\n return removeEvents;\n }, [isResizing, onResizeHandler, onResizeEnd]);\n\n return (\n <StyledResizer\n ref={ref}\n role=\"separator\"\n draggable={false}\n isResizing={isResizing}\n onMouseDown={onResizeStart}\n onTouchStart={onResizeStart}\n onMouseUp={onResizeEnd}\n onTouchEnd={onResizeEnd}\n />\n );\n};\n","/* eslint-disable react/prop-types */\nimport React, { Fragment } from 'react';\nimport { SimpleTruncatedTooltipText } from '@elliemae/ds-truncated-tooltip-text';\nimport { TypescriptColumn, TypescriptContext } from '../../types/props';\nimport { SortableItemContextType } from '../HoC/SortableItemContext';\nimport { RequiredDot } from './RequiredDot';\nimport { DATA_TESTID } from '../../configs';\n\ninterface HeaderCellTitle {\n column: TypescriptColumn;\n ctx: TypescriptContext;\n draggableProps: SortableItemContextType['draggableProps'];\n textWrap: 'wrap' | 'wrap-all' | 'truncate';\n}\n\nconst StringTitle = ({ column, textWrap }) =>\n (column.textWrap || textWrap) === 'truncate' ? (\n <SimpleTruncatedTooltipText value={column.Header} />\n ) : (\n <>{column.Header}</>\n );\n\nexport const HeaderCellTitle: React.ComponentType<HeaderCellTitle> = ({ column, ctx, draggableProps, textWrap }) => (\n <div style={{ display: 'flex', alignItems: 'center' }} data-testid={DATA_TESTID.DATA_TABLE_HEADER_CELL_TITLE}>\n {typeof column.Header === 'string' ? (\n <StringTitle column={column} textWrap={textWrap} />\n ) : (\n <column.Header column={column} ctx={ctx} draggableProps={draggableProps} />\n )}\n {column.required && <RequiredDot />}\n </div>\n);\n","/* eslint-disable max-params */\n/* eslint-disable max-lines */\n/* eslint-disable complexity */\n/* eslint-disable react/prop-types */\nimport React, { useContext, useMemo, useRef } from 'react';\nimport { connect, ConnectedProps } from 'react-redux';\nimport Grid from '@elliemae/ds-grid';\nimport { useDispatchHeadersActions } from '../../redux/reducers';\nimport { StyledHeadTh, StyledHeaderRightIconsWrapper, StyledFocusWithin } from '../../styled';\nimport DataTableContext from '../../DataTableContext';\nimport { SortByCaret } from '../SortByCaret';\nimport { DnDHandle } from '..';\nimport { SortableItemContext } from '../HoC/SortableItemContext';\nimport { FilterMapItem } from '../Filters';\nimport { HeaderResizer } from './HeaderResizer';\nimport { TypescriptColumn } from '../../types/props';\nimport { useHeaderCellHandlers } from './useHeaderCellHandlers';\nimport { useHeaderCellConfig } from './useHeaderCellConfig';\nimport { useRecoverFocusCol } from '../../hooks/useRecoverFocusCol';\nimport { DATA_TESTID } from '../../configs';\nimport { HeaderCellTitle } from './HeaderCellTitle';\n\nconst buildScreenReaderInstructions = (colSpan: number, draggable: boolean, filterable: boolean, sortable: boolean) => {\n const preffix = colSpan === 1 ? '' : 'Column Group. ';\n if (!draggable && !filterable && !sortable) return preffix;\n\n let message = sortable\n ? 'You can sort the data ascendingly/descendingly by this column. Use the up / down arrows keys to do so'\n : '';\n if (draggable && filterable) {\n message = `This column is draggable and filterable. To enable these interactions press the enter key. ${message}`;\n } else if (draggable || filterable) {\n message = `This column is ${\n draggable ? 'draggable' : 'filterable'\n }. To enable this interaction press the enter key. ${message}`;\n }\n return `${preffix}${message}`;\n};\n\ninterface HeaderCellCompProps {\n column: TypescriptColumn;\n isDragOverlay: boolean;\n colSpan: number;\n}\n\nfunction mapStateToProps(state, ownProps) {\n return {\n reduxHeader: state.headers?.[ownProps.column.id],\n };\n}\n\nconst connector = connect(mapStateToProps);\n\nconst HeaderCellComp: React.ComponentType<HeaderCellCompProps & ConnectedProps<typeof connector>> = (props) => {\n const { reduxHeader, column, isDragOverlay, colSpan } = props;\n const ctx = useContext(DataTableContext);\n const {\n tableProps: { isResizeable, onColumnSortChange, dragAndDropColumns, onFiltersChange, filters, textWrap },\n flattenedData,\n } = ctx;\n const { patchHeader } = useDispatchHeadersActions();\n\n const dragHandleRef = useRef<HTMLDivElement>(null);\n const filterIconRef = useRef<HTMLDivElement>(null);\n\n const { draggableProps } = useContext(SortableItemContext);\n\n const { hasFilter, hasDnD, hasSortingCaret, hasRightIcons, shouldShowDnD, hCols, isDragging } = useHeaderCellConfig({\n column,\n dragAndDropColumns,\n draggableProps,\n reduxHeader,\n isDragOverlay,\n });\n\n useRecoverFocusCol(isDragging, dragHandleRef);\n\n const rightIcons = useMemo(() => {\n if (!hasRightIcons) return null;\n return (\n <StyledHeaderRightIconsWrapper>\n <FilterMapItem\n column={column}\n ctx={ctx}\n onFiltersChange={onFiltersChange}\n reduxHeader={reduxHeader}\n filterValue={filters}\n innerRef={filterIconRef}\n />\n {hasSortingCaret && <SortByCaret isSortedDesc={column.isSortedDesc} />}\n </StyledHeaderRightIconsWrapper>\n );\n }, [hasRightIcons, column, ctx, onFiltersChange, reduxHeader, filters, hasSortingCaret]);\n\n const DnDHandleComponent = useMemo(\n () => (\n <Grid mr=\"2px\" alignItems=\"center\" style={{ position: 'relative' }}>\n <StyledFocusWithin hideFocus={isDragging}>\n <DnDHandle\n key={column.id}\n innerRef={dragHandleRef}\n isReachable={reduxHeader?.withTabStops}\n id={column.id}\n isDragOverlay={isDragOverlay}\n />\n </StyledFocusWithin>\n </Grid>\n ),\n [column.id, isDragOverlay, isDragging, reduxHeader?.withTabStops],\n );\n\n const handlers = useHeaderCellHandlers({\n hasFilter,\n patchHeader,\n column,\n reduxHeader,\n hasDnD,\n onColumnSortChange,\n dragHandleRef,\n filterIconRef,\n headerRef: column.ref,\n });\n\n return (\n <StyledHeadTh\n column={column}\n {...handlers}\n role={colSpan === 1 ? 'columnheader' : 'group'}\n colSpan={colSpan}\n aria-describedby={`${column.id}-instructions`}\n // eslint-disable-next-line no-nested-ternary\n aria-sort={hasSortingCaret ? (column.isSortedDesc ? 'descending' : 'ascending') : 'none'}\n data-testid={DATA_TESTID.DATA_TABLE_HEADER}\n isFirstRowGroup={!!flattenedData[0]?.original?.dimsumHeaderValue}\n tabIndex={column.isFocuseable === false ? -1 : 0}\n isDragOverlay={isDragOverlay}\n isDraggingActive={draggableProps && draggableProps.active}\n shouldShowDnD={shouldShowDnD}\n ref={column.ref}\n >\n <Grid width=\"100%\" cols={hCols}>\n {shouldShowDnD && DnDHandleComponent}\n <HeaderCellTitle column={column} ctx={ctx} draggableProps={draggableProps} textWrap={textWrap} />\n {rightIcons}\n {isResizeable && column.canResize !== false && <HeaderResizer column={column} />}\n </Grid>\n <span id={`${column.id}-instructions`} style={{ display: 'none' }} aria-hidden=\"false\">\n {buildScreenReaderInstructions(\n colSpan,\n dragAndDropColumns && column.disableDnD !== true,\n hasFilter,\n column.canSort,\n )}\n </span>\n </StyledHeadTh>\n );\n};\n\nexport const HeaderCell = connector(HeaderCellComp);\n","import React, { cloneElement, useContext, useEffect, useMemo } from 'react';\nimport { useSortable } from '@dnd-kit/sortable';\nimport DataTableContext from '../../DataTableContext';\nimport { DragOverlayContext } from './DragOverlayContext';\nimport { FunctionalHOC } from '../../types/FunctionalHoC';\nimport { DnDGroupContext } from './withConditionalDnDColumnContext';\nimport { SortableItemContext, DropIndicatorPosition, SortableItemContextType } from './SortableItemContext';\n\nexport const withDnDSortableColumnContext: FunctionalHOC = (Component) => (props: any) => {\n const {\n tableProps: { dragAndDropColumns },\n } = useContext(DataTableContext);\n const { setPureDraggedJSX } = useContext(DragOverlayContext);\n const { activeIndex } = useContext(DnDGroupContext);\n\n // onMount generate unique options, so everyting is only ran once\n const draggableOptions = useMemo(\n () => ({\n id: props.header.Header,\n }),\n [props.header.Header],\n );\n\n const useSortableHelpers = useSortable(draggableOptions);\n\n const PureComponentJSX = useMemo(() => <Component {...props} />, [props]);\n\n // calculate all the \"useSortable\" values as per required\n const draggableProps = useMemo(() => {\n if (!dragAndDropColumns) return false;\n\n const { index, overIndex } = useSortableHelpers;\n\n return {\n ...useSortableHelpers,\n shouldShowDropIndicatorPosition: overIndex === index && overIndex !== -1,\n dropIndicatorPosition: index > activeIndex ? DropIndicatorPosition.After : DropIndicatorPosition.Before,\n };\n }, [useSortableHelpers, dragAndDropColumns, activeIndex]);\n\n useEffect(() => {\n // We assume the structure of the inner element WON'T change during DnD\n // This is a huge performance boost\n if (useSortableHelpers.isDragging) {\n setPureDraggedJSX(cloneElement(PureComponentJSX, { isDragOverlay: true }));\n }\n }, [useSortableHelpers.isDragging, setPureDraggedJSX]);\n\n // we use a context so we can easly access information wherever without bubbling down\n // this context is all Memoized so as long as component is not re-mounted,\n // the context won't trigger un-required renders per-se...\n const ctx: SortableItemContextType = useMemo(\n () => ({\n draggableProps,\n }),\n [draggableProps],\n );\n // we always add the context, if draggableProps===false we don't have the DnD enabled.\n return <SortableItemContext.Provider value={ctx}>{PureComponentJSX}</SortableItemContext.Provider>;\n};\n","/* eslint-disable complexity */\nimport React, { useContext } from 'react';\nimport { Grid } from '@elliemae/ds-grid';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport { HeaderCell } from './HeaderCell';\nimport { SortableItemContext } from '../HoC/SortableItemContext';\nimport { withDnDSortableColumnContext } from '../HoC/withDnDSortableColumnContext';\nimport DropIndicator from '../DropIndicator';\nimport { SortableHeaderCell } from '../SortableHeaderCell';\nimport { TypescriptColumn } from '../../types/props';\nimport { EmptyChildrenGroup } from './EmptyChildrenGroup';\nimport { DATA_TESTID } from '../../configs';\n\nconst StyledWrapper = styled(Grid)`\n position: relative;\n width: ${(props) => (props.isDragOverlay ? 'fit-content' : '100%')};\n grid-column: ${(props) => props.gridColumn};\n background: ${(props) => (props.isDragging ? props.theme.colors.neutral['080'] : 'white')};\n opacity: ${(props) => (props.isDragging ? 0.8 : 1)};\n box-shadow: 0 2px 4px 0 ${(props) => (props.isDragOverlay ? 'rgba(0,0,0,0.5)' : 'transparent')};\n`;\n\ninterface HeaderCellGroupCompProps {\n header: TypescriptColumn;\n isDragOverlay?: boolean;\n isDraggingParent?: boolean;\n isLast?: boolean;\n}\n\nconst HeaderCellGroupComp: React.ComponentType<HeaderCellGroupCompProps> = ({\n header,\n isDragOverlay,\n isDraggingParent,\n isLast,\n}) => {\n const { draggableProps } = useContext(SortableItemContext);\n\n const children = header.columns;\n\n const isDragging = (draggableProps && draggableProps.isDragging) || isDraggingParent;\n const dropIndicatorPosition =\n draggableProps && draggableProps.shouldShowDropIndicatorPosition && draggableProps.dropIndicatorPosition;\n\n const ChildGroup = isDragOverlay ? NotSortableHeaderCellGroup : HeaderCellGroup;\n\n const colSpan = children?.length ?? 1;\n return (\n <StyledWrapper\n ref={draggableProps ? draggableProps.setNodeRef : null}\n gridColumn={isDragOverlay ? 'auto' : `span ${colSpan}`}\n isDragOverlay={isDragOverlay}\n isDragging={isDragging}\n cols={['auto']}\n data-testid={isDragOverlay ? DATA_TESTID.DATA_TABLE_COLUMN_DRAG_OVERLAY : undefined}\n >\n <HeaderCell column={header} isDragOverlay={isDragOverlay} colSpan={colSpan} />\n {!!children?.length && !isDragOverlay && (\n <SortableHeaderCell items={children} isDragOverlay={isDragOverlay}>\n {children.map((h, index) => (\n <ChildGroup\n key={h.id}\n header={h}\n isDragOverlay={isDragOverlay}\n isDraggingParent={isDragging}\n isLast={index === children.length - 1}\n />\n ))}\n </SortableHeaderCell>\n )}\n {children?.length && isDragOverlay && <EmptyChildrenGroup />}\n <DropIndicator vertical dropIndicatorPosition={dropIndicatorPosition} isLast={isLast && isDragging} />\n </StyledWrapper>\n );\n};\n\nHeaderCellGroupComp.propTypes = {\n header: PropTypes.any,\n isDragOverlay: PropTypes.bool,\n isDraggingParent: PropTypes.bool,\n isLast: PropTypes.bool,\n};\n\n// We need to declare this because we MUST avoid the useSortable call in the recursive calls of the function\nconst NotSortableHeaderCellGroup = HeaderCellGroupComp;\n\nexport const HeaderCellGroup = withDnDSortableColumnContext(HeaderCellGroupComp);\n","import React, { useContext, useMemo } from 'react';\nimport { StyledHeadWrapper, StyledHeadTr } from '../../styled';\nimport DataTableContext from '../../DataTableContext';\nimport { withConditionalDnDColumnContext } from '../HoC/withConditionalDnDColumnContext';\nimport { HeaderCellGroup } from './HeaderCellGroup';\nimport { SortableHeaderCell } from '../SortableHeaderCell';\nimport { TypescriptColumn } from '../../types/props';\n\nconst HeadersComp = (): JSX.Element => {\n const {\n tableProps: { isExpandable, colsLayoutStyle },\n layoutHelpers: { gridLayout, totalColumnsWidth },\n columnHeaderRef,\n visibleColumns,\n } = useContext(DataTableContext);\n const HeadersCells = useMemo(\n () => (\n <SortableHeaderCell items={visibleColumns}>\n <StyledHeadTr role=\"row\" cols={gridLayout} colsLayoutStyle={colsLayoutStyle} isExpandable={isExpandable}>\n {visibleColumns.map((h: TypescriptColumn, index) => (\n <HeaderCellGroup header={h} key={h.id} isLast={index === visibleColumns.length - 1} />\n ))}\n </StyledHeadTr>\n </SortableHeaderCell>\n ),\n [isExpandable, visibleColumns, gridLayout, colsLayoutStyle],\n );\n\n const PureHeaders = useMemo(\n () => (\n <StyledHeadWrapper totalColumnsWidth={totalColumnsWidth} colsLayoutStyle={colsLayoutStyle} ref={columnHeaderRef}>\n {HeadersCells}\n </StyledHeadWrapper>\n ),\n [totalColumnsWidth, colsLayoutStyle, columnHeaderRef, HeadersCells],\n );\n return PureHeaders;\n};\n\nexport default withConditionalDnDColumnContext(HeadersComp);\n","import React, { useContext, useMemo, useCallback } from 'react';\nimport { connect } from 'react-redux';\nimport RowLoading from './RowLoading'; // imported this way to avoid circular dependencies\nimport EmptyContent from './EmptyContent'; // imported this way to avoid circular dependencies\nimport Rows from './Rows'; // imported this way to avoid circular dependencies\nimport Headers from './Headers'; // imported this way to avoid circular dependencies\nimport Footer from './Footer'; // imported this way to avoid circular dependencies\nimport DataTableContext from '../DataTableContext';\nimport { FIXED_SIZES } from '../configs/fixedSizes';\nimport { StyledVirtualListWrapper, StyledTableContentWrapper } from '../styled';\nimport Loader from './Loader';\nimport { useDispatchRowsActions } from '../redux/reducers';\nimport { DATA_TESTID } from '../configs';\n\nfunction mapStateToProps(state) {\n return {\n relativeRowMouseCord: state.rows.relativeRowMouseCord,\n };\n}\n\nconst VirtualRowsListComponent = () => {\n const {\n virtualListRef,\n tableProps: { height, width, isLoading, isLoadingAppended },\n virtualListHelpers,\n layoutHelpers: { totalColumnsWidth },\n flattenedData,\n } = useContext(DataTableContext);\n const { totalSize, scrollToIndex } = virtualListHelpers;\n\n const { setFocusedRowId } = useDispatchRowsActions();\n\n const isEmptyContent = useMemo(() => !isLoading && flattenedData.length === 0, [isLoading, flattenedData.length]);\n\n const tableHeight = useMemo(() => {\n if (typeof height === 'string')\n return height.includes('%') ? height : Number.parseInt(height, 10) - FIXED_SIZES.PAGINATION_HEIGHT;\n return height;\n }, [height]);\n\n const onKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.ctrlKey && e.code === 'End') {\n scrollToIndex(flattenedData.length - 1);\n setFocusedRowId(flattenedData[flattenedData.length - 1].uid);\n } else if (e.ctrlKey && e.code === 'Home') {\n scrollToIndex(0, { align: 'center' });\n setFocusedRowId(flattenedData[0].uid);\n }\n },\n [scrollToIndex, setFocusedRowId, flattenedData],\n );\n\n return (\n <StyledVirtualListWrapper\n ref={virtualListRef}\n height={tableHeight}\n width={width}\n data-testid={DATA_TESTID.DATA_TABLE_SCROLLABLE_CONTAINER}\n onKeyDown={onKeyDown}\n tabIndex={-1}\n >\n <StyledTableContentWrapper role=\"rowgroup\" height={totalSize || '100%'}>\n <Headers />\n {isEmptyContent && <EmptyContent width={totalColumnsWidth} />}\n {isLoading ? <Loader /> : null}\n {!isLoading && !isEmptyContent && (\n <>\n <Rows />\n <Footer />\n {isLoadingAppended && <RowLoading />}\n </>\n )}\n </StyledTableContentWrapper>\n </StyledVirtualListWrapper>\n );\n};\n\nconst VirtualRowsList = connect(mapStateToProps)(VirtualRowsListComponent);\n\nexport default VirtualRowsList;\n","import React, { useContext, useMemo, useState } from 'react';\nimport { connect } from 'react-redux';\n\nimport { StyledTableWrapper, StyledDataTableWrapper } from '../styled';\nimport DataTableContext from '../DataTableContext';\nimport { Pagination } from '../addons/Pagination';\nimport VirtualRowsList from './VirtualRowsList';\nimport { TypescriptAppliedFilter } from '../types/props';\nimport { DATA_TESTID } from '../configs';\n\nconst mapStateToProps = (state: { filters: TypescriptAppliedFilter }) => ({\n reduxFilters: state.filters,\n});\n// must manually declare typescript types for mapStateToProps props\n// because react-redux is not smart enough\ntype TableContentProps = {\n reduxFilters: TypescriptAppliedFilter;\n forwardedRef: React.ForwardedRef<HTMLDivElement>;\n};\n\nconst TableContentComponent = (props: TableContentProps) => {\n const { forwardedRef } = props;\n const {\n tableProps: { height, width, pagination },\n allDataFlattened,\n visibleColumns,\n } = useContext(DataTableContext);\n\n const [shiftKeyPressed, setShiftKeyPressed] = useState(false);\n\n const PureTableContent = useMemo(\n () => (\n <StyledDataTableWrapper\n data-testid={DATA_TESTID.DATA_TABLE_CONTENT_WRAPPER}\n height={height}\n width={width}\n ref={forwardedRef}\n noSelectionAllowed={shiftKeyPressed}\n onKeyDown={(e) => setShiftKeyPressed((prevShiftKeyPressed) => prevShiftKeyPressed || e.shiftKey)}\n onKeyUp={(e) => setShiftKeyPressed((prevShiftKeyPressed) => prevShiftKeyPressed && e.code !== 'Shift')}\n >\n <StyledTableWrapper\n role=\"table\"\n aria-rowcount={allDataFlattened.length}\n aria-colcount={visibleColumns.length}\n data-testid={DATA_TESTID.DATA_TABLE_TABLE}\n height={height}\n width={width}\n >\n <VirtualRowsList />\n </StyledTableWrapper>\n {pagination ? <Pagination /> : null}\n </StyledDataTableWrapper>\n ),\n [height, width, forwardedRef, allDataFlattened.length, visibleColumns.length, pagination, shiftKeyPressed],\n );\n\n return PureTableContent;\n};\n\nconst ConnectedTableContent = connect(mapStateToProps)(TableContentComponent);\n\nconst TableContent = React.forwardRef<HTMLDivElement>((props, ref) => (\n <ConnectedTableContent {...props} forwardedRef={ref} />\n));\n\nexport default TableContent;\n","/* eslint-disable react/prop-types */\nimport React, { useContext } from 'react';\nimport GripperVertical from '@elliemae/ds-icons/GripperVertical';\nimport styled from 'styled-components';\nimport { SortableItemContext } from './HoC/SortableItemContext';\nimport { DATA_TESTID } from '../configs';\n\nconst StyledGripperButton = styled.div<{\n isActive: boolean;\n isDragOverlay: boolean;\n}>`\n cursor: ${({ isActive, isDragOverlay }) => (isActive || isDragOverlay ? 'grabbing' : 'grab')};\n outline: none;\n display: flex;\n align-items: center;\n touch-action: none;\n`;\n\nconst DragHandle: React.ComponentType<{\n id: string;\n isReachable: boolean;\n isDragOverlay: boolean;\n innerRef: React.RefObject<HTMLDivElement> | React.RefCallback<HTMLDivElement>;\n}> = ({ id, isReachable, isDragOverlay, innerRef }) => {\n const { draggableProps } = useContext(SortableItemContext);\n const isActive = draggableProps && !!draggableProps.active;\n const isDragging = draggableProps && draggableProps.isDragging;\n\n return (\n <StyledGripperButton\n role=\"button\"\n {...(draggableProps && {\n ...draggableProps.listeners,\n ...draggableProps.attributes,\n })}\n isActive={isActive}\n isDragOverlay={isDragOverlay}\n ref={innerRef}\n tabIndex={isReachable ? 0 : -1}\n data-testid={DATA_TESTID.DATA_TABLE_DRAG_HANDLE}\n id={`${id}-drag-handle`}\n key={`${id}-drag-handle`}\n >\n <GripperVertical size=\"s\" color={isDragging ? ['neutral', '500'] : ['brand-primary', '800']} />\n </StyledGripperButton>\n );\n};\nexport default DragHandle;\n","/* eslint-disable react/prop-types */\n/* eslint-disable max-lines */\nimport React from 'react';\nimport { useRecoverFocusRow } from '../../../hooks/useRecoverFocusRow';\nimport { DnDHandle } from '../../../parts';\nimport { StyledFocusWithin } from '../../../styled';\n\nimport { TypescriptColumn } from '../../../types/props';\n\nexport const dragHandleColumn: TypescriptColumn = {\n // Build our singleSelecter column\n id: 'dragHandleColumn', // Make sure it has an ID\n // The header doesn't need anything for single selection\n Header: () => <div />,\n Cell: ({ row, isRowSelected, cell, isDragOverlay, draggableProps }) => {\n useRecoverFocusRow(row, cell, isDragOverlay, draggableProps);\n return (\n <StyledFocusWithin\n style={{ width: '100%', height: '100%' }}\n hideFocus={draggableProps && draggableProps.isDragging}\n >\n <DnDHandle\n id={row.uid}\n key={row.uid}\n isReachable={isRowSelected}\n innerRef={(_ref) => {\n if (!isDragOverlay) cell.ref.current = _ref;\n }}\n isDragOverlay={isDragOverlay}\n />\n </StyledFocusWithin>\n );\n },\n textWrap: 'wrap-all',\n width: 24,\n padding: 4,\n canResize: false,\n disableDnD: true,\n isFocuseable: false,\n};\n","export { actionColumn } from './ColumnAction/ColumnAction';\nexport { expandRowColumn } from './ColumnExpand/ColumnExpand';\nexport { multiSelectColumn } from './ColumnSelectMultiple/ColumnSelectMultiple';\nexport { singleSelectColumn } from './ColumnSelectSingle/ColumnSelectSingle';\nexport { dragHandleColumn } from './ColumnDragHandle/ColumnDragHandle';\n\nexport const INTERNAL_COLUMNS = [\n 'rowActions',\n 'expander',\n 'multiSelecter',\n 'singleSelecter',\n 'dragHandleColumn',\n];\n","/* eslint-disable max-lines */\nimport styled from 'styled-components';\nimport Grid from '@elliemae/ds-grid';\nimport EditPencil from '@elliemae/ds-icons/EditPencil';\nimport { sizeToCss, cellPadding, columnPadding } from './helpers';\nimport { ZIndexDataTable, FIXED_SIZES, ColsLayoutStyle } from './configs';\n\ninterface WidthAndHeight {\n width?: string | number;\n height?: string | number;\n}\n\nconst styledFocusCss = ({ theme }) => `\n&:after {\n display: block;\n content: ' ';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n border: 2px solid ${theme.colors.brand[700]};\n pointer-events: none;\n z-index: ${ZIndexDataTable.FOCUS_BORDER};\n}`;\n\nexport const StyledFocusWithin = styled(Grid)`\n :focus-within {\n ${(props) => (props.hideFocus ? '' : styledFocusCss(props))}\n }\n`;\n\nexport const StyledDataTableWrapper = styled.div<WidthAndHeight & { noSelectionAllowed: boolean }>`\n width: ${(props) => sizeToCss(props.width ?? ' 100%')};\n height: ${(props) => sizeToCss(props.height ?? ' 100%')};\n user-select: ${({ noSelectionAllowed }) => (noSelectionAllowed ? 'none' : 'auto')};\n`;\nexport const StyledTableWrapper = styled.div<WidthAndHeight>`\n display: inline-block;\n border-spacing: 0;\n z-index: 0;\n position: relative;\n ${({ width = '100%', height = '100%' }) => `\n width: ${sizeToCss(width)};\n height: ${sizeToCss(height)};\n `}\n`;\nexport const StyledTableContentWrapper = styled.div<WidthAndHeight>`\n position: relative;\n ${({ height = 'auto' }) => `\n height: ${sizeToCss(height)};\n `}\n`;\nexport const StyledVirtualListWrapper = styled.div<WidthAndHeight>`\n overflow: auto;\n ${({ height = 'auto', width = '100%' }) => `\n height: ${sizeToCss(height)};\n width: ${sizeToCss(width)};\n `}\n`;\n\n/**\n * HEADER\n */\ntype gridTemplateColumnStyleProps = {\n cols: string[];\n isExpandable: boolean;\n colsLayoutStyle: ColsLayoutStyle;\n};\nconst getGridTemplateColumnsStyle = ({\n cols,\n colsLayoutStyle = ColsLayoutStyle.Auto,\n}: gridTemplateColumnStyleProps) => {\n if (!cols) return '';\n if (colsLayoutStyle === 'fixed') {\n const widthAttr = cols.map((col) => `minmax(0, ${col})`).join(' ');\n return `grid-template-columns: ${widthAttr}`;\n }\n\n return `grid-template-columns: ${cols.map((col) => `minmax(0, ${col})`).join(' ')}`;\n};\n\nexport const StyledHeadWrapper = styled.div<{\n colsLayoutStyle: string;\n totalColumnsWidth: number | string;\n}>`\n position: relative; /* ie11 fallback */\n position: sticky;\n top: 0;\n z-index: 4;\n background: white;\n width: ${(props) => (props.colsLayoutStyle === ColsLayoutStyle.Fixed ? sizeToCss(props.totalColumnsWidth) : '100%')};\n`;\n\nexport const StyledHeadTr = styled(Grid)`\n ${(props) => (props.colsLayoutStyle === ColsLayoutStyle.Auto ? 'width:100%' : '')};\n ${(props) =>\n getGridTemplateColumnsStyle({\n cols: props.cols,\n isExpandable: props.isExpandable,\n colsLayoutStyle: props.colsLayoutStyle,\n })};\n`;\n\nconst getStyledHeadTHBorderColor = (props) => {\n if (props.dragOverlay) return 'transparent';\n if (props.isFirstRowGroup) return 'transparent';\n return props.theme.colors.neutral['080'];\n};\n\nexport const StyledHeadTh = styled.div<any>`\n min-height: 24px;\n line-height: normal;\n font-weight: 600;\n text-transform: uppercase;\n font-size: 0.923rem;\n text-align: left;\n ${columnPadding}\n color: #353c46;\n min-height: 1.84615rem;\n position: relative;\n position: sticky;\n top: 0;\n z-index: ${ZIndexDataTable.HEADER_ROW};\n display: flex;\n justify-content: space-between;\n box-sizing: border-box;\n border-right: 1px solid ${(props) => props.theme.colors.neutral['080']};\n border-bottom: 1px solid ${getStyledHeadTHBorderColor};\n outline: none;\n\n :focus {\n &:after {\n display: block;\n content: ' ';\n position: absolute;\n top: 0;\n left: 0;\n right: -1px;\n bottom: -1px;\n border: 2px solid ${(props) => props.theme.colors.brand[700]};\n pointer-events: none;\n z-index: ${ZIndexDataTable.FOCUS_BORDER};\n }\n }\n\n ${(props) =>\n props.isDraggingActive\n ? ''\n : `:hover {\n border-bottom: 1px solid ${props.isDragOverlay ? 'transparent' : props.theme.colors.brand[800]};\n cursor: pointer;\n }`}\n`;\n\nexport const StyledHeaderRightIconsWrapper = styled.div`\n height: 100%;\n display: flex;\n align-items: center;\n max-height: 24px;\n`;\n\nexport const StyledResizer = styled.div<{ isResizing: boolean }>`\n display: inline-block;\n background: ${({ isResizing, theme }) => (isResizing ? theme.colors.brand[600] : theme.colors.brand[400])};\n width: 4px;\n height: 100%;\n position: absolute;\n right: 0;\n top: 0;\n z-index: 1;\n\n // prevents from scrolling while dragging on touch devices\n touch-action: none;\n\n cursor: col-resize;\n`;\n\n// CELL ***********************************************************************/\nexport const StyledActionCell = styled.div`\n position: relative; /* ie11 fallback */\n position: sticky;\n display: inline-block;\n right: 0;\n /* border-bottom: 1px solid #ebedf0; */\n background: white;\n`;\n\nexport const StyledCell = styled.div`\n ${cellPadding}\n /* border-bottom: 1px solid #ebedf0; */\n /* box-sizing: border-box; */\n display: flex;\n align-items: center;\n width: 100%;\n position: relative;\n`;\n\nexport const StyledCellContent = styled.div`\n display: grid;\n justify-self: flex-end;\n flex: 1 1 auto;\n width: 100%;\n height: 100%;\n align-items: center;\n`;\n\nexport const StyledPencilIcon = styled(EditPencil)``;\n\nexport const StyledEditableContainer = styled(Grid)`\n width: 100%;\n height: 100%;\n align-items: center;\n & ${StyledPencilIcon} {\n display: ${(props) => (props.shouldDisplayEditIcon ? 'block' : 'none')};\n }\n &:hover {\n ${StyledPencilIcon} {\n display: block;\n }\n }\n &:focus {\n ${styledFocusCss}\n ${StyledPencilIcon} {\n display: block;\n }\n }\n outline: none;\n`;\n\n// ROW ************************************************************************/\nexport const StyledFullsizeGrid = styled(Grid)`\n position: relative;\n z-index: ${ZIndexDataTable.ROW};\n\n min-height: ${(props) => props.minHeight || '36px'};\n height: ${(props) => props.height || 'auto'};\n /* width: ${(props) =>\n props.colsLayoutStyle === ColsLayoutStyle.Fixed ? sizeToCss(props.totalColumnsWidth) : '100%'}; */\n`;\n\nexport const GroupHeaderContainer = styled(Grid)<{ padding: string }>`\n position: relative;\n background-color: ${({ theme }) => theme.colors.brand[200]};\n align-items: center;\n padding: 0 ${(props) => props.padding};\n border-top: 1px solid ${({ theme }) => theme.colors.brand[300]};\n grid-template-columns: min-content 1fr;\n`;\n\nexport const GroupHeaderTitle = styled.span`\n font-weight: ${(props) => props.theme.fontWeights.semibold};\n font-size: 12px;\n color: ${(props) => props.theme.colors.neutral[700]};\n`;\n\nexport const StyledCellContainer = styled(Grid)`\n position: relative;\n z-index: 2;\n\n min-height: ${(props) => props.minHeight || '36px'};\n height: ${(props) => props.height || 'auto'};\n\n width: ${(props) => (props.colLayoutStyle === ColsLayoutStyle.Fixed ? sizeToCss(props.totalColumnsWidth) : '100%')};\n ${(props) =>\n getGridTemplateColumnsStyle({\n cols: props.cols,\n colsLayoutStyle: props.colLayoutStyle,\n isExpandable: props.isExpandable,\n })};\n background-color: ${({ backgroundColor, isDragging, theme }) =>\n isDragging ? theme.colors.neutral[100] : backgroundColor || 'white'};\n\n outline: none;\n\n :focus {\n ${(props) => (props.isDragOverlay ? '' : styledFocusCss(props))}\n }\n\n ${({ isDropIndicatorPositionInside, theme }) => {\n if (!isDropIndicatorPositionInside) return '';\n return styledFocusCss({ theme });\n }}\n\n ${({ shouldDisplayHover, theme }) =>\n shouldDisplayHover\n ? `:hover {\n background-color: ${theme.colors.brand[200]};\n }`\n : ''}\n\n box-shadow: 0 2px 4px 0 ${(props) => (props.isDragOverlay ? 'rgba(0,0,0,0.5)' : 'transparent')};\n\n opacity: ${(props) => (props.isDragging ? 0.8 : 1)};\n\n ${(props) =>\n !props.selected\n ? ''\n : `\n background-color: ${props.theme.colors.brand[200]};\n `}\n\n color: ${(props) => (props.disabled ? props.theme.colors.neutral['500'] : '#333333')};\n`;\n\n// PAGINATION ************************************************************************/\n\nexport const PaginationContainer = styled(Grid)`\n padding: 0 ${(props) => props.theme.space.xs};\n height: ${FIXED_SIZES.PAGINATION_HEIGHT}px;\n width: ${(props) => sizeToCss(props.width) || '100%'};\n max-width: 100%;\n align-items: center;\n`;\n\nexport const PaginationWrapper = styled.div`\n display: flex;\n margin: 5px 0;\n justify-content: flex-end;\n`;\n"],"names":["StyledSpan","styled","span","expandRowColumn","id","accessor","Header","ctx","tableProps","expandedRows","onRowExpand","allDataFlattened","allExpandable","useMemo","expandable","forEach","row","original","subRows","tableRowDetails","dimsumHeaderValue","uid","isAllRowsExpanded","Object","keys","length","onExpandedAllHandler","useCallback","GlobalExpandIcon","React","ArrowheadDown","DATA_TESTID","DATA_TABLE_ICON_ARROW_DOWN","ArrowheadRight","DATA_TABLE_ICON_ARROW_MIXED","transform","DATA_TABLE_ICON_ARROW_RIGHT","e","includes","code","preventDefault","DATA_TABLE_GLOBAL_EXPAND_CELL","width","height","Cell","cell","isRowSelected","draggableProps","dragAndDropRows","uniqueId","isExpanded","shouldPrintCaret","depth","onRowExpandHandler","stopPropagation","isDragging","isDragOverlay","indentStyle","marginLeft","marginRight","paddingLeft","paddingRight","position","display","alignItems","rowProps","role","key","title","onClick","onKeyDown","ref","tabIndex","isRightArrow","PureCaretIcon","ChildIcon","ArrowShortReturn","DATA_TABLE_ICON_CHILD","textWrap","canResize","padding","isFocuseable","disableDnD","multiSelectColumn","onSelectionChange","selection","data","disabledRows","selectionKeyCount","currentGlobalState","newGlobalStateAfterToggle","newState","newSelection","nextSelection","datum","onChangeHandler","PureHeaderCheckbox","DSCheckbox","DATA_TABLE_GLOBAL_CHECKBOX","cursor","selectedState","PureCheckboxCell","DATA_TABLE_CHECKBOX","CenteredContent","div","StyledDSRadio","DSRadio","singleSelectColumn","PureCheckBox","DATA_TABLE_RADIO","InlineDSButton","DSButton","PagesButtons","props","canPreviousPage","canNextPage","pageIndex","pageCount","onNextPage","onPreviousPage","onPageChange","DATA_TABLE_PAGINATION_PREVIOUS_BUTTON","ActiveZoneButtons","DATA_TABLE_PAGINATION_NEXT_BUTTON","propTypes","PropTypes","bool","isRequired","number","func","Pagination","useContext","DataTableContext","pagination","onPageChanged","paginationHelpers","pageSize","onPageSizeChange","page","flattenedData","totalColumnsWidth","layoutHelpers","originalPage","map","useEffect","DATA_TABLE_PAGINATION_CONTAINER","PerPageSelector","StyledRowLoadingContainer","Grid","RowLoading","PureLoading","DATA_TABLE_ROW","DSIndeterminateProgressIndicator","FilterButton","hide","Button","FilterPopover","column","columnId","triggerIcon","menuContent","onTriggerClick","onClickOutsideMenu","reduxHeader","innerRef","ariaLabel","hideFilterButton","hideFilterMenu","popperRef","useRef","useDispatchHeadersActions","patchHeaderFilterButtonAndMenu","patchHeader","isIconVisible","isMenuOpen","handleClickOutsideMenu","handleTriggerClick","useState","referenceElement","setReferenceElement","focus","target","current","contains","relatedTarget","DATA_TABLE_FILTER_BUTTON","_ref","withTabStops","DSPopperJS","DATA_TABLE_FILTER_MENU_CONTENT","minWidth","offsetWidth","backgroundColor","EditableCell","StandardRender","EditableRenderer","virtualListHelpers","isEditing","setIsEditing","lastIsEditing","setLastIsEditing","useLayoutEffect","measure","handleCellClick","handleOnKeyDown","handleOnBlur","event","currentTarget","alwaysDisplayEditIcon","undefined","oneOfType","object","singleDateFilterFn","unfilteredData","filterKey","filterValue","filter","moment","momentFormat","isSame","dateRangeFilterFn","startDate","endDate","isSameOrBefore","isSameOrAfter","filterMapper","FILTER_TYPES","SELECT","singleSelectFilterFn","MULTI_SELECT","multiSelectFilterFn","TEXT","textFilterFn","SINGLE_DATE","DATE_RANGE","NUMBER_RANGE","numberRangeFilterFn","applyOutOfTheBoxFilters","filters","filteredData","type","value","StyledInput","input","theme","colors","brand","TextEditableCell","DefaultCellRender","onCellValueChange","setValue","handleOnChange","tValue","property","rowIndex","index","editableCellPropType","ComboboxEditableCell","cellValue","label","uniqueOptions","uniqueValuesMap","reduce","optionsSoFar","currRow","currValue","push","ComboBoxFreeSolo","outOfTheBoxEditables","EditableComponent","PureStandardCell","memo","cellStyle","children","DATA_TABLE_CELL","shouldAddExpandCell","cellRendererProps","SortableItemContext","useCellStyle","appliedTextWrap","cellProps","CellComponent","render","pureCellContent","DefaultCellContentJSX","SimpleTruncatedTooltipText","EditableContentJSX","editable","Cells","userCellsProcessed","cells","isUserCell","INTERNAL_COLUMNS","jsx","ActionComponent","DetailsWrapper","borderTop","borderBottom","ariaLabelMessage","selected","realIndex","parentIndex","DefaultRowContentRenderer","isExpandable","colsLayoutStyle","noSelectionColumn","gridLayout","visibleColumns","dropIndicatorPosition","focusedRowId","selectedRowId","compact","rowRef","isDndActive","active","preventScroll","gridTemplateColProps","cols","colLayoutStyle","detailsIndent","i","PureRowContent","DetailsView","DropIndicatorPosition","Inside","DATA_TABLE_ROW_CONTENT","useRowRendererHandlers","itemIndex","items","onRowClick","onRowFocus","scrollToIndex","useDispatchRowsActions","setSelectedRowId","setFocusedRowId","handleItemClick","scrollToItem","opts","align","isActive","handleKeyDown","setTimeout","focuseableCell","find","getAttribute","handleOnFocus","magicDottedBorder","RowRenderer","minHeight","rowsLayout","CustomRowContentRenderer","useRowRendererProperties","userDataProperties","rowStyle","shouldAppendDottedBorder","rowContentProps","Boolean","DropIndicator","RowContent","groupedRowsRenderHeader","hasExpandCell","titleContent","DATA_TABLE_ROW_HEADER_CONTENT","DATA_TABLE_ROW_GROUP_HEADER","RowVariantHeader","RowVariantPrimary","RowVariantSecondary","RowVariantMapper","ROW_VARIANTS","HEADER_GROUP","PRIMARY","SECONDARY","COMPACT_PRIMARY","COMPACT_SECONDARY","RowVariantMapItem","getRowVariant","variant","Component","Error","setItemRefs","measureRef","draggableRef","refsToSet","setMultipleRefs","Row","itemWrapperStyle","setNodeRef","string","defaultProps","mapStateToProps","state","rows","withDnDSortableRowContext","connect","Rows","virtualItems","DnDTreeContext","visibleItems","PureVirtualizedRows","virtualItem","start","addCellData","style","top","left","withConditionalDnDRowContext","useHierarchyPreviewHandlers","setOverId","setActiveId","resetState","document","body","setProperty","el","querySelector","DATA_TABLE_SCROLLABLE_CONTAINER","onscroll","handlePreviewDragStart","y","scrollTop","scrollTo","handlePreviewDragMove","handlePreviewDragOver","over","handlePreviewDragEnd","handlePreviewDragCancel","directions","KeyboardCode","Down","Right","Up","Left","vertical","getHorizontalKeyboardCoordinates","currentCoordinates","droppableContainers","translatedRect","activeItem","item","overRect","rect","layoutRects","entries","container","disabled","node","itemParent","parentId","getViewRect","right","dragOverlayRect","DATA_TABLE_COLUMN_DRAG_OVERLAY","getBoundingClientRect","closestId","closestCorners","closestRect","activeRect","x","offsetLeft","getHierarchyKeyboardCoordinates","context","isHorizontalDnD","args","customCollisionDetection","activeId","activeParent","dndItems","entriesWithSameParent","originalRect","isLeft","match","collisionPoint","entry","offsetRight","Math","abs","adjustTranslate","newTransform","layoutMeasuring","strategy","LayoutMeasuringStrategy","Always","useHierarchyDndkitConfig","flattenedItems","onReorder","overId","itemsDictionary","dictionary","modifiers","options","sensorContext","coordinateGetter","sensors","useSensors","useSensor","PointerSensor","KeyboardSensor","dragPreviewHandlers","dragActionHandlers","useHierarchyActionHandlers","announcements","useHierarchyAnnouncements","dndContextProps","collisionDetection","activeIndex","DnDGroupContext","createContext","flattenColumns","flattened","flatten","col","columns","subColumn","childIndex","withConditionalDnDColumnContext","dragAndDropColumns","onColumnsReorder","PureDraggedJSX","setPureDraggedJSX","movedItem","indexes","newFlattenedData","arrayMove","fromIndex","targetIndex","nodes","dndData","colData","newData","parentNode","DndContext","DragOverlayContext","DragOverlay","emptyFilterValue","DateRangeFilter","onValueChange","dateRange","setStartDate","setEndDate","DATA_TABLE_DATE_RANGE_CONTROLLER","DSControlledDateRangePicker","DatePickerIcon","NumberRangeFilter","from","to","handleFromChange","parseInt","nextValue","handleToChange","DATA_TABLE_NUMBER_RANGE_CONTROLLER","DSTextBox","SearchIcon","focusNextMenuItem","menuItems","querySelectorAll","DATA_TABLE_SELECT_MENU_ITEM","focusPrevMenuItem","useSelectFilterHandlers","isSingle","isMulti","selectedItems","handleSelectItem","option","nextSelectedItems","opt","onInputWrapperKeyDown","onMenuItemClick","onMenuItemKeyDown","virtualIndex","inputRef","BaseSelectFilter","userFilterOptions","filterOptions","rest","Set","toString","Array","isArray","inputValue","setInputValue","filteredOptions","setFilteredOptions","virtualListRef","useVirtual","size","parentRef","overscan","totalSize","handleInputChange","filtered","toLowerCase","Select","Wrapper","InputWrapper","Input","VirtualListWrapper","MenuList","MenuItem","outline","CheckBox","SingleSelectFilter","DATA_TABLE_SINGLESELECT_CONTROLLER","MultiSelectFilter","DATA_TABLE_MULTISELECT_CONTROLLER","SingleDateFilter","date","setDate","commitDateChange","DATA_TABLE_SINGLE_DATE_CONTROLLER","DSControlledDateTimePicker","TextInputFilter","count","handleChange","newText","FilterMapper","FilterMapItem","onFiltersChange","newValue","filterIndex","findIndex","newFilters","filterProps","FilterComp","Filter","narrow","min","max","Infinity","HeaderResizer","setGridLayout","onColumnResize","isResizing","setIsResizing","nextWidth","setNextWidth","visibleColumnsCopy","realColumnIndex","visibleColumn","columnsToGrid","ColsLayoutStyle","Fixed","onResizeStart","onResizeHandler","delta","clientX","widthWithDelta","maxWidth","onResizeEnd","debouncedResizeHandler","debouncedResizeEnd","addEvents","addEventListener","removeEvents","removeEventListener","StringTitle","HeaderCellTitle","DATA_TABLE_HEADER_CELL_TITLE","required","RequiredDot","buildScreenReaderInstructions","colSpan","draggable","filterable","sortable","preffix","message","ownProps","headers","connector","HeaderCellComp","isResizeable","onColumnSortChange","dragHandleRef","filterIconRef","useHeaderCellConfig","hasFilter","hasDnD","hasSortingCaret","hasRightIcons","shouldShowDnD","hCols","useRecoverFocusCol","rightIcons","SortByCaret","isSortedDesc","DnDHandleComponent","DnDHandle","handlers","useHeaderCellHandlers","headerRef","DATA_TABLE_HEADER","canSort","HeaderCell","withDnDSortableColumnContext","draggableOptions","header","useSortableHelpers","useSortable","PureComponentJSX","overIndex","shouldShowDropIndicatorPosition","After","Before","cloneElement","StyledWrapper","gridColumn","neutral","HeaderCellGroupComp","isDraggingParent","isLast","ChildGroup","NotSortableHeaderCellGroup","HeaderCellGroup","SortableHeaderCell","h","EmptyChildrenGroup","any","HeadersComp","columnHeaderRef","HeadersCells","PureHeaders","relativeRowMouseCord","VirtualRowsListComponent","isLoading","isLoadingAppended","isEmptyContent","tableHeight","Number","FIXED_SIZES","PAGINATION_HEIGHT","ctrlKey","EmptyContent","Loader","Footer","VirtualRowsList","reduxFilters","TableContentComponent","forwardedRef","shiftKeyPressed","setShiftKeyPressed","PureTableContent","DATA_TABLE_CONTENT_WRAPPER","prevShiftKeyPressed","shiftKey","DATA_TABLE_TABLE","ConnectedTableContent","TableContent","forwardRef","StyledGripperButton","DragHandle","isReachable","listeners","attributes","DATA_TABLE_DRAG_HANDLE","GripperVertical","dragHandleColumn","useRecoverFocusRow","styledFocusCss","ZIndexDataTable","FOCUS_BORDER","StyledFocusWithin","hideFocus","StyledDataTableWrapper","sizeToCss","noSelectionAllowed","StyledTableWrapper","StyledTableContentWrapper","StyledVirtualListWrapper","getGridTemplateColumnsStyle","Auto","widthAttr","join","StyledHeadWrapper","StyledHeadTr","getStyledHeadTHBorderColor","dragOverlay","isFirstRowGroup","StyledHeadTh","columnPadding","HEADER_ROW","isDraggingActive","StyledHeaderRightIconsWrapper","StyledResizer","StyledActionCell","StyledCell","cellPadding","StyledCellContent","StyledPencilIcon","EditPencil","StyledEditableContainer","shouldDisplayEditIcon","StyledFullsizeGrid","ROW","GroupHeaderContainer","GroupHeaderTitle","fontWeights","semibold","StyledCellContainer","isDropIndicatorPositionInside","shouldDisplayHover","PaginationContainer","space","xs","PaginationWrapper"],"mappings":"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"}