@elliemae/ds-data-table 3.1.0-next.1 → 3.1.0-next.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/DataTable.js +3 -1
- package/dist/cjs/DataTable.js.map +2 -2
- package/dist/cjs/addons/Columns/ColumnExpand/ColumnExpand.js +3 -3
- package/dist/cjs/addons/Columns/ColumnExpand/ColumnExpand.js.map +2 -2
- package/dist/cjs/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.js +3 -3
- package/dist/cjs/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.js.map +2 -2
- package/dist/cjs/addons/Editables/TextEditableCell/TextEditableCell.js +2 -2
- package/dist/cjs/addons/Editables/TextEditableCell/TextEditableCell.js.map +2 -2
- package/dist/cjs/addons/Filters/Components/SelectFilter/components.js +7 -7
- package/dist/cjs/addons/Filters/Components/SelectFilter/components.js.map +2 -2
- package/dist/cjs/configs/useDatatableConfig.js +6 -1
- package/dist/cjs/configs/useDatatableConfig.js.map +2 -2
- package/dist/cjs/exported-related/FilterPopover.js +4 -4
- package/dist/cjs/exported-related/FilterPopover.js.map +2 -2
- package/dist/cjs/exported-related/Toolbar/Toolbar.js +20 -6
- package/dist/cjs/exported-related/Toolbar/Toolbar.js.map +2 -2
- package/dist/cjs/parts/DnDHandle.js +2 -2
- package/dist/cjs/parts/DnDHandle.js.map +2 -2
- package/dist/cjs/parts/DropIndicator.js +2 -2
- package/dist/cjs/parts/DropIndicator.js.map +2 -2
- package/dist/cjs/parts/EmptyContent.js +11 -11
- package/dist/cjs/parts/EmptyContent.js.map +2 -2
- package/dist/cjs/parts/FilterBar/FiltersBar.js +7 -1
- package/dist/cjs/parts/FilterBar/FiltersBar.js.map +2 -2
- package/dist/cjs/parts/FilterBar/styled.js +3 -3
- package/dist/cjs/parts/FilterBar/styled.js.map +2 -2
- package/dist/cjs/parts/Headers/EmptyChildrenGroup.js +2 -2
- package/dist/cjs/parts/Headers/EmptyChildrenGroup.js.map +2 -2
- package/dist/cjs/parts/Headers/HeaderCell.js +1 -1
- package/dist/cjs/parts/Headers/HeaderCell.js.map +2 -2
- package/dist/cjs/parts/Headers/HeaderCellGroup.js +2 -2
- package/dist/cjs/parts/Headers/HeaderCellGroup.js.map +2 -2
- package/dist/cjs/parts/Headers/HeaderResizer.js +16 -7
- package/dist/cjs/parts/Headers/HeaderResizer.js.map +2 -2
- package/dist/cjs/parts/Loader.js +2 -2
- package/dist/cjs/parts/Loader.js.map +2 -2
- package/dist/cjs/parts/RowLoading.js +2 -2
- package/dist/cjs/parts/RowLoading.js.map +2 -2
- package/dist/cjs/parts/SortableHeaderCell.js +5 -1
- package/dist/cjs/parts/SortableHeaderCell.js.map +2 -2
- package/dist/cjs/parts/TableContent.js +6 -8
- package/dist/cjs/parts/TableContent.js.map +2 -2
- package/dist/cjs/parts/VirtualRowsList.js +1 -9
- package/dist/cjs/parts/VirtualRowsList.js.map +2 -2
- package/dist/cjs/styled.js +25 -30
- package/dist/cjs/styled.js.map +2 -2
- package/dist/esm/DataTable.js +3 -1
- package/dist/esm/DataTable.js.map +2 -2
- package/dist/esm/addons/Columns/ColumnExpand/ColumnExpand.js +1 -1
- package/dist/esm/addons/Columns/ColumnExpand/ColumnExpand.js.map +1 -1
- package/dist/esm/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.js +1 -1
- package/dist/esm/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.js.map +1 -1
- package/dist/esm/addons/Editables/TextEditableCell/TextEditableCell.js +1 -1
- package/dist/esm/addons/Editables/TextEditableCell/TextEditableCell.js.map +1 -1
- package/dist/esm/addons/Filters/Components/SelectFilter/components.js +1 -1
- package/dist/esm/addons/Filters/Components/SelectFilter/components.js.map +1 -1
- package/dist/esm/configs/useDatatableConfig.js +6 -1
- package/dist/esm/configs/useDatatableConfig.js.map +2 -2
- package/dist/esm/exported-related/FilterPopover.js +1 -1
- package/dist/esm/exported-related/FilterPopover.js.map +1 -1
- package/dist/esm/exported-related/Toolbar/Toolbar.js +17 -3
- package/dist/esm/exported-related/Toolbar/Toolbar.js.map +2 -2
- package/dist/esm/parts/DnDHandle.js +1 -1
- package/dist/esm/parts/DnDHandle.js.map +1 -1
- package/dist/esm/parts/DropIndicator.js +1 -1
- package/dist/esm/parts/DropIndicator.js.map +1 -1
- package/dist/esm/parts/EmptyContent.js +5 -5
- package/dist/esm/parts/EmptyContent.js.map +2 -2
- package/dist/esm/parts/FilterBar/FiltersBar.js +7 -1
- package/dist/esm/parts/FilterBar/FiltersBar.js.map +2 -2
- package/dist/esm/parts/FilterBar/styled.js +1 -1
- package/dist/esm/parts/FilterBar/styled.js.map +1 -1
- package/dist/esm/parts/Headers/EmptyChildrenGroup.js +1 -1
- package/dist/esm/parts/Headers/EmptyChildrenGroup.js.map +1 -1
- package/dist/esm/parts/Headers/HeaderCell.js +1 -1
- package/dist/esm/parts/Headers/HeaderCell.js.map +2 -2
- package/dist/esm/parts/Headers/HeaderCellGroup.js +1 -1
- package/dist/esm/parts/Headers/HeaderCellGroup.js.map +1 -1
- package/dist/esm/parts/Headers/HeaderResizer.js +16 -7
- package/dist/esm/parts/Headers/HeaderResizer.js.map +2 -2
- package/dist/esm/parts/Loader.js +1 -1
- package/dist/esm/parts/Loader.js.map +1 -1
- package/dist/esm/parts/RowLoading.js +1 -1
- package/dist/esm/parts/RowLoading.js.map +1 -1
- package/dist/esm/parts/SortableHeaderCell.js +5 -1
- package/dist/esm/parts/SortableHeaderCell.js.map +2 -2
- package/dist/esm/parts/TableContent.js +6 -8
- package/dist/esm/parts/TableContent.js.map +2 -2
- package/dist/esm/parts/VirtualRowsList.js +1 -9
- package/dist/esm/parts/VirtualRowsList.js.map +2 -2
- package/dist/esm/styled.js +7 -12
- package/dist/esm/styled.js.map +2 -2
- package/package.json +28 -32
|
@@ -30,21 +30,21 @@ var import_ds_grid = require("@elliemae/ds-grid");
|
|
|
30
30
|
var import_ds_icons = require("@elliemae/ds-icons");
|
|
31
31
|
var import_ds_system = require("@elliemae/ds-system");
|
|
32
32
|
var import_ds_button = require("@elliemae/ds-button");
|
|
33
|
-
var
|
|
33
|
+
var import_ds_system2 = require("@elliemae/ds-system");
|
|
34
34
|
var import_prop_types = __toESM(require("prop-types"));
|
|
35
35
|
var import_DataTableContext = require("../DataTableContext");
|
|
36
|
-
const EmptyStateWrapper = (0,
|
|
36
|
+
const EmptyStateWrapper = (0, import_ds_system2.styled)(import_ds_grid.Grid)`
|
|
37
37
|
position: sticky;
|
|
38
38
|
height: fit-content;
|
|
39
39
|
top: 0;
|
|
40
40
|
left: 0;
|
|
41
41
|
`;
|
|
42
|
-
const Icon = (0,
|
|
42
|
+
const Icon = (0, import_ds_system2.styled)(import_ds_icons.WarningTriangle)`
|
|
43
43
|
fill: ${(props) => props.theme.colors.neutral[300]};
|
|
44
44
|
color: ${(props) => props.theme.colors.neutral[300]};
|
|
45
45
|
justify-self: center;
|
|
46
46
|
`;
|
|
47
|
-
const PrimaryMessage =
|
|
47
|
+
const PrimaryMessage = import_ds_system2.styled.p`
|
|
48
48
|
text-align: center;
|
|
49
49
|
font-weight: bold;
|
|
50
50
|
font-size: ${(props) => (0, import_ds_system.toMobile)(props.theme.fontSizes.value[400])};
|
|
@@ -52,18 +52,18 @@ const PrimaryMessage = import_styled_components.default.p`
|
|
|
52
52
|
margin-top: ${(props) => (0, import_ds_system.__UNSAFE_SPACE_TO_DIMSUM)(props.theme.space.s)};
|
|
53
53
|
margin-bottom: ${(props) => (0, import_ds_system.__UNSAFE_SPACE_TO_DIMSUM)(props.theme.space.xs)};
|
|
54
54
|
`;
|
|
55
|
-
const SecondaryMessage =
|
|
55
|
+
const SecondaryMessage = import_ds_system2.styled.p`
|
|
56
56
|
text-align: center;
|
|
57
57
|
font-size: ${(props) => (0, import_ds_system.toMobile)(props.theme.fontSizes.value[400])}; /* 13px */
|
|
58
58
|
color: ${(props) => props.theme.colors.neutral[500]};
|
|
59
59
|
margin: 0;
|
|
60
60
|
`;
|
|
61
|
-
const Button = (0,
|
|
61
|
+
const Button = (0, import_ds_system2.styled)(import_ds_button.DSButton)`
|
|
62
62
|
margin-top: ${(props) => (0, import_ds_system.__UNSAFE_SPACE_TO_DIMSUM)(props.theme.space.m)};
|
|
63
63
|
justify-self: center;
|
|
64
64
|
width: fit-content;
|
|
65
65
|
`;
|
|
66
|
-
const CenterContentFlexWrapper =
|
|
66
|
+
const CenterContentFlexWrapper = import_ds_system2.styled.div`
|
|
67
67
|
width: ${({ width }) => width}px;
|
|
68
68
|
height: calc(100% - 48px);
|
|
69
69
|
display: flex;
|
|
@@ -76,9 +76,9 @@ const EmptyContent = ({ width }) => {
|
|
|
76
76
|
noResultsMessage,
|
|
77
77
|
noResultsSecondaryMessage,
|
|
78
78
|
noResultsButtonLabel,
|
|
79
|
-
onNoResultsButtonClick
|
|
80
|
-
|
|
81
|
-
|
|
79
|
+
onNoResultsButtonClick
|
|
80
|
+
},
|
|
81
|
+
virtualListRef
|
|
82
82
|
} = (0, import_react.useContext)(import_DataTableContext.DataTableContext);
|
|
83
83
|
if (import_react.default.isValidElement(noResultsPlaceholder))
|
|
84
84
|
return /* @__PURE__ */ import_react.default.createElement(CenterContentFlexWrapper, {
|
|
@@ -89,7 +89,7 @@ const EmptyContent = ({ width }) => {
|
|
|
89
89
|
"aria-live": "assertive",
|
|
90
90
|
role: "status"
|
|
91
91
|
}, /* @__PURE__ */ import_react.default.createElement(EmptyStateWrapper, {
|
|
92
|
-
width:
|
|
92
|
+
width: virtualListRef.current?.clientWidth,
|
|
93
93
|
justifyContent: "center"
|
|
94
94
|
}, /* @__PURE__ */ import_react.default.createElement(Icon, {
|
|
95
95
|
size: "xxl"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/parts/EmptyContent.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["import React, { useContext } from 'react';\nimport { Grid } from '@elliemae/ds-grid';\nimport { WarningTriangle } from '@elliemae/ds-icons';\nimport { __UNSAFE_SPACE_TO_DIMSUM, toMobile } from '@elliemae/ds-system';\nimport { DSButton } from '@elliemae/ds-button';\nimport styled from '
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAkC;AAClC,qBAAqB;AACrB,sBAAgC;AAChC,uBAAmD;AACnD,uBAAyB;AACzB
|
|
4
|
+
"sourcesContent": ["import React, { useContext } from 'react';\nimport { Grid } from '@elliemae/ds-grid';\nimport { WarningTriangle } from '@elliemae/ds-icons';\nimport { __UNSAFE_SPACE_TO_DIMSUM, toMobile } from '@elliemae/ds-system';\nimport { DSButton } from '@elliemae/ds-button';\nimport { styled } from '@elliemae/ds-system';\nimport PropTypes from 'prop-types';\n\nimport { DataTableContext } from '../DataTableContext';\n\nconst EmptyStateWrapper = styled(Grid)`\n position: sticky;\n height: fit-content;\n top: 0;\n left: 0;\n`;\nconst Icon = styled(WarningTriangle)`\n fill: ${(props) => props.theme.colors.neutral[300]};\n color: ${(props) => props.theme.colors.neutral[300]};\n justify-self: center;\n`;\nconst PrimaryMessage = styled.p`\n text-align: center;\n font-weight: bold;\n font-size: ${(props) => toMobile(props.theme.fontSizes.value[400])};\n color: ${(props) => props.theme.colors.neutral[600]};\n margin-top: ${(props) => __UNSAFE_SPACE_TO_DIMSUM(props.theme.space.s)};\n margin-bottom: ${(props) => __UNSAFE_SPACE_TO_DIMSUM(props.theme.space.xs)};\n`;\nconst SecondaryMessage = styled.p`\n text-align: center;\n font-size: ${(props) => toMobile(props.theme.fontSizes.value[400])}; /* 13px */\n color: ${(props) => props.theme.colors.neutral[500]};\n margin: 0;\n`;\nconst Button = styled(DSButton)`\n margin-top: ${(props) => __UNSAFE_SPACE_TO_DIMSUM(props.theme.space.m)};\n justify-self: center;\n width: fit-content;\n`;\nconst CenterContentFlexWrapper = styled.div<{ width: number | string }>`\n width: ${({ width }) => width}px;\n height: calc(100% - 48px);\n display: flex;\n align-items: center;\n`;\n\nconst EmptyContent: React.ComponentType<{ width: string | number }> = ({ width }) => {\n const {\n tableProps: {\n noResultsPlaceholder,\n noResultsMessage,\n noResultsSecondaryMessage,\n noResultsButtonLabel,\n onNoResultsButtonClick,\n },\n virtualListRef,\n } = useContext(DataTableContext);\n\n if (React.isValidElement(noResultsPlaceholder))\n return <CenterContentFlexWrapper width={width}>{noResultsPlaceholder}</CenterContentFlexWrapper>;\n\n return (\n <CenterContentFlexWrapper width={width} aria-live=\"assertive\" role=\"status\">\n <EmptyStateWrapper width={virtualListRef.current?.clientWidth} justifyContent=\"center\">\n <Icon size=\"xxl\" />\n <PrimaryMessage>{noResultsMessage}</PrimaryMessage>\n {noResultsSecondaryMessage ? <SecondaryMessage>{noResultsSecondaryMessage}</SecondaryMessage> : null}\n {noResultsButtonLabel && onNoResultsButtonClick ? (\n <Button buttonType=\"secondary\" labelText={noResultsButtonLabel} onClick={onNoResultsButtonClick} />\n ) : null}\n </EmptyStateWrapper>\n </CenterContentFlexWrapper>\n );\n};\n\nEmptyContent.propTypes = {\n width: PropTypes.number,\n};\n\nexport { EmptyContent };\nexport default EmptyContent;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAkC;AAClC,qBAAqB;AACrB,sBAAgC;AAChC,uBAAmD;AACnD,uBAAyB;AACzB,wBAAuB;AACvB,wBAAsB;AAEtB,8BAAiC;AAEjC,MAAM,oBAAoB,8BAAO,mBAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAMrC,MAAM,OAAO,8BAAO,+BAAe;AAAA,UACzB,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA,WACrC,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA;AAAA;AAGjD,MAAM,iBAAiB,yBAAO;AAAA;AAAA;AAAA,eAGf,CAAC,UAAU,+BAAS,MAAM,MAAM,UAAU,MAAM,IAAI;AAAA,WACxD,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA,gBACjC,CAAC,UAAU,+CAAyB,MAAM,MAAM,MAAM,CAAC;AAAA,mBACpD,CAAC,UAAU,+CAAyB,MAAM,MAAM,MAAM,EAAE;AAAA;AAE3E,MAAM,mBAAmB,yBAAO;AAAA;AAAA,eAEjB,CAAC,UAAU,+BAAS,MAAM,MAAM,UAAU,MAAM,IAAI;AAAA,WACxD,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA;AAAA;AAGjD,MAAM,SAAS,8BAAO,yBAAQ;AAAA,gBACd,CAAC,UAAU,+CAAyB,MAAM,MAAM,MAAM,CAAC;AAAA;AAAA;AAAA;AAIvE,MAAM,2BAA2B,yBAAO;AAAA,WAC7B,CAAC,EAAE,YAAY;AAAA;AAAA;AAAA;AAAA;AAM1B,MAAM,eAAgE,CAAC,EAAE,YAAY;AACnF,QAAM;AAAA,IACJ,YAAY;AAAA,MACV;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,IAEF;AAAA,MACE,6BAAW,wCAAgB;AAE/B,MAAI,qBAAM,eAAe,oBAAoB;AAC3C,WAAO,mDAAC;AAAA,MAAyB;AAAA,OAAe,oBAAqB;AAEvE,SACE,mDAAC;AAAA,IAAyB;AAAA,IAAc,aAAU;AAAA,IAAY,MAAK;AAAA,KACjE,mDAAC;AAAA,IAAkB,OAAO,eAAe,SAAS;AAAA,IAAa,gBAAe;AAAA,KAC5E,mDAAC;AAAA,IAAK,MAAK;AAAA,GAAM,GACjB,mDAAC,sBAAgB,gBAAiB,GACjC,4BAA4B,mDAAC,wBAAkB,yBAA0B,IAAsB,MAC/F,wBAAwB,yBACvB,mDAAC;AAAA,IAAO,YAAW;AAAA,IAAY,WAAW;AAAA,IAAsB,SAAS;AAAA,GAAwB,IAC/F,IACN,CACF;AAEJ;AAEA,aAAa,YAAY;AAAA,EACvB,OAAO,0BAAU;AACnB;AAGA,IAAO,uBAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -57,9 +57,11 @@ const FiltersBar = () => {
|
|
|
57
57
|
const removeAllFilters = (0, import_react.useCallback)(() => {
|
|
58
58
|
onFiltersChange([]);
|
|
59
59
|
filterBarProps?.onClearAllFiltersClick?.();
|
|
60
|
+
setIsOpen(false);
|
|
60
61
|
}, [onFiltersChange, filterBarProps?.onClearAllFiltersClick]);
|
|
61
62
|
const onFilterBarClose = (0, import_react.useCallback)(() => {
|
|
62
63
|
filterBarProps?.onDropdownMenuToggle?.(false, "onClose");
|
|
64
|
+
dropdownMenuRef.current.focus();
|
|
63
65
|
setIsOpen(false);
|
|
64
66
|
}, [filterBarProps?.onDropdownMenuToggle]);
|
|
65
67
|
const onFilterBarOpen = (0, import_react.useCallback)(() => {
|
|
@@ -114,7 +116,11 @@ const FiltersBar = () => {
|
|
|
114
116
|
{
|
|
115
117
|
id: "__internal__option__clear__filters",
|
|
116
118
|
label: "Clear Filters",
|
|
117
|
-
onClick: removeAllFilters
|
|
119
|
+
onClick: removeAllFilters,
|
|
120
|
+
onKeyDown: (e) => {
|
|
121
|
+
if (["Enter", "Space"].includes(e.code))
|
|
122
|
+
removeAllFilters();
|
|
123
|
+
}
|
|
118
124
|
},
|
|
119
125
|
...filterBarProps?.extraOptions || []
|
|
120
126
|
],
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/parts/FilterBar/FiltersBar.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable react/prop-types */\nimport React, { useCallback, useContext, useMemo, useRef, useState } from 'react';\nimport { DSButtonV2 } from '@elliemae/ds-button';\nimport { MoreOptionsVert } from '@elliemae/ds-icons';\nimport { FILTER_TYPES } from '../../exported-related';\nimport {\n SelectPill,\n MultiSelectPill,\n SingleDatePill,\n DateRangePill,\n NumberRangePill,\n DateSwitcherPill,\n} from './components';\nimport { DataTableContext } from '../../DataTableContext';\nimport { StyledDropdownMenu, StyledWrapper } from './styled';\nimport { FilterPillComponent } from './types';\nimport { DATA_TESTID } from '../../configs/constants';\n\nconst pillRenderMapper: Record<string, FilterPillComponent<any>> = {\n [FILTER_TYPES.SELECT]: SelectPill,\n [FILTER_TYPES.MULTI_SELECT]: MultiSelectPill,\n [FILTER_TYPES.SINGLE_DATE]: SingleDatePill,\n [FILTER_TYPES.DATE_RANGE]: DateRangePill,\n [FILTER_TYPES.DATE_SWITCHER]: DateSwitcherPill,\n [FILTER_TYPES.NUMBER_RANGE]: NumberRangePill,\n [FILTER_TYPES.CURRENCY_RANGE]: NumberRangePill,\n};\n\nexport const FiltersBar: React.ComponentType = () => {\n const {\n tableProps: { width, filterBarProps, onFiltersChange, filters },\n visibleColumns,\n } = useContext(DataTableContext);\n\n const [isOpen, setIsOpen] = useState(false);\n\n const pillGroupRefs = useMemo(() => {\n const refs: React.RefObject<HTMLElement>[] = [];\n for (let i = 0; i < filters.length; i += 1) refs.push(React.createRef());\n return refs;\n }, [filters.length]);\n\n const dropdownMenuRef = useRef(null);\n\n const removeAllFilters = useCallback(() => {\n onFiltersChange([]);\n filterBarProps?.onClearAllFiltersClick?.();\n }, [onFiltersChange, filterBarProps?.onClearAllFiltersClick]);\n\n const onFilterBarClose = useCallback(() => {\n filterBarProps?.onDropdownMenuToggle?.(false, 'onClose');\n setIsOpen(false);\n }, [filterBarProps?.onDropdownMenuToggle]);\n\n const onFilterBarOpen = useCallback(() => {\n filterBarProps?.onDropdownMenuToggle?.(true, 'onOpen');\n setIsOpen(true);\n }, [filterBarProps?.onDropdownMenuToggle]);\n\n const onFilterBarOnClickOutside = useCallback(() => {\n filterBarProps?.onDropdownMenuToggle?.(false, 'onClickOutside');\n filterBarProps?.onDropdownMenuClickOutside?.();\n setIsOpen(false);\n }, [filterBarProps?.onDropdownMenuToggle, filterBarProps?.onDropdownMenuClickOutside]);\n\n const onTriggerClick = useCallback(() => {\n filterBarProps?.onDropdownMenuTriggerClick?.();\n onFilterBarOpen();\n }, [filterBarProps?.onDropdownMenuTriggerClick]);\n\n const finalIsOpen = useMemo(() => {\n if (typeof filterBarProps?.isDropdownMenuOpen === 'boolean') return filterBarProps.isDropdownMenuOpen;\n return isOpen;\n }, [filterBarProps?.isDropdownMenuOpen, isOpen]);\n\n return (\n <StyledWrapper width={width} aria-live=\"polite\" aria-relevant=\"additions removals\" gutter=\"xs\">\n {filters.map(({ id: column, type, value }, index) => {\n const columnHeader = visibleColumns.find((col) => col.accessor === column)?.Header;\n let Component: FilterPillComponent<unknown> = () => null;\n\n const filterType = type;\n if (filterType in pillRenderMapper) {\n Component = pillRenderMapper[filterType];\n } else if (filterBarProps?.customPillRenderer) {\n Component = filterBarProps.customPillRenderer;\n }\n return (\n <Component\n key={column}\n columnHeader={typeof columnHeader === 'string' ? columnHeader : column}\n column={column}\n value={value}\n filters={filters}\n onFiltersChange={onFiltersChange}\n prevRef={pillGroupRefs[index - 1]}\n innerRef={pillGroupRefs[index]}\n nextRef={pillGroupRefs[index + 1] ?? dropdownMenuRef}\n />\n );\n })}\n <StyledDropdownMenu\n preventOverflow=\"scrollParent\"\n isOpen={finalIsOpen}\n onClose={onFilterBarClose}\n onClickOutsideMenu={onFilterBarOnClickOutside}\n options={[\n {\n id: '__internal__option__clear__filters',\n label: 'Clear Filters',\n onClick: removeAllFilters,\n },\n ...(filterBarProps?.extraOptions || []),\n ]}\n triggerComponent={\n <DSButtonV2\n data-testid={DATA_TESTID.DATA_TABLE_FILTER_BAR_DD_MENU_BUTTON}\n buttonType=\"icon\"\n innerRef={dropdownMenuRef}\n onClick={onTriggerClick}\n >\n <MoreOptionsVert />\n </DSButtonV2>\n }\n />\n </StyledWrapper>\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,mBAA0E;AAC1E,uBAA2B;AAC3B,sBAAgC;AAChC,8BAA6B;AAC7B,wBAOO;AACP,8BAAiC;AACjC,oBAAkD;AAElD,uBAA4B;AAE5B,MAAM,mBAA6D;AAAA,GAChE,qCAAa,SAAS;AAAA,GACtB,qCAAa,eAAe;AAAA,GAC5B,qCAAa,cAAc;AAAA,GAC3B,qCAAa,aAAa;AAAA,GAC1B,qCAAa,gBAAgB;AAAA,GAC7B,qCAAa,eAAe;AAAA,GAC5B,qCAAa,iBAAiB;AACjC;AAEO,MAAM,aAAkC,MAAM;AACnD,QAAM;AAAA,IACJ,YAAY,EAAE,OAAO,gBAAgB,iBAAiB;AAAA,IACtD;AAAA,MACE,6BAAW,wCAAgB;AAE/B,QAAM,CAAC,QAAQ,aAAa,2BAAS,KAAK;AAE1C,QAAM,gBAAgB,0BAAQ,MAAM;AAClC,UAAM,OAAuC,CAAC;AAC9C,aAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AAAG,WAAK,KAAK,qBAAM,UAAU,CAAC;AACvE,WAAO;AAAA,EACT,GAAG,CAAC,QAAQ,MAAM,CAAC;AAEnB,QAAM,kBAAkB,yBAAO,IAAI;AAEnC,QAAM,mBAAmB,8BAAY,MAAM;AACzC,oBAAgB,CAAC,CAAC;AAClB,oBAAgB,yBAAyB;AAAA,
|
|
4
|
+
"sourcesContent": ["/* eslint-disable react/prop-types */\nimport React, { useCallback, useContext, useMemo, useRef, useState } from 'react';\nimport { DSButtonV2 } from '@elliemae/ds-button';\nimport { MoreOptionsVert } from '@elliemae/ds-icons';\nimport { FILTER_TYPES } from '../../exported-related';\nimport {\n SelectPill,\n MultiSelectPill,\n SingleDatePill,\n DateRangePill,\n NumberRangePill,\n DateSwitcherPill,\n} from './components';\nimport { DataTableContext } from '../../DataTableContext';\nimport { StyledDropdownMenu, StyledWrapper } from './styled';\nimport { FilterPillComponent } from './types';\nimport { DATA_TESTID } from '../../configs/constants';\n\nconst pillRenderMapper: Record<string, FilterPillComponent<any>> = {\n [FILTER_TYPES.SELECT]: SelectPill,\n [FILTER_TYPES.MULTI_SELECT]: MultiSelectPill,\n [FILTER_TYPES.SINGLE_DATE]: SingleDatePill,\n [FILTER_TYPES.DATE_RANGE]: DateRangePill,\n [FILTER_TYPES.DATE_SWITCHER]: DateSwitcherPill,\n [FILTER_TYPES.NUMBER_RANGE]: NumberRangePill,\n [FILTER_TYPES.CURRENCY_RANGE]: NumberRangePill,\n};\n\nexport const FiltersBar: React.ComponentType = () => {\n const {\n tableProps: { width, filterBarProps, onFiltersChange, filters },\n visibleColumns,\n } = useContext(DataTableContext);\n\n const [isOpen, setIsOpen] = useState(false);\n\n const pillGroupRefs = useMemo(() => {\n const refs: React.RefObject<HTMLElement>[] = [];\n for (let i = 0; i < filters.length; i += 1) refs.push(React.createRef());\n return refs;\n }, [filters.length]);\n\n const dropdownMenuRef = useRef(null);\n\n const removeAllFilters = useCallback(() => {\n onFiltersChange([]);\n filterBarProps?.onClearAllFiltersClick?.();\n setIsOpen(false);\n }, [onFiltersChange, filterBarProps?.onClearAllFiltersClick]);\n\n const onFilterBarClose = useCallback(() => {\n filterBarProps?.onDropdownMenuToggle?.(false, 'onClose');\n dropdownMenuRef.current.focus();\n setIsOpen(false);\n }, [filterBarProps?.onDropdownMenuToggle]);\n\n const onFilterBarOpen = useCallback(() => {\n filterBarProps?.onDropdownMenuToggle?.(true, 'onOpen');\n setIsOpen(true);\n }, [filterBarProps?.onDropdownMenuToggle]);\n\n const onFilterBarOnClickOutside = useCallback(() => {\n filterBarProps?.onDropdownMenuToggle?.(false, 'onClickOutside');\n filterBarProps?.onDropdownMenuClickOutside?.();\n setIsOpen(false);\n }, [filterBarProps?.onDropdownMenuToggle, filterBarProps?.onDropdownMenuClickOutside]);\n\n const onTriggerClick = useCallback(() => {\n filterBarProps?.onDropdownMenuTriggerClick?.();\n onFilterBarOpen();\n }, [filterBarProps?.onDropdownMenuTriggerClick]);\n\n const finalIsOpen = useMemo(() => {\n if (typeof filterBarProps?.isDropdownMenuOpen === 'boolean') return filterBarProps.isDropdownMenuOpen;\n return isOpen;\n }, [filterBarProps?.isDropdownMenuOpen, isOpen]);\n\n return (\n <StyledWrapper width={width} aria-live=\"polite\" aria-relevant=\"additions removals\" gutter=\"xs\">\n {filters.map(({ id: column, type, value }, index) => {\n const columnHeader = visibleColumns.find((col) => col.accessor === column)?.Header;\n let Component: FilterPillComponent<unknown> = () => null;\n\n const filterType = type;\n if (filterType in pillRenderMapper) {\n Component = pillRenderMapper[filterType];\n } else if (filterBarProps?.customPillRenderer) {\n Component = filterBarProps.customPillRenderer;\n }\n return (\n <Component\n key={column}\n columnHeader={typeof columnHeader === 'string' ? columnHeader : column}\n column={column}\n value={value}\n filters={filters}\n onFiltersChange={onFiltersChange}\n prevRef={pillGroupRefs[index - 1]}\n innerRef={pillGroupRefs[index]}\n nextRef={pillGroupRefs[index + 1] ?? dropdownMenuRef}\n />\n );\n })}\n <StyledDropdownMenu\n preventOverflow=\"scrollParent\"\n isOpen={finalIsOpen}\n onClose={onFilterBarClose}\n onClickOutsideMenu={onFilterBarOnClickOutside}\n options={[\n {\n id: '__internal__option__clear__filters',\n label: 'Clear Filters',\n onClick: removeAllFilters,\n onKeyDown: (e: React.KeyboardEvent) => {\n if (['Enter', 'Space'].includes(e.code)) removeAllFilters();\n },\n },\n ...(filterBarProps?.extraOptions || []),\n ]}\n triggerComponent={\n <DSButtonV2\n data-testid={DATA_TESTID.DATA_TABLE_FILTER_BAR_DD_MENU_BUTTON}\n buttonType=\"icon\"\n innerRef={dropdownMenuRef}\n onClick={onTriggerClick}\n >\n <MoreOptionsVert />\n </DSButtonV2>\n }\n />\n </StyledWrapper>\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,mBAA0E;AAC1E,uBAA2B;AAC3B,sBAAgC;AAChC,8BAA6B;AAC7B,wBAOO;AACP,8BAAiC;AACjC,oBAAkD;AAElD,uBAA4B;AAE5B,MAAM,mBAA6D;AAAA,GAChE,qCAAa,SAAS;AAAA,GACtB,qCAAa,eAAe;AAAA,GAC5B,qCAAa,cAAc;AAAA,GAC3B,qCAAa,aAAa;AAAA,GAC1B,qCAAa,gBAAgB;AAAA,GAC7B,qCAAa,eAAe;AAAA,GAC5B,qCAAa,iBAAiB;AACjC;AAEO,MAAM,aAAkC,MAAM;AACnD,QAAM;AAAA,IACJ,YAAY,EAAE,OAAO,gBAAgB,iBAAiB;AAAA,IACtD;AAAA,MACE,6BAAW,wCAAgB;AAE/B,QAAM,CAAC,QAAQ,aAAa,2BAAS,KAAK;AAE1C,QAAM,gBAAgB,0BAAQ,MAAM;AAClC,UAAM,OAAuC,CAAC;AAC9C,aAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AAAG,WAAK,KAAK,qBAAM,UAAU,CAAC;AACvE,WAAO;AAAA,EACT,GAAG,CAAC,QAAQ,MAAM,CAAC;AAEnB,QAAM,kBAAkB,yBAAO,IAAI;AAEnC,QAAM,mBAAmB,8BAAY,MAAM;AACzC,oBAAgB,CAAC,CAAC;AAClB,oBAAgB,yBAAyB;AACzC,cAAU,KAAK;AAAA,EACjB,GAAG,CAAC,iBAAiB,gBAAgB,sBAAsB,CAAC;AAE5D,QAAM,mBAAmB,8BAAY,MAAM;AACzC,oBAAgB,uBAAuB,OAAO,SAAS;AACvD,oBAAgB,QAAQ,MAAM;AAC9B,cAAU,KAAK;AAAA,EACjB,GAAG,CAAC,gBAAgB,oBAAoB,CAAC;AAEzC,QAAM,kBAAkB,8BAAY,MAAM;AACxC,oBAAgB,uBAAuB,MAAM,QAAQ;AACrD,cAAU,IAAI;AAAA,EAChB,GAAG,CAAC,gBAAgB,oBAAoB,CAAC;AAEzC,QAAM,4BAA4B,8BAAY,MAAM;AAClD,oBAAgB,uBAAuB,OAAO,gBAAgB;AAC9D,oBAAgB,6BAA6B;AAC7C,cAAU,KAAK;AAAA,EACjB,GAAG,CAAC,gBAAgB,sBAAsB,gBAAgB,0BAA0B,CAAC;AAErF,QAAM,iBAAiB,8BAAY,MAAM;AACvC,oBAAgB,6BAA6B;AAC7C,oBAAgB;AAAA,EAClB,GAAG,CAAC,gBAAgB,0BAA0B,CAAC;AAE/C,QAAM,cAAc,0BAAQ,MAAM;AAChC,QAAI,OAAO,gBAAgB,uBAAuB;AAAW,aAAO,eAAe;AACnF,WAAO;AAAA,EACT,GAAG,CAAC,gBAAgB,oBAAoB,MAAM,CAAC;AAE/C,SACE,mDAAC;AAAA,IAAc;AAAA,IAAc,aAAU;AAAA,IAAS,iBAAc;AAAA,IAAqB,QAAO;AAAA,KACvF,QAAQ,IAAI,CAAC,EAAE,IAAI,QAAQ,MAAM,SAAS,UAAU;AACnD,UAAM,eAAe,eAAe,KAAK,CAAC,QAAQ,IAAI,aAAa,MAAM,GAAG;AAC5E,QAAI,YAA0C,MAAM;AAEpD,UAAM,aAAa;AACnB,QAAI,cAAc,kBAAkB;AAClC,kBAAY,iBAAiB;AAAA,IAC/B,WAAW,gBAAgB,oBAAoB;AAC7C,kBAAY,eAAe;AAAA,IAC7B;AACA,WACE,mDAAC;AAAA,MACC,KAAK;AAAA,MACL,cAAc,OAAO,iBAAiB,WAAW,eAAe;AAAA,MAChE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAAS,cAAc,QAAQ;AAAA,MAC/B,UAAU,cAAc;AAAA,MACxB,SAAS,cAAc,QAAQ,MAAM;AAAA,KACvC;AAAA,EAEJ,CAAC,GACD,mDAAC;AAAA,IACC,iBAAgB;AAAA,IAChB,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,oBAAoB;AAAA,IACpB,SAAS;AAAA,MACP;AAAA,QACE,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,WAAW,CAAC,MAA2B;AACrC,cAAI,CAAC,SAAS,OAAO,EAAE,SAAS,EAAE,IAAI;AAAG,6BAAiB;AAAA,QAC5D;AAAA,MACF;AAAA,MACA,GAAI,gBAAgB,gBAAgB,CAAC;AAAA,IACvC;AAAA,IACA,kBACE,mDAAC;AAAA,MACC,eAAa,6BAAY;AAAA,MACzB,YAAW;AAAA,MACX,UAAU;AAAA,MACV,SAAS;AAAA,OAET,mDAAC,qCAAgB,CACnB;AAAA,GAEJ,CACF;AAEJ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -27,8 +27,8 @@ module.exports = __toCommonJS(styled_exports);
|
|
|
27
27
|
var React = __toESM(require("react"));
|
|
28
28
|
var import_ds_dropdownmenu = require("@elliemae/ds-dropdownmenu");
|
|
29
29
|
var import_ds_grid = require("@elliemae/ds-grid");
|
|
30
|
-
var
|
|
31
|
-
const StyledWrapper = (0,
|
|
30
|
+
var import_ds_system = require("@elliemae/ds-system");
|
|
31
|
+
const StyledWrapper = (0, import_ds_system.styled)(import_ds_grid.Grid)`
|
|
32
32
|
display: flex;
|
|
33
33
|
flex-wrap: wrap;
|
|
34
34
|
width: ${(props) => props.width};
|
|
@@ -36,7 +36,7 @@ const StyledWrapper = (0, import_styled_components.default)(import_ds_grid.Grid)
|
|
|
36
36
|
min-height: 33px; // height of the pills
|
|
37
37
|
padding: 0 ${(props) => props.theme.space.xxxs};
|
|
38
38
|
`;
|
|
39
|
-
const StyledDropdownMenu = (0,
|
|
39
|
+
const StyledDropdownMenu = (0, import_ds_system.styled)(import_ds_dropdownmenu.DSDropdownMenu)`
|
|
40
40
|
margin-left: auto;
|
|
41
41
|
`;
|
|
42
42
|
//# sourceMappingURL=styled.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/parts/FilterBar/styled.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["import { DSDropdownMenu } from '@elliemae/ds-dropdownmenu';\nimport { Grid } from '@elliemae/ds-grid';\nimport styled from '
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,6BAA+B;AAC/B,qBAAqB;AACrB
|
|
4
|
+
"sourcesContent": ["import { DSDropdownMenu } from '@elliemae/ds-dropdownmenu';\nimport { Grid } from '@elliemae/ds-grid';\nimport { styled } from '@elliemae/ds-system';\n\nexport const StyledWrapper = styled(Grid)`\n display: flex;\n flex-wrap: wrap;\n width: ${(props) => props.width};\n align-items: center;\n min-height: 33px; // height of the pills\n padding: 0 ${(props) => props.theme.space.xxxs};\n`;\n\nexport const StyledDropdownMenu = styled(DSDropdownMenu)`\n margin-left: auto;\n`;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,6BAA+B;AAC/B,qBAAqB;AACrB,uBAAuB;AAEhB,MAAM,gBAAgB,6BAAO,mBAAI;AAAA;AAAA;AAAA,WAG7B,CAAC,UAAU,MAAM;AAAA;AAAA;AAAA,eAGb,CAAC,UAAU,MAAM,MAAM,MAAM;AAAA;AAGrC,MAAM,qBAAqB,6BAAO,qCAAc;AAAA;AAAA;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -25,8 +25,8 @@ __export(EmptyChildrenGroup_exports, {
|
|
|
25
25
|
module.exports = __toCommonJS(EmptyChildrenGroup_exports);
|
|
26
26
|
var React = __toESM(require("react"));
|
|
27
27
|
var import_react = __toESM(require("react"));
|
|
28
|
-
var
|
|
29
|
-
const StyledBox =
|
|
28
|
+
var import_ds_system = require("@elliemae/ds-system");
|
|
29
|
+
const StyledBox = import_ds_system.styled.div`
|
|
30
30
|
height: 24px;
|
|
31
31
|
margin: 0 ${(props) => props.theme.space.xxs};
|
|
32
32
|
border-top: 1px solid ${(props) => props.theme.colors.neutral[200]};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/parts/Headers/EmptyChildrenGroup.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["import React from 'react';\nimport styled from '
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAkB;AAClB
|
|
4
|
+
"sourcesContent": ["import React from 'react';\nimport { styled } from '@elliemae/ds-system';\n\nconst StyledBox = styled.div`\n height: 24px;\n margin: 0 ${(props) => props.theme.space.xxs};\n border-top: 1px solid ${(props) => props.theme.colors.neutral[200]};\n`;\n\nexport const EmptyChildrenGroup: React.ComponentType<Record<string, never>> = () => <StyledBox />;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAkB;AAClB,uBAAuB;AAEvB,MAAM,YAAY,wBAAO;AAAA;AAAA,cAEX,CAAC,UAAU,MAAM,MAAM,MAAM;AAAA,0BACjB,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA;AAGzD,MAAM,qBAAiE,MAAM,mDAAC,eAAU;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -148,7 +148,7 @@ const HeaderCell = (props) => {
|
|
|
148
148
|
ctx,
|
|
149
149
|
draggableProps,
|
|
150
150
|
textWrap
|
|
151
|
-
}), rightIcons, isResizeable && column.canResize !== false && /* @__PURE__ */ import_react.default.createElement(import_HeaderResizer.HeaderResizer, {
|
|
151
|
+
}), rightIcons, isResizeable && column.canResize !== false && !column.columns && /* @__PURE__ */ import_react.default.createElement(import_HeaderResizer.HeaderResizer, {
|
|
152
152
|
column
|
|
153
153
|
})), /* @__PURE__ */ import_react.default.createElement("span", {
|
|
154
154
|
id: `${column.id}-instructions`,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/parts/Headers/HeaderCell.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["/* 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 { Grid } from '@elliemae/ds-grid';\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/constants';\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\nexport const HeaderCell: React.ComponentType<HeaderCellCompProps> = (props) => {\n const { column, isDragOverlay, colSpan } = props;\n const ctx = useContext(DataTableContext);\n const {\n tableProps: { isResizeable, onColumnSortChange, dragAndDropColumns, onFiltersChange, filters, textWrap },\n flattenedData,\n reduxHeaders,\n patchHeader,\n } = ctx;\n const reduxHeader = useMemo(() => reduxHeaders[column.id], [reduxHeaders, column]);\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", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["/* 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 { Grid } from '@elliemae/ds-grid';\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/constants';\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\nexport const HeaderCell: React.ComponentType<HeaderCellCompProps> = (props) => {\n const { column, isDragOverlay, colSpan } = props;\n const ctx = useContext(DataTableContext);\n const {\n tableProps: { isResizeable, onColumnSortChange, dragAndDropColumns, onFiltersChange, filters, textWrap },\n flattenedData,\n reduxHeaders,\n patchHeader,\n } = ctx;\n const reduxHeader = useMemo(() => reduxHeaders[column.id], [reduxHeaders, column]);\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 && !column.columns && <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", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -28,7 +28,7 @@ module.exports = __toCommonJS(HeaderCellGroup_exports);
|
|
|
28
28
|
var React = __toESM(require("react"));
|
|
29
29
|
var import_react = __toESM(require("react"));
|
|
30
30
|
var import_ds_grid = require("@elliemae/ds-grid");
|
|
31
|
-
var
|
|
31
|
+
var import_ds_system = require("@elliemae/ds-system");
|
|
32
32
|
var import_prop_types = __toESM(require("prop-types"));
|
|
33
33
|
var import_HeaderCell = require("./HeaderCell");
|
|
34
34
|
var import_SortableItemContext = require("../HoC/SortableItemContext");
|
|
@@ -38,7 +38,7 @@ var import_SortableHeaderCell = require("../SortableHeaderCell");
|
|
|
38
38
|
var import_EmptyChildrenGroup = require("./EmptyChildrenGroup");
|
|
39
39
|
var import_configs = require("../../configs");
|
|
40
40
|
var import_DataTableContext = __toESM(require("../../DataTableContext"));
|
|
41
|
-
const StyledWrapper = (0,
|
|
41
|
+
const StyledWrapper = (0, import_ds_system.styled)(import_ds_grid.Grid)`
|
|
42
42
|
position: relative;
|
|
43
43
|
${({ shouldDropOneLevel, isDragOverlay }) => shouldDropOneLevel && !isDragOverlay ? `top: 50%; height: 50%;` : ""}
|
|
44
44
|
width: ${(props) => props.isDragOverlay ? "fit-content" : "100%"};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/parts/Headers/HeaderCellGroup.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable complexity */\nimport React, { useContext } from 'react';\nimport { Grid } from '@elliemae/ds-grid';\nimport styled from '
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,mBAAkC;AAClC,qBAAqB;AACrB
|
|
4
|
+
"sourcesContent": ["/* eslint-disable complexity */\nimport React, { useContext } from 'react';\nimport { Grid } from '@elliemae/ds-grid';\nimport { styled } from '@elliemae/ds-system';\nimport PropTypes from 'prop-types';\nimport { HeaderCell } from './HeaderCell';\nimport { SortableItemContext } from '../HoC/SortableItemContext';\nimport { withDnDSortableColumnContext } from '../internal';\nimport { DropIndicator } from '../DropIndicator';\nimport { SortableHeaderCell } from '../SortableHeaderCell';\nimport { TypescriptColumn } from '../../types/props';\nimport { EmptyChildrenGroup } from './EmptyChildrenGroup';\nimport { DATA_TESTID } from '../../configs';\nimport DataTableContext from '../../DataTableContext';\n\nconst StyledWrapper = styled(Grid)`\n position: relative;\n ${({ shouldDropOneLevel, isDragOverlay }) => (shouldDropOneLevel && !isDragOverlay ? `top: 50%; height: 50%;` : '')}\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 border-left: ${({ isFirst }) => (isFirst ? '0px' : '1px')} solid ${(props) => props.theme.colors.neutral['080']};\n`;\n\ninterface HeaderCellGroupCompProps {\n header: TypescriptColumn;\n isDragOverlay?: boolean;\n isDraggingParent?: boolean;\n isLast?: boolean;\n isFirst?: boolean;\n level?: number;\n}\n\nconst HeaderCellGroupComp: React.ComponentType<HeaderCellGroupCompProps> = ({\n header,\n isDragOverlay,\n isDraggingParent,\n isLast,\n isFirst,\n level = 0,\n}) => {\n const { visibleColumns } = useContext(DataTableContext);\n const { draggableProps } = useContext(SortableItemContext);\n\n const isMultiLevel = visibleColumns.some((col) => !!col.columns);\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 ? HeaderCellGroup : HeaderCellGroupSortable;\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 isFirst={isFirst}\n shouldDropOneLevel={isMultiLevel && level === 0 && !children}\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 isFirst={index === 0}\n level={level + 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 isFirst: PropTypes.bool,\n level: PropTypes.number,\n};\n\n// We need to declare this because we MUST avoid the useSortable call in the recursive calls of the function\n\nexport const HeaderCellGroup = HeaderCellGroupComp;\n\nexport const HeaderCellGroupSortable = withDnDSortableColumnContext(HeaderCellGroupComp);\n\nexport default HeaderCellGroupSortable;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,mBAAkC;AAClC,qBAAqB;AACrB,uBAAuB;AACvB,wBAAsB;AACtB,wBAA2B;AAC3B,iCAAoC;AACpC,sBAA6C;AAC7C,2BAA8B;AAC9B,gCAAmC;AAEnC,gCAAmC;AACnC,qBAA4B;AAC5B,8BAA6B;AAE7B,MAAM,gBAAgB,6BAAO,mBAAI;AAAA;AAAA,IAE7B,CAAC,EAAE,oBAAoB,oBAAqB,sBAAsB,CAAC,gBAAgB,2BAA2B;AAAA,WACvG,CAAC,UAAW,MAAM,gBAAgB,gBAAgB;AAAA,iBAC5C,CAAC,UAAU,MAAM;AAAA,gBAClB,CAAC,UAAW,MAAM,aAAa,MAAM,MAAM,OAAO,QAAQ,SAAS;AAAA,aACtE,CAAC,UAAW,MAAM,aAAa,MAAM;AAAA,4BACtB,CAAC,UAAW,MAAM,gBAAgB,oBAAoB;AAAA,iBACjE,CAAC,EAAE,cAAe,UAAU,QAAQ,eAAgB,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA;AAY3G,MAAM,sBAAqE,CAAC;AAAA,EAC1E;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,MACJ;AACJ,QAAM,EAAE,mBAAmB,6BAAW,+BAAgB;AACtD,QAAM,EAAE,mBAAmB,6BAAW,8CAAmB;AAEzD,QAAM,eAAe,eAAe,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,OAAO;AAE/D,QAAM,WAAW,OAAO;AAExB,QAAM,aAAc,kBAAkB,eAAe,cAAe;AACpE,QAAM,wBACJ,kBAAkB,eAAe,mCAAmC,eAAe;AAErF,QAAM,aAAa,gBAAgB,kBAAkB;AAErD,QAAM,UAAU,UAAU,UAAU;AACpC,SACE,mDAAC;AAAA,IACC,KAAK,iBAAiB,eAAe,aAAa;AAAA,IAClD,YAAY,gBAAgB,SAAS,QAAQ;AAAA,IAC7C;AAAA,IACA;AAAA,IACA,MAAM,CAAC,MAAM;AAAA,IACb,eAAa,gBAAgB,2BAAY,iCAAiC;AAAA,IAC1E;AAAA,IACA,oBAAoB,gBAAgB,UAAU,KAAK,CAAC;AAAA,KAEpD,mDAAC;AAAA,IAAW,QAAQ;AAAA,IAAQ;AAAA,IAA8B;AAAA,GAAkB,GAC3E,CAAC,CAAC,UAAU,UAAU,CAAC,iBACtB,mDAAC;AAAA,IAAmB,OAAO;AAAA,IAAU;AAAA,KAClC,SAAS,IAAI,CAAC,GAAG,UAChB,mDAAC;AAAA,IACC,KAAK,EAAE;AAAA,IACP,QAAQ;AAAA,IACR;AAAA,IACA,kBAAkB;AAAA,IAClB,QAAQ,UAAU,SAAS,SAAS;AAAA,IACpC,SAAS,UAAU;AAAA,IACnB,OAAO,QAAQ;AAAA,GACjB,CACD,CACH,GAED,UAAU,UAAU,iBAAiB,mDAAC,kDAAmB,GAC1D,mDAAC;AAAA,IAAc,UAAQ;AAAA,IAAC;AAAA,IAA8C,QAAQ,UAAU;AAAA,GAAY,CACtG;AAEJ;AAEA,oBAAoB,YAAY;AAAA,EAC9B,QAAQ,0BAAU;AAAA,EAClB,eAAe,0BAAU;AAAA,EACzB,kBAAkB,0BAAU;AAAA,EAC5B,QAAQ,0BAAU;AAAA,EAClB,SAAS,0BAAU;AAAA,EACnB,OAAO,0BAAU;AACnB;AAIO,MAAM,kBAAkB;AAExB,MAAM,0BAA0B,kDAA6B,mBAAmB;AAEvF,IAAO,0BAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -52,11 +52,18 @@ const HeaderResizer = ({ column }) => {
|
|
|
52
52
|
} = (0, import_react.useContext)(import_DataTableContext.DataTableContext);
|
|
53
53
|
const [isResizing, setIsResizing] = (0, import_react.useState)(false);
|
|
54
54
|
const [nextWidth, setNextWidth] = (0, import_react.useState)(column.width ?? 150);
|
|
55
|
-
const visibleColumnsCopy = (0, import_react.useMemo)(() => visibleColumns.
|
|
55
|
+
const visibleColumnsCopy = (0, import_react.useMemo)(() => visibleColumns.reduce((acc, col) => {
|
|
56
|
+
if (col.columns) {
|
|
57
|
+
return [...acc, ...col.columns];
|
|
58
|
+
}
|
|
59
|
+
return [...acc, __spreadValues({}, col)];
|
|
60
|
+
}, []), [visibleColumns]);
|
|
56
61
|
(0, import_react.useEffect)(() => {
|
|
57
62
|
const realColumnIndex = visibleColumnsCopy.findIndex((visibleColumn) => visibleColumn.id === column.id);
|
|
58
|
-
|
|
59
|
-
|
|
63
|
+
if (realColumnIndex > -1) {
|
|
64
|
+
visibleColumnsCopy[realColumnIndex].width = nextWidth;
|
|
65
|
+
setGridLayout((0, import_helpers.columnsToGrid)(visibleColumnsCopy, import_constants.ColsLayoutStyle.Fixed));
|
|
66
|
+
}
|
|
60
67
|
}, [column.id, nextWidth, setGridLayout, visibleColumnsCopy]);
|
|
61
68
|
const ref = (0, import_react.useRef)(null);
|
|
62
69
|
const onResizeStart = (0, import_react.useCallback)(() => {
|
|
@@ -65,16 +72,18 @@ const HeaderResizer = ({ column }) => {
|
|
|
65
72
|
const onResizeHandler = (0, import_react.useCallback)((e) => {
|
|
66
73
|
const delta = ("clientX" in e ? e.clientX : e.touches[0].clientX) - (ref.current?.getBoundingClientRect().x ?? 0);
|
|
67
74
|
const realColumnIndex = visibleColumnsCopy.findIndex((visibleColumn) => visibleColumn.id === column.id);
|
|
68
|
-
|
|
69
|
-
|
|
75
|
+
if (realColumnIndex > -1) {
|
|
76
|
+
const widthWithDelta = narrow(nextWidth + delta, visibleColumnsCopy[realColumnIndex].minWidth, visibleColumnsCopy[realColumnIndex].maxWidth);
|
|
77
|
+
setNextWidth(widthWithDelta);
|
|
78
|
+
}
|
|
70
79
|
e.preventDefault();
|
|
71
80
|
e.stopPropagation();
|
|
72
81
|
}, [column.id, nextWidth, visibleColumnsCopy]);
|
|
73
82
|
const onResizeEnd = (0, import_react.useCallback)(() => {
|
|
74
|
-
setGridLayout((0, import_helpers.columnsToGrid)(
|
|
83
|
+
setGridLayout((0, import_helpers.columnsToGrid)(visibleColumnsCopy, import_constants.ColsLayoutStyle.Fixed));
|
|
75
84
|
setIsResizing(false);
|
|
76
85
|
onColumnResize(column.id, nextWidth);
|
|
77
|
-
}, [onColumnResize, column.id, nextWidth, setGridLayout,
|
|
86
|
+
}, [onColumnResize, column.id, nextWidth, setGridLayout, visibleColumnsCopy]);
|
|
78
87
|
(0, import_react.useEffect)(() => {
|
|
79
88
|
const debouncedResizeHandler = onResizeHandler;
|
|
80
89
|
const debouncedResizeEnd = onResizeEnd;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/parts/Headers/HeaderResizer.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable react/prop-types */\nimport React, { useState, useCallback, useContext, useRef, useEffect, useMemo } from 'react';\nimport { ColsLayoutStyle } from '../../configs/constants';\nimport { DataTableContext } from '../../DataTableContext';\nimport { columnsToGrid } from '../../helpers';\nimport { StyledResizer } from '../../styled';\nimport { TypescriptColumn } from '../../types/props';\n\nconst narrow = (value: number, min: number | undefined, max: number | undefined): 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
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,mBAAqF;AACrF,uBAAgC;AAChC,8BAAiC;AACjC,qBAA8B;AAC9B,oBAA8B;AAG9B,MAAM,SAAS,CAAC,OAAe,KAAyB,QACtD,KAAK,IAAI,KAAK,IAAI,OAAO,OAAO,EAAE,GAAG,OAAO,QAAQ;AAE/C,MAAM,gBAER,CAAC,EAAE,aAAa;AACnB,QAAM;AAAA,IACJ,eAAe,EAAE;AAAA,IACjB;AAAA,IACA,YAAY,EAAE;AAAA,MACZ,6BAAW,wCAAgB;AAE/B,QAAM,CAAC,YAAY,iBAAiB,2BAAS,KAAK;AAClD,QAAM,CAAC,WAAW,gBAAgB,2BAAS,OAAO,SAAS,GAAG;
|
|
4
|
+
"sourcesContent": ["/* eslint-disable react/prop-types */\nimport React, { useState, useCallback, useContext, useRef, useEffect, useMemo } from 'react';\nimport { ColsLayoutStyle } from '../../configs/constants';\nimport { DataTableContext } from '../../DataTableContext';\nimport { columnsToGrid } from '../../helpers';\nimport { StyledResizer } from '../../styled';\nimport { TypescriptColumn } from '../../types/props';\n\nconst narrow = (value: number, min: number | undefined, max: number | undefined): 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 const visibleColumnsCopy = useMemo(\n () =>\n visibleColumns.reduce((acc, col) => {\n if (col.columns) {\n return [...acc, ...col.columns];\n }\n return [...acc, { ...col }];\n }, [] as TypescriptColumn[]),\n [visibleColumns],\n );\n\n useEffect(() => {\n const realColumnIndex = visibleColumnsCopy.findIndex((visibleColumn) => visibleColumn.id === column.id);\n if (realColumnIndex > -1) {\n visibleColumnsCopy[realColumnIndex].width = nextWidth;\n setGridLayout(columnsToGrid(visibleColumnsCopy, ColsLayoutStyle.Fixed));\n }\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: MouseEvent | TouchEvent) => {\n const delta = ('clientX' in e ? e.clientX : e.touches[0].clientX) - (ref.current?.getBoundingClientRect().x ?? 0); // delta in pixels\n\n const realColumnIndex = visibleColumnsCopy.findIndex((visibleColumn) => visibleColumn.id === column.id);\n if (realColumnIndex > -1) {\n const widthWithDelta = narrow(\n nextWidth + delta,\n visibleColumnsCopy[realColumnIndex].minWidth,\n visibleColumnsCopy[realColumnIndex].maxWidth,\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 setGridLayout(columnsToGrid(visibleColumnsCopy, ColsLayoutStyle.Fixed));\n setIsResizing(false);\n onColumnResize(column.id, nextWidth);\n }, [onColumnResize, column.id, nextWidth, setGridLayout, visibleColumnsCopy]);\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 onClick={(e) => e.stopPropagation()}\n />\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/cjs/parts/Loader.js
CHANGED
|
@@ -28,8 +28,8 @@ var React = __toESM(require("react"));
|
|
|
28
28
|
var import_react = __toESM(require("react"));
|
|
29
29
|
var import_ds_grid = require("@elliemae/ds-grid");
|
|
30
30
|
var import_ds_circular_progress_indicator = require("@elliemae/ds-circular-progress-indicator");
|
|
31
|
-
var
|
|
32
|
-
const StyledLoaderWrapper = (0,
|
|
31
|
+
var import_ds_system = require("@elliemae/ds-system");
|
|
32
|
+
const StyledLoaderWrapper = (0, import_ds_system.styled)(import_ds_grid.Grid)`
|
|
33
33
|
place-items: center;
|
|
34
34
|
z-index: 0;
|
|
35
35
|
background-color: white;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/parts/Loader.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["import React, { memo } from 'react';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSCircularProgressIndicator } from '@elliemae/ds-circular-progress-indicator';\nimport styled from '
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAA4B;AAC5B,qBAAqB;AACrB,4CAA4C;AAC5C
|
|
4
|
+
"sourcesContent": ["import React, { memo } from 'react';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSCircularProgressIndicator } from '@elliemae/ds-circular-progress-indicator';\nimport { styled } from '@elliemae/ds-system';\n\nconst StyledLoaderWrapper = styled(Grid)`\n place-items: center;\n z-index: 0;\n background-color: white;\n`;\n\nconst Loader = () => (\n <StyledLoaderWrapper style={{ height: '100%', maxHeight: '500px' }} aria-live=\"polite\">\n <DSCircularProgressIndicator size=\"xl\" loading showLabel waiting={false} showTooltip={false} />\n </StyledLoaderWrapper>\n);\n\nexport const MemoizedLoader = memo(Loader);\nexport default MemoizedLoader;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAA4B;AAC5B,qBAAqB;AACrB,4CAA4C;AAC5C,uBAAuB;AAEvB,MAAM,sBAAsB,6BAAO,mBAAI;AAAA;AAAA;AAAA;AAAA;AAMvC,MAAM,SAAS,MACb,mDAAC;AAAA,EAAoB,OAAO,EAAE,QAAQ,QAAQ,WAAW,QAAQ;AAAA,EAAG,aAAU;AAAA,GAC5E,mDAAC;AAAA,EAA4B,MAAK;AAAA,EAAK,SAAO;AAAA,EAAC,WAAS;AAAA,EAAC,SAAS;AAAA,EAAO,aAAa;AAAA,CAAO,CAC/F;AAGK,MAAM,iBAAiB,uBAAK,MAAM;AACzC,IAAO,iBAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -28,9 +28,9 @@ var React = __toESM(require("react"));
|
|
|
28
28
|
var import_react = __toESM(require("react"));
|
|
29
29
|
var import_ds_indeterminate_progress_indicator = require("@elliemae/ds-indeterminate-progress-indicator");
|
|
30
30
|
var import_ds_grid = require("@elliemae/ds-grid");
|
|
31
|
-
var
|
|
31
|
+
var import_ds_system = require("@elliemae/ds-system");
|
|
32
32
|
var import_constants = require("../configs/constants");
|
|
33
|
-
const StyledRowLoadingContainer = (0,
|
|
33
|
+
const StyledRowLoadingContainer = (0, import_ds_system.styled)(import_ds_grid.Grid)`
|
|
34
34
|
position: absolute;
|
|
35
35
|
bottom: -40px;
|
|
36
36
|
left: 0;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/parts/RowLoading.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["import React, { useMemo } from 'react';\nimport { DSIndeterminateProgressIndicator } from '@elliemae/ds-indeterminate-progress-indicator';\nimport { Grid } from '@elliemae/ds-grid';\nimport styled from '
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAA+B;AAC/B,iDAAiD;AACjD,qBAAqB;AACrB
|
|
4
|
+
"sourcesContent": ["import React, { useMemo } from 'react';\nimport { DSIndeterminateProgressIndicator } from '@elliemae/ds-indeterminate-progress-indicator';\nimport { Grid } from '@elliemae/ds-grid';\nimport { styled } from '@elliemae/ds-system';\nimport { DATA_TESTID } from '../configs/constants';\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};\n\nexport { RowLoading };\nexport default RowLoading;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAA+B;AAC/B,iDAAiD;AACjD,qBAAqB;AACrB,uBAAuB;AACvB,uBAA4B;AAE5B,MAAM,4BAA4B,6BAAO,mBAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAS7C,MAAM,aAAkC,MAAM;AAC5C,QAAM,cAAc,0BAClB,MACE,mDAAC;AAAA,IAA0B,MAAK;AAAA,IAAM,eAAa,6BAAY;AAAA,KAC7D,mDAAC;AAAA,IAAiC,YAAU;AAAA,IAAC,OAAM;AAAA,GAAU,CAC/D,GAEF,CAAC,CACH;AAEA,SAAO;AACT;AAGA,IAAO,qBAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -55,6 +55,7 @@ module.exports = __toCommonJS(SortableHeaderCell_exports);
|
|
|
55
55
|
var React = __toESM(require("react"));
|
|
56
56
|
var import_ds_grid = require("@elliemae/ds-grid");
|
|
57
57
|
var import_withConditionalDnDSortableContext = require("./HoC/withConditionalDnDSortableContext");
|
|
58
|
+
var import_helpers = require("../helpers");
|
|
58
59
|
const SortableHeaderCell = (_a) => {
|
|
59
60
|
var _b = _a, {
|
|
60
61
|
items,
|
|
@@ -64,7 +65,10 @@ const SortableHeaderCell = (_a) => {
|
|
|
64
65
|
"isDragOverlay"
|
|
65
66
|
]);
|
|
66
67
|
return (0, import_withConditionalDnDSortableContext.withConditionalDnDSortableContext)(items, isDragOverlay)(import_ds_grid.Grid)(__spreadProps(__spreadValues({}, rest), {
|
|
67
|
-
|
|
68
|
+
cols: items.map((col) => (0, import_helpers.sizeToCss)(col.width)),
|
|
69
|
+
style: {
|
|
70
|
+
gridAutoFlow: "column"
|
|
71
|
+
}
|
|
68
72
|
}));
|
|
69
73
|
};
|
|
70
74
|
//# sourceMappingURL=SortableHeaderCell.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/parts/SortableHeaderCell.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["import { Grid } from '@elliemae/ds-grid';\nimport { TypescriptColumn } from '../types/props';\nimport { withConditionalDnDSortableContext } from './HoC/withConditionalDnDSortableContext';\n\nexport const SortableHeaderCell = ({\n items,\n isDragOverlay = false,\n ...rest\n}: {\n items: TypescriptColumn[];\n isDragOverlay?: boolean;\n children: JSX.Element | JSX.Element[];\n}): JSX.Element =>\n withConditionalDnDSortableContext(items, isDragOverlay)(Grid)({\n ...rest,\n style: {
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,qBAAqB;AAErB,+CAAkD;
|
|
4
|
+
"sourcesContent": ["import { Grid } from '@elliemae/ds-grid';\nimport { TypescriptColumn } from '../types/props';\nimport { withConditionalDnDSortableContext } from './HoC/withConditionalDnDSortableContext';\nimport { sizeToCss } from '../helpers';\n\nexport const SortableHeaderCell = ({\n items,\n isDragOverlay = false,\n ...rest\n}: {\n items: TypescriptColumn[];\n isDragOverlay?: boolean;\n children: JSX.Element | JSX.Element[];\n}): JSX.Element =>\n withConditionalDnDSortableContext(items, isDragOverlay)(Grid)({\n ...rest,\n cols: items.map((col) => sizeToCss(col.width)),\n style: {\n gridAutoFlow: 'column',\n },\n });\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,qBAAqB;AAErB,+CAAkD;AAClD,qBAA0B;AAEnB,MAAM,qBAAqB,CAAC,OAQnB;AARmB,eACjC;AAAA;AAAA,IACA,gBAAgB;AAAA,MAFiB,IAG9B,iBAH8B,IAG9B;AAAA,IAFH;AAAA,IACA;AAAA;AAOA,yFAAkC,OAAO,aAAa,EAAE,mBAAI,EAAE,iCACzD,OADyD;AAAA,IAE5D,MAAM,MAAM,IAAI,CAAC,QAAQ,8BAAU,IAAI,KAAK,CAAC;AAAA,IAC7C,OAAO;AAAA,MACL,cAAc;AAAA,IAChB;AAAA,EACF,EAAC;AAAA;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -51,27 +51,25 @@ var import_constants = require("../configs/constants");
|
|
|
51
51
|
const TableContentComponent = (props) => {
|
|
52
52
|
const { forwardedRef } = props;
|
|
53
53
|
const {
|
|
54
|
-
tableProps: {
|
|
54
|
+
tableProps: { pagination },
|
|
55
55
|
allDataFlattened,
|
|
56
56
|
visibleColumns
|
|
57
57
|
} = (0, import_react.useContext)(import_DataTableContext.default);
|
|
58
58
|
const [shiftKeyPressed, setShiftKeyPressed] = (0, import_react.useState)(false);
|
|
59
59
|
const PureTableContent = (0, import_react.useMemo)(() => /* @__PURE__ */ import_react.default.createElement(import_styled.StyledDataTableContentWrapper, {
|
|
60
60
|
"data-testid": import_constants.DATA_TESTID.DATA_TABLE_CONTENT_WRAPPER,
|
|
61
|
-
height,
|
|
62
|
-
width,
|
|
63
61
|
ref: forwardedRef,
|
|
64
62
|
noSelectionAllowed: shiftKeyPressed,
|
|
65
63
|
onKeyDown: (e) => setShiftKeyPressed((prevShiftKeyPressed) => prevShiftKeyPressed || e.shiftKey),
|
|
66
|
-
onKeyUp: (e) => setShiftKeyPressed((prevShiftKeyPressed) => prevShiftKeyPressed && e.code !== "Shift")
|
|
64
|
+
onKeyUp: (e) => setShiftKeyPressed((prevShiftKeyPressed) => prevShiftKeyPressed && e.code !== "Shift"),
|
|
65
|
+
rows: pagination ? ["1fr", "auto"] : ["auto"],
|
|
66
|
+
cols: ["100%"]
|
|
67
67
|
}, /* @__PURE__ */ import_react.default.createElement(import_styled.StyledTableWrapper, {
|
|
68
68
|
role: "table",
|
|
69
69
|
"aria-rowcount": allDataFlattened.length,
|
|
70
70
|
"aria-colcount": visibleColumns.length,
|
|
71
|
-
"data-testid": import_constants.DATA_TESTID.DATA_TABLE_TABLE
|
|
72
|
-
|
|
73
|
-
width
|
|
74
|
-
}, /* @__PURE__ */ import_react.default.createElement(import_VirtualRowsList.VirtualRowsList, null)), pagination ? /* @__PURE__ */ import_react.default.createElement(import_Pagination.Pagination, null) : null), [height, width, forwardedRef, allDataFlattened.length, visibleColumns.length, pagination, shiftKeyPressed]);
|
|
71
|
+
"data-testid": import_constants.DATA_TESTID.DATA_TABLE_TABLE
|
|
72
|
+
}, /* @__PURE__ */ import_react.default.createElement(import_VirtualRowsList.VirtualRowsList, null)), pagination ? /* @__PURE__ */ import_react.default.createElement(import_Pagination.Pagination, null) : null), [forwardedRef, allDataFlattened.length, visibleColumns.length, pagination, shiftKeyPressed]);
|
|
75
73
|
return PureTableContent;
|
|
76
74
|
};
|
|
77
75
|
const TableContent = import_react.default.forwardRef((props, ref) => /* @__PURE__ */ import_react.default.createElement(TableContentComponent, __spreadProps(__spreadValues({}, props), {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/parts/TableContent.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["import React, { useContext, useMemo, useState } from 'react';\n\nimport { StyledTableWrapper, StyledDataTableContentWrapper } from '../styled';\nimport DataTableContext from '../DataTableContext';\nimport { Pagination } from '../addons/Pagination';\nimport { VirtualRowsList } from './VirtualRowsList';\nimport { DATA_TESTID } from '../configs/constants';\n\ntype TableContentProps = {\n forwardedRef: React.ForwardedRef<HTMLDivElement>;\n};\n\nconst TableContentComponent = (props: TableContentProps) => {\n const { forwardedRef } = props;\n const {\n tableProps: {
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAqD;AAErD,oBAAkE;AAClE,8BAA6B;AAC7B,wBAA2B;AAC3B,6BAAgC;AAChC,uBAA4B;AAM5B,MAAM,wBAAwB,CAAC,UAA6B;AAC1D,QAAM,EAAE,iBAAiB;AACzB,QAAM;AAAA,IACJ,YAAY,EAAE
|
|
4
|
+
"sourcesContent": ["import React, { useContext, useMemo, useState } from 'react';\n\nimport { StyledTableWrapper, StyledDataTableContentWrapper } from '../styled';\nimport DataTableContext from '../DataTableContext';\nimport { Pagination } from '../addons/Pagination';\nimport { VirtualRowsList } from './VirtualRowsList';\nimport { DATA_TESTID } from '../configs/constants';\n\ntype TableContentProps = {\n forwardedRef: React.ForwardedRef<HTMLDivElement>;\n};\n\nconst TableContentComponent = (props: TableContentProps) => {\n const { forwardedRef } = props;\n const {\n tableProps: { pagination },\n allDataFlattened,\n visibleColumns,\n } = useContext(DataTableContext);\n\n const [shiftKeyPressed, setShiftKeyPressed] = useState(false);\n\n const PureTableContent = useMemo(\n () => (\n <StyledDataTableContentWrapper\n data-testid={DATA_TESTID.DATA_TABLE_CONTENT_WRAPPER}\n ref={forwardedRef}\n noSelectionAllowed={shiftKeyPressed}\n onKeyDown={(e) => setShiftKeyPressed((prevShiftKeyPressed) => prevShiftKeyPressed || e.shiftKey)}\n onKeyUp={(e) => setShiftKeyPressed((prevShiftKeyPressed) => prevShiftKeyPressed && e.code !== 'Shift')}\n rows={pagination ? ['1fr', 'auto'] : ['auto']}\n cols={['100%']}\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 >\n <VirtualRowsList />\n </StyledTableWrapper>\n {pagination ? <Pagination /> : null}\n </StyledDataTableContentWrapper>\n ),\n [forwardedRef, allDataFlattened.length, visibleColumns.length, pagination, shiftKeyPressed],\n );\n\n return PureTableContent;\n};\n\nexport const TableContent = React.forwardRef<HTMLDivElement>((props, ref) => (\n <TableContentComponent {...props} forwardedRef={ref} />\n));\n\nexport default TableContent;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAqD;AAErD,oBAAkE;AAClE,8BAA6B;AAC7B,wBAA2B;AAC3B,6BAAgC;AAChC,uBAA4B;AAM5B,MAAM,wBAAwB,CAAC,UAA6B;AAC1D,QAAM,EAAE,iBAAiB;AACzB,QAAM;AAAA,IACJ,YAAY,EAAE;AAAA,IACd;AAAA,IACA;AAAA,MACE,6BAAW,+BAAgB;AAE/B,QAAM,CAAC,iBAAiB,sBAAsB,2BAAS,KAAK;AAE5D,QAAM,mBAAmB,0BACvB,MACE,mDAAC;AAAA,IACC,eAAa,6BAAY;AAAA,IACzB,KAAK;AAAA,IACL,oBAAoB;AAAA,IACpB,WAAW,CAAC,MAAM,mBAAmB,CAAC,wBAAwB,uBAAuB,EAAE,QAAQ;AAAA,IAC/F,SAAS,CAAC,MAAM,mBAAmB,CAAC,wBAAwB,uBAAuB,EAAE,SAAS,OAAO;AAAA,IACrG,MAAM,aAAa,CAAC,OAAO,MAAM,IAAI,CAAC,MAAM;AAAA,IAC5C,MAAM,CAAC,MAAM;AAAA,KAEb,mDAAC;AAAA,IACC,MAAK;AAAA,IACL,iBAAe,iBAAiB;AAAA,IAChC,iBAAe,eAAe;AAAA,IAC9B,eAAa,6BAAY;AAAA,KAEzB,mDAAC,4CAAgB,CACnB,GACC,aAAa,mDAAC,kCAAW,IAAK,IACjC,GAEF,CAAC,cAAc,iBAAiB,QAAQ,eAAe,QAAQ,YAAY,eAAe,CAC5F;AAEA,SAAO;AACT;AAEO,MAAM,eAAe,qBAAM,WAA2B,CAAC,OAAO,QACnE,mDAAC,wDAA0B,QAA1B;AAAA,EAAiC,cAAc;AAAA,EAAK,CACtD;AAED,IAAO,uBAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|