@elliemae/ds-data-table 3.57.0-next.9 → 3.57.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/addons/Filters/Components/FreeTextSearchFilter/index.js +3 -2
- package/dist/cjs/addons/Filters/Components/FreeTextSearchFilter/index.js.map +2 -2
- package/dist/cjs/configs/constants.js +0 -1
- package/dist/cjs/configs/constants.js.map +2 -2
- package/dist/cjs/constants/index.js +4 -1
- package/dist/cjs/constants/index.js.map +2 -2
- package/dist/cjs/exported-related/FilterBar/FilterBarDropdownMenu.js +40 -26
- package/dist/cjs/exported-related/FilterBar/FilterBarDropdownMenu.js.map +2 -2
- package/dist/cjs/exported-related/FilterBar/FilterMenuButton.js +113 -0
- package/dist/cjs/exported-related/FilterBar/FilterMenuButton.js.map +7 -0
- package/dist/cjs/exported-related/FilterBar/index.js +3 -1
- package/dist/cjs/exported-related/FilterBar/index.js.map +2 -2
- package/dist/cjs/exported-related/FilterPopover/index.js +13 -1
- package/dist/cjs/exported-related/FilterPopover/index.js.map +2 -2
- package/dist/cjs/exported-related/index.js +1 -0
- package/dist/cjs/exported-related/index.js.map +2 -2
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/parts/Headers/useHeaderResizer.js +21 -19
- package/dist/cjs/parts/Headers/useHeaderResizer.js.map +3 -3
- package/dist/cjs/parts/SortByCaret.js +2 -2
- package/dist/cjs/parts/SortByCaret.js.map +2 -2
- package/dist/esm/addons/Filters/Components/FreeTextSearchFilter/index.js +3 -2
- package/dist/esm/addons/Filters/Components/FreeTextSearchFilter/index.js.map +2 -2
- package/dist/esm/configs/constants.js +0 -1
- package/dist/esm/configs/constants.js.map +2 -2
- package/dist/esm/constants/index.js +4 -1
- package/dist/esm/constants/index.js.map +2 -2
- package/dist/esm/exported-related/FilterBar/FilterBarDropdownMenu.js +41 -27
- package/dist/esm/exported-related/FilterBar/FilterBarDropdownMenu.js.map +2 -2
- package/dist/esm/exported-related/FilterBar/FilterMenuButton.js +83 -0
- package/dist/esm/exported-related/FilterBar/FilterMenuButton.js.map +7 -0
- package/dist/esm/exported-related/FilterBar/index.js +3 -1
- package/dist/esm/exported-related/FilterBar/index.js.map +2 -2
- package/dist/esm/exported-related/FilterPopover/index.js +13 -1
- package/dist/esm/exported-related/FilterPopover/index.js.map +2 -2
- package/dist/esm/exported-related/index.js +2 -1
- package/dist/esm/exported-related/index.js.map +2 -2
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +2 -2
- package/dist/esm/parts/Headers/useHeaderResizer.js +21 -19
- package/dist/esm/parts/Headers/useHeaderResizer.js.map +3 -3
- package/dist/esm/parts/SortByCaret.js +2 -2
- package/dist/esm/parts/SortByCaret.js.map +2 -2
- package/dist/types/configs/constants.d.ts +0 -1
- package/dist/types/constants/index.d.ts +8 -0
- package/dist/types/exported-related/FilterBar/FilterMenuButton.d.ts +19 -0
- package/dist/types/exported-related/FilterBar/index.d.ts +1 -0
- package/dist/types/exported-related/index.d.ts +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/parts/Headers/useHeaderResizer.d.ts +1 -0
- package/dist/types/tests/playwright/DSDataTable.ControlledSortTestRenderer.d.ts +2 -0
- package/dist/types/tests/playwright/DSDataTable.test.playwright.d.ts +1 -0
- package/package.json +52 -51
- /package/dist/types/tests/a11y/{filter-bar-dropdown-menu.test.d.ts → out-of-the-box-filters.A11y.test.d.ts} +0 -0
|
@@ -16,6 +16,10 @@ const FilterButton = styled("span", { name: DSDataTableName, slot: DSDataTableSl
|
|
|
16
16
|
const PopperContent = styled("div", { name: DSDataTableName, slot: DSDataTableSlots.FILTER_POPOVER_CONTENT })`
|
|
17
17
|
background-color: #fff;
|
|
18
18
|
`;
|
|
19
|
+
const StyledPoppoverJS = styled(DSPopperJS, {
|
|
20
|
+
name: DSDataTableName,
|
|
21
|
+
slot: DSDataTableSlots.FILTER_POPOVER
|
|
22
|
+
})``;
|
|
19
23
|
const ButtonTrap = ({ cb }) => /* @__PURE__ */ jsx(
|
|
20
24
|
"span",
|
|
21
25
|
{
|
|
@@ -30,6 +34,12 @@ const FilterPopover = (props) => {
|
|
|
30
34
|
const { column, customStyles, reduxHeader, menuContent, columnId, ariaLabel, triggerIcon, innerRef } = props;
|
|
31
35
|
const filters = usePropsStore((state) => state.filters);
|
|
32
36
|
const getOwnerProps = usePropsStore((store) => store.get);
|
|
37
|
+
const getOwnerPropsArguments = useCallback(
|
|
38
|
+
() => ({
|
|
39
|
+
columnId: column.id
|
|
40
|
+
}),
|
|
41
|
+
[column.id]
|
|
42
|
+
);
|
|
33
43
|
const patchHeader = useInternalStore((state) => state.patchHeader);
|
|
34
44
|
const { isIconVisible, isMenuOpen } = useGetFilterVisibility(reduxHeader);
|
|
35
45
|
const [buttonReference, setButtonReference] = useState(null);
|
|
@@ -76,7 +86,7 @@ const FilterPopover = (props) => {
|
|
|
76
86
|
}
|
|
77
87
|
),
|
|
78
88
|
buttonReference && /* @__PURE__ */ jsx(
|
|
79
|
-
|
|
89
|
+
StyledPoppoverJS,
|
|
80
90
|
{
|
|
81
91
|
actionRef,
|
|
82
92
|
referenceElement: buttonReference,
|
|
@@ -92,6 +102,8 @@ const FilterPopover = (props) => {
|
|
|
92
102
|
minWidth: column.ref?.current?.offsetWidth ?? "0px"
|
|
93
103
|
},
|
|
94
104
|
placementOrderPreference: ["bottom-end", "top-end"],
|
|
105
|
+
getOwnerProps,
|
|
106
|
+
getOwnerPropsArguments,
|
|
95
107
|
children: /* @__PURE__ */ jsxs(PopperContent, { getOwnerProps, children: [
|
|
96
108
|
/* @__PURE__ */ jsx(ButtonTrap, { cb: buttonTrapCallback }),
|
|
97
109
|
menuContent,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/exported-related/FilterPopover/index.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable import/no-cycle */\n/* eslint-disable no-void */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\nimport { DSButtonV2 } from '@elliemae/ds-button-v2';\nimport type { DSPopperJST } from '@elliemae/ds-popperjs';\nimport { DSPopperJS } from '@elliemae/ds-popperjs';\nimport { mergeRefs, styled } from '@elliemae/ds-system';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { DSDataTableName, DSDataTableSlots } from '../../constants/index.js';\nimport { DATA_TESTID } from '../../configs/constants.js';\nimport { useInternalStore, usePropsStore } from '../../configs/useStore/createInternalAndPropsContext.js';\nimport type { FilterPopoverProps } from './types.js';\nimport { useGetFilterHandlers } from './useGetFilterHandlers.js';\nimport { useGetFilterVisibility } from './useGetFilterVisibility.js';\n\nconst FilterButton = styled('span', { name: DSDataTableName, slot: DSDataTableSlots.FILTER_POPOVER_BUTTON })<{\n hide: boolean;\n}>`\n display: inline-grid;\n ${(props) => (props.hide ? 'opacity: 0; display: none; width: 0;' : '')}\n`;\n\nconst PopperContent = styled('div', { name: DSDataTableName, slot: DSDataTableSlots.FILTER_POPOVER_CONTENT })`\n background-color: #fff;\n`;\n\nconst ButtonTrap = ({ cb }: { cb: () => void }) => (\n <span\n // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex\n tabIndex={0}\n onFocus={(e: React.FocusEvent) => {\n e.stopPropagation();\n cb();\n }}\n />\n);\n\nexport const FilterPopover: React.ComponentType<FilterPopoverProps> = (props: FilterPopoverProps) => {\n const { column, customStyles, reduxHeader, menuContent, columnId, ariaLabel, triggerIcon, innerRef } = props;\n\n const filters = usePropsStore((state) => state.filters);\n const getOwnerProps = usePropsStore((store) => store.get);\n\n const patchHeader = useInternalStore((state) => state.patchHeader);\n\n const { isIconVisible, isMenuOpen } = useGetFilterVisibility(reduxHeader);\n\n const [buttonReference, setButtonReference] = useState<HTMLButtonElement | null>(null);\n\n const [isButtonFocused, setIsButtonFocused] = useState(false);\n\n const { handleTriggerClick, handleClickOutsideMenu, handleMenuOnKeyDown, handleTriggerOnFocus, handleTriggerOnBlur } =\n useGetFilterHandlers(props, isMenuOpen, buttonReference, setIsButtonFocused);\n\n const buttonTrapCallback = useCallback(() => {\n patchHeader(columnId, { hideFilterMenu: true, hideFilterButton: false });\n buttonReference?.focus();\n }, [columnId, patchHeader, buttonReference]);\n\n const actionRef: Required<DSPopperJST.Props>['actionRef'] = useRef({\n update: null,\n });\n\n useEffect(() => {\n // When the filters change, we need to update the popper position,\n // because the filter bar might push the datatable up or down, causing the popper to be misaligned\n void actionRef.current.update?.();\n }, [filters]);\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={handleMenuOnKeyDown}\n >\n <FilterButton\n hide={!isIconVisible}\n data-testid={DATA_TESTID.DATA_TABLE_FILTER_BUTTON}\n getOwnerProps={getOwnerProps}\n >\n <DSButtonV2\n buttonType=\"icon\"\n size=\"s\"\n onClick={handleTriggerClick}\n onFocus={handleTriggerOnFocus}\n onBlur={handleTriggerOnBlur}\n innerRef={mergeRefs(isIconVisible && setButtonReference, innerRef)}\n tabIndex={reduxHeader?.withTabStops ? 0 : -1}\n aria-label={ariaLabel}\n aria-hidden={!isButtonFocused}\n data-testid={DATA_TESTID.DATA_TABLE_FILTER_BUTTON_ELEMENT}\n >\n {triggerIcon}\n </DSButtonV2>\n </FilterButton>\n {buttonReference && (\n <
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable import/no-cycle */\n/* eslint-disable no-void */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\nimport { DSButtonV2 } from '@elliemae/ds-button-v2';\nimport type { DSPopperJST } from '@elliemae/ds-popperjs';\nimport { DSPopperJS } from '@elliemae/ds-popperjs';\nimport { mergeRefs, styled } from '@elliemae/ds-system';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { DSDataTableName, DSDataTableSlots } from '../../constants/index.js';\nimport { DATA_TESTID } from '../../configs/constants.js';\nimport { useInternalStore, usePropsStore } from '../../configs/useStore/createInternalAndPropsContext.js';\nimport type { FilterPopoverProps } from './types.js';\nimport { useGetFilterHandlers } from './useGetFilterHandlers.js';\nimport { useGetFilterVisibility } from './useGetFilterVisibility.js';\n\nconst FilterButton = styled('span', { name: DSDataTableName, slot: DSDataTableSlots.FILTER_POPOVER_BUTTON })<{\n hide: boolean;\n}>`\n display: inline-grid;\n ${(props) => (props.hide ? 'opacity: 0; display: none; width: 0;' : '')}\n`;\n\nconst PopperContent = styled('div', { name: DSDataTableName, slot: DSDataTableSlots.FILTER_POPOVER_CONTENT })`\n background-color: #fff;\n`;\n\nconst StyledPoppoverJS = styled(DSPopperJS, {\n name: DSDataTableName,\n slot: DSDataTableSlots.FILTER_POPOVER,\n})``;\n\nconst ButtonTrap = ({ cb }: { cb: () => void }) => (\n <span\n // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex\n tabIndex={0}\n onFocus={(e: React.FocusEvent) => {\n e.stopPropagation();\n cb();\n }}\n />\n);\n\nexport const FilterPopover: React.ComponentType<FilterPopoverProps> = (props: FilterPopoverProps) => {\n const { column, customStyles, reduxHeader, menuContent, columnId, ariaLabel, triggerIcon, innerRef } = props;\n\n const filters = usePropsStore((state) => state.filters);\n const getOwnerProps = usePropsStore((store) => store.get);\n\n const getOwnerPropsArguments = useCallback(\n () => ({\n columnId: column.id,\n }),\n [column.id],\n );\n\n const patchHeader = useInternalStore((state) => state.patchHeader);\n\n const { isIconVisible, isMenuOpen } = useGetFilterVisibility(reduxHeader);\n\n const [buttonReference, setButtonReference] = useState<HTMLButtonElement | null>(null);\n\n const [isButtonFocused, setIsButtonFocused] = useState(false);\n\n const { handleTriggerClick, handleClickOutsideMenu, handleMenuOnKeyDown, handleTriggerOnFocus, handleTriggerOnBlur } =\n useGetFilterHandlers(props, isMenuOpen, buttonReference, setIsButtonFocused);\n\n const buttonTrapCallback = useCallback(() => {\n patchHeader(columnId, { hideFilterMenu: true, hideFilterButton: false });\n buttonReference?.focus();\n }, [columnId, patchHeader, buttonReference]);\n\n const actionRef: Required<DSPopperJST.Props>['actionRef'] = useRef({\n update: null,\n });\n\n useEffect(() => {\n // When the filters change, we need to update the popper position,\n // because the filter bar might push the datatable up or down, causing the popper to be misaligned\n void actionRef.current.update?.();\n }, [filters]);\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={handleMenuOnKeyDown}\n >\n <FilterButton\n hide={!isIconVisible}\n data-testid={DATA_TESTID.DATA_TABLE_FILTER_BUTTON}\n getOwnerProps={getOwnerProps}\n >\n <DSButtonV2\n buttonType=\"icon\"\n size=\"s\"\n onClick={handleTriggerClick}\n onFocus={handleTriggerOnFocus}\n onBlur={handleTriggerOnBlur}\n innerRef={mergeRefs(isIconVisible && setButtonReference, innerRef)}\n tabIndex={reduxHeader?.withTabStops ? 0 : -1}\n aria-label={ariaLabel}\n aria-hidden={!isButtonFocused}\n data-testid={DATA_TESTID.DATA_TABLE_FILTER_BUTTON_ELEMENT}\n >\n {triggerIcon}\n </DSButtonV2>\n </FilterButton>\n {buttonReference && (\n <StyledPoppoverJS\n actionRef={actionRef}\n referenceElement={buttonReference}\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 withoutAnimation\n extraPopperStyles={{\n ...customStyles,\n minWidth: column.ref?.current?.offsetWidth ?? '0px',\n }}\n placementOrderPreference={['bottom-end', 'top-end']}\n getOwnerProps={getOwnerProps}\n getOwnerPropsArguments={getOwnerPropsArguments}\n >\n <PopperContent getOwnerProps={getOwnerProps}>\n <ButtonTrap cb={buttonTrapCallback} />\n {menuContent}\n <ButtonTrap cb={buttonTrapCallback} />\n </PopperContent>\n </StyledPoppoverJS>\n )}\n </div>\n );\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -14,12 +14,13 @@ import {
|
|
|
14
14
|
currencyRangeFilterFn,
|
|
15
15
|
dateRangeFilterFn
|
|
16
16
|
} from "./Filters/index.js";
|
|
17
|
-
import { FilterBarDropdownMenu } from "./FilterBar/index.js";
|
|
17
|
+
import { FilterBarDropdownMenu, FilterMenuButton } from "./FilterBar/index.js";
|
|
18
18
|
import { SkeletonCell, SkeletonHeaderCell } from "./Skeleton/index.js";
|
|
19
19
|
export {
|
|
20
20
|
EditableCell,
|
|
21
21
|
FILTER_TYPES,
|
|
22
22
|
FilterBarDropdownMenu,
|
|
23
|
+
FilterMenuButton,
|
|
23
24
|
FilterPopover,
|
|
24
25
|
ROW_VARIANTS,
|
|
25
26
|
ROW_VARIANT_COMPACT_KEY,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../src/exported-related/index.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export { FilterPopover } from './FilterPopover/index.js';\nexport { EditableCell } from './EditableCell.js';\nexport { Toolbar } from './Toolbar/index.js';\nexport { groupBy } from './groupBy.js';\nexport { FILTER_TYPES } from './FilterTypes.js';\nexport { ROW_VARIANTS, ROW_VARIANT_KEY, ROW_VARIANT_COMPACT_KEY } from './RowVariants.js';\nexport {\n applyOutOfTheBoxFilters,\n singleDateFilterFn,\n singleSelectFilterFn,\n multiSelectFilterFn,\n numberRangeFilterFn,\n currencyRangeFilterFn,\n dateRangeFilterFn,\n} from './Filters/index.js';\nexport { FilterBarDropdownMenu } from './FilterBar/index.js';\nexport { SkeletonCell, SkeletonHeaderCell } from './Skeleton/index.js';\n"],
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,qBAAqB;AAC9B,SAAS,oBAAoB;AAC7B,SAAS,eAAe;AACxB,SAAS,eAAe;AACxB,SAAS,oBAAoB;AAC7B,SAAS,cAAc,iBAAiB,+BAA+B;AACvE;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export { FilterPopover } from './FilterPopover/index.js';\nexport { EditableCell } from './EditableCell.js';\nexport { Toolbar } from './Toolbar/index.js';\nexport { groupBy } from './groupBy.js';\nexport { FILTER_TYPES } from './FilterTypes.js';\nexport { ROW_VARIANTS, ROW_VARIANT_KEY, ROW_VARIANT_COMPACT_KEY } from './RowVariants.js';\nexport {\n applyOutOfTheBoxFilters,\n singleDateFilterFn,\n singleSelectFilterFn,\n multiSelectFilterFn,\n numberRangeFilterFn,\n currencyRangeFilterFn,\n dateRangeFilterFn,\n} from './Filters/index.js';\nexport { FilterBarDropdownMenu, FilterMenuButton } from './FilterBar/index.js';\nexport { SkeletonCell, SkeletonHeaderCell } from './Skeleton/index.js';\n"],
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,qBAAqB;AAC9B,SAAS,oBAAoB;AAC7B,SAAS,eAAe;AACxB,SAAS,eAAe;AACxB,SAAS,oBAAoB;AAC7B,SAAS,cAAc,iBAAiB,+BAA+B;AACvE;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,uBAAuB,wBAAwB;AACxD,SAAS,cAAc,0BAA0B;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/esm/index.js
CHANGED
|
@@ -17,6 +17,7 @@ import {
|
|
|
17
17
|
currencyRangeFilterFn,
|
|
18
18
|
dateRangeFilterFn,
|
|
19
19
|
FilterBarDropdownMenu,
|
|
20
|
+
FilterMenuButton,
|
|
20
21
|
SkeletonCell,
|
|
21
22
|
SkeletonHeaderCell
|
|
22
23
|
} from "./exported-related/index.js";
|
|
@@ -47,6 +48,7 @@ export {
|
|
|
47
48
|
EditableCell,
|
|
48
49
|
FILTER_TYPES,
|
|
49
50
|
FilterBarDropdownMenu,
|
|
51
|
+
FilterMenuButton,
|
|
50
52
|
FilterPopover,
|
|
51
53
|
INTERNAL_COLUMNS,
|
|
52
54
|
ROW_VARIANTS,
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../src/index.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export { DataTable, DataTableWithSchema } from './DataTable.js';\n\nexport {\n FilterPopover,\n EditableCell,\n Toolbar,\n groupBy,\n FILTER_TYPES,\n ROW_VARIANTS,\n ROW_VARIANT_KEY,\n ROW_VARIANT_COMPACT_KEY,\n applyOutOfTheBoxFilters,\n singleDateFilterFn,\n singleSelectFilterFn,\n multiSelectFilterFn,\n numberRangeFilterFn,\n currencyRangeFilterFn,\n dateRangeFilterFn,\n FilterBarDropdownMenu,\n SkeletonCell,\n SkeletonHeaderCell,\n} from './exported-related/index.js';\n\nexport {\n actionColumn,\n expandRowColumn,\n multiSelectColumn,\n singleSelectColumn,\n dragHandleColumn,\n INTERNAL_COLUMNS,\n} from './addons/Columns/index.js';\n\nexport type { DSDataTableT } from './react-desc-prop-types.js';\n\nexport { useWholeStore } from './configs/useStore/useStore.js';\n\nexport {\n DATA_TABLE_DATA_TESTID,\n DATA_TABLE_SLOTS,\n DSDataTableDataTestIds,\n DSDataTableName,\n DSDataTableSlots,\n} from './constants/index.js';\n"],
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,WAAW,2BAA2B;AAE/C;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAIP,SAAS,qBAAqB;AAE9B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;",
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export { DataTable, DataTableWithSchema } from './DataTable.js';\n\nexport {\n FilterPopover,\n EditableCell,\n Toolbar,\n groupBy,\n FILTER_TYPES,\n ROW_VARIANTS,\n ROW_VARIANT_KEY,\n ROW_VARIANT_COMPACT_KEY,\n applyOutOfTheBoxFilters,\n singleDateFilterFn,\n singleSelectFilterFn,\n multiSelectFilterFn,\n numberRangeFilterFn,\n currencyRangeFilterFn,\n dateRangeFilterFn,\n FilterBarDropdownMenu,\n FilterMenuButton,\n SkeletonCell,\n SkeletonHeaderCell,\n} from './exported-related/index.js';\n\nexport {\n actionColumn,\n expandRowColumn,\n multiSelectColumn,\n singleSelectColumn,\n dragHandleColumn,\n INTERNAL_COLUMNS,\n} from './addons/Columns/index.js';\n\nexport type { DSDataTableT } from './react-desc-prop-types.js';\n\nexport { useWholeStore } from './configs/useStore/useStore.js';\n\nexport {\n DATA_TABLE_DATA_TESTID,\n DATA_TABLE_SLOTS,\n DSDataTableDataTestIds,\n DSDataTableName,\n DSDataTableSlots,\n} from './constants/index.js';\n"],
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,WAAW,2BAA2B;AAE/C;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAIP,SAAS,qBAAqB;AAE9B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { cloneDeep } from "lodash-es";
|
|
3
|
-
import { useCallback, useMemo, useState } from "react";
|
|
3
|
+
import React2, { useCallback, useMemo, useState } from "react";
|
|
4
4
|
import { usePropsStore } from "../../configs/useStore/createInternalAndPropsContext.js";
|
|
5
5
|
import {
|
|
6
6
|
changeGridLayout,
|
|
@@ -44,43 +44,45 @@ const useHeaderResizer = ({
|
|
|
44
44
|
() => visibleColumnsOnGridLayout.findIndex((col) => col.id === columnId),
|
|
45
45
|
[columnId, visibleColumnsOnGridLayout]
|
|
46
46
|
);
|
|
47
|
+
const realColumnIndexRef = React2.useRef(realColumnIndex);
|
|
48
|
+
realColumnIndexRef.current = realColumnIndex;
|
|
47
49
|
const pushColumnSizeChange = useCallback(
|
|
48
50
|
(nextWidth) => {
|
|
49
|
-
if (nextWidth ===
|
|
51
|
+
if (nextWidth === visibleColumnsOnGridLayout[realColumnIndexRef.current].width) return;
|
|
50
52
|
onColumnResize?.(columnId, nextWidth);
|
|
51
|
-
visibleColumnsOnGridLayout[
|
|
53
|
+
visibleColumnsOnGridLayout[realColumnIndexRef.current].width = nextWidth;
|
|
52
54
|
onColumnSizeChange(visibleColumnsCopy, columnId, nextWidth);
|
|
53
55
|
},
|
|
54
|
-
[columnId, onColumnResize, onColumnSizeChange,
|
|
56
|
+
[columnId, onColumnResize, onColumnSizeChange, realColumnIndexRef, visibleColumnsCopy, visibleColumnsOnGridLayout]
|
|
55
57
|
);
|
|
56
58
|
const onResizeStart = useCallback(() => {
|
|
57
59
|
setIsResizing(true);
|
|
58
60
|
}, []);
|
|
59
61
|
const onResizeEnd = useCallback(() => {
|
|
60
62
|
setIsResizing(false);
|
|
61
|
-
pushColumnSizeChange(getGridLayout(virtualListRef.current)[
|
|
63
|
+
pushColumnSizeChange(getGridLayout(virtualListRef.current)[realColumnIndexRef.current]);
|
|
62
64
|
removeGridLayout(virtualListRef.current);
|
|
63
|
-
}, [pushColumnSizeChange, virtualListRef,
|
|
65
|
+
}, [pushColumnSizeChange, virtualListRef, realColumnIndexRef]);
|
|
64
66
|
const onResizeHandler = useCallback(
|
|
65
67
|
(e) => {
|
|
66
|
-
if (
|
|
68
|
+
if (realColumnIndexRef.current === -1) return;
|
|
67
69
|
const delta = ("clientX" in e ? e.clientX : e.touches[0].clientX) - (innerRef.current?.getBoundingClientRect().x ?? 0);
|
|
68
|
-
const originalWidth = getGridLayout(virtualListRef.current)[
|
|
70
|
+
const originalWidth = getGridLayout(virtualListRef.current)[realColumnIndexRef.current];
|
|
69
71
|
const widthWithDelta = narrow(
|
|
70
72
|
originalWidth + delta,
|
|
71
|
-
visibleColumnsOnGridLayout[
|
|
72
|
-
visibleColumnsOnGridLayout[
|
|
73
|
+
visibleColumnsOnGridLayout[realColumnIndexRef.current].minWidth,
|
|
74
|
+
visibleColumnsOnGridLayout[realColumnIndexRef.current].maxWidth
|
|
73
75
|
);
|
|
74
|
-
changeGridLayout(virtualListRef.current,
|
|
76
|
+
changeGridLayout(virtualListRef.current, realColumnIndexRef.current, widthWithDelta);
|
|
75
77
|
setSubColumnsGridLayout(virtualListRef.current, visibleColumnsCopy);
|
|
76
78
|
e.preventDefault();
|
|
77
79
|
e.stopPropagation();
|
|
78
80
|
},
|
|
79
|
-
[
|
|
81
|
+
[innerRef, virtualListRef, visibleColumnsCopy, visibleColumnsOnGridLayout]
|
|
80
82
|
);
|
|
81
83
|
const handleKeyboardResize = useCallback(
|
|
82
84
|
(e) => {
|
|
83
|
-
if (
|
|
85
|
+
if (realColumnIndexRef.current === -1) return;
|
|
84
86
|
if (e.key === "Enter") {
|
|
85
87
|
e.stopPropagation();
|
|
86
88
|
}
|
|
@@ -89,18 +91,18 @@ const useHeaderResizer = ({
|
|
|
89
91
|
}
|
|
90
92
|
const delta = getCorrectDelta(e);
|
|
91
93
|
if (delta === 0) return;
|
|
92
|
-
const originalWidth = getGridLayout(virtualListRef.current)[
|
|
94
|
+
const originalWidth = getGridLayout(virtualListRef.current)[realColumnIndexRef.current];
|
|
93
95
|
const widthWithDelta = narrow(
|
|
94
96
|
originalWidth + delta,
|
|
95
|
-
visibleColumnsOnGridLayout[
|
|
96
|
-
visibleColumnsOnGridLayout[
|
|
97
|
+
visibleColumnsOnGridLayout[realColumnIndexRef.current].minWidth,
|
|
98
|
+
visibleColumnsOnGridLayout[realColumnIndexRef.current].maxWidth
|
|
97
99
|
);
|
|
98
|
-
changeGridLayout(virtualListRef.current,
|
|
100
|
+
changeGridLayout(virtualListRef.current, realColumnIndexRef.current, widthWithDelta);
|
|
99
101
|
setSubColumnsGridLayout(virtualListRef.current, visibleColumnsCopy);
|
|
100
|
-
pushColumnSizeChange(getGridLayout(virtualListRef.current)[
|
|
102
|
+
pushColumnSizeChange(getGridLayout(virtualListRef.current)[realColumnIndexRef.current] + delta);
|
|
101
103
|
removeGridLayout(virtualListRef.current);
|
|
102
104
|
},
|
|
103
|
-
[pushColumnSizeChange,
|
|
105
|
+
[pushColumnSizeChange, virtualListRef, visibleColumnsCopy, visibleColumnsOnGridLayout]
|
|
104
106
|
);
|
|
105
107
|
return {
|
|
106
108
|
isResizing,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/Headers/useHeaderResizer.ts"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { cloneDeep } from 'lodash-es';\nimport { useCallback, useMemo, useState } from 'react';\nimport { usePropsStore } from '../../configs/useStore/createInternalAndPropsContext.js';\nimport {\n changeGridLayout,\n getGridLayout,\n removeGridLayout,\n setSubColumnsGridLayout,\n} from '../../helpers/gridLayoutHelpers.js';\nimport type { DSDataTableT } from '../../react-desc-prop-types.js';\n\n// if number > max => max\n// if number < min => min\n// else => number\nconst narrow = (value: number, min: number | undefined, max: number | undefined): number =>\n Math.min(Math.max(value, min ?? 30), max ?? Infinity);\n\n// Returns the delta of the keyboard event\nconst getCorrectDelta = (e: React.KeyboardEvent) => {\n let multiplier = 1;\n\n if (e.shiftKey) multiplier *= 5;\n if (e.altKey) multiplier *= 10;\n\n if (e.code === 'ArrowLeft') {\n return -multiplier;\n }\n if (e.code === 'ArrowRight') {\n return multiplier;\n }\n return 0;\n};\n\nexport const useHeaderResizer = ({\n columnId,\n innerRef,\n}: {\n columnId: string;\n innerRef: React.MutableRefObject<HTMLInputElement | null>;\n}) => {\n const visibleColumns = usePropsStore((state) => state.visibleColumns);\n const onColumnResize = usePropsStore((state) => state.onColumnResize);\n const onColumnSizeChange = usePropsStore((state) => state.onColumnSizeChange);\n const virtualListRef = usePropsStore((state) => state.virtualListRef);\n\n const [isResizing, setIsResizing] = useState(false);\n\n const visibleColumnsCopy = useMemo(() => cloneDeep(visibleColumns), [visibleColumns]);\n\n const visibleColumnsOnGridLayout = useMemo(\n () =>\n visibleColumnsCopy.reduce((acc, cur) => {\n if (cur.columns) {\n return acc.concat(cur.columns);\n }\n return acc.concat(cur);\n }, [] as DSDataTableT.InternalColumn[]),\n [visibleColumnsCopy],\n );\n\n const realColumnIndex = useMemo(\n () => visibleColumnsOnGridLayout.findIndex((col) => col.id === columnId),\n [columnId, visibleColumnsOnGridLayout],\n );\n\n // Notifies the user of the change in the column size\n const pushColumnSizeChange = useCallback(\n (nextWidth: number) => {\n // PUI-12695: Avoid unnecessary calls to onColumnResize\n // Avoid calling onColumnResize if the width of the column has not changed\n // unnecessary calls to onColumnResize can cause performance issues (next resizes were not working)\n if (nextWidth ===
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,iBAAiB;AAC1B,
|
|
6
|
-
"names": []
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { cloneDeep } from 'lodash-es';\nimport React, { useCallback, useMemo, useState } from 'react';\nimport { usePropsStore } from '../../configs/useStore/createInternalAndPropsContext.js';\nimport {\n changeGridLayout,\n getGridLayout,\n removeGridLayout,\n setSubColumnsGridLayout,\n} from '../../helpers/gridLayoutHelpers.js';\nimport type { DSDataTableT } from '../../react-desc-prop-types.js';\n\n// if number > max => max\n// if number < min => min\n// else => number\nconst narrow = (value: number, min: number | undefined, max: number | undefined): number =>\n Math.min(Math.max(value, min ?? 30), max ?? Infinity);\n\n// Returns the delta of the keyboard event\nconst getCorrectDelta = (e: React.KeyboardEvent) => {\n let multiplier = 1;\n\n if (e.shiftKey) multiplier *= 5;\n if (e.altKey) multiplier *= 10;\n\n if (e.code === 'ArrowLeft') {\n return -multiplier;\n }\n if (e.code === 'ArrowRight') {\n return multiplier;\n }\n return 0;\n};\n\nexport const useHeaderResizer = ({\n columnId,\n innerRef,\n}: {\n columnId: string;\n innerRef: React.MutableRefObject<HTMLInputElement | null>;\n}) => {\n const visibleColumns = usePropsStore((state) => state.visibleColumns);\n const onColumnResize = usePropsStore((state) => state.onColumnResize);\n const onColumnSizeChange = usePropsStore((state) => state.onColumnSizeChange);\n const virtualListRef = usePropsStore((state) => state.virtualListRef);\n\n const [isResizing, setIsResizing] = useState(false);\n\n const visibleColumnsCopy = useMemo(() => cloneDeep(visibleColumns), [visibleColumns]);\n\n const visibleColumnsOnGridLayout = useMemo(\n () =>\n visibleColumnsCopy.reduce((acc, cur) => {\n if (cur.columns) {\n return acc.concat(cur.columns);\n }\n return acc.concat(cur);\n }, [] as DSDataTableT.InternalColumn[]),\n [visibleColumnsCopy],\n );\n\n const realColumnIndex = useMemo(\n () => visibleColumnsOnGridLayout.findIndex((col) => col.id === columnId),\n [columnId, visibleColumnsOnGridLayout],\n );\n\n const realColumnIndexRef = React.useRef(realColumnIndex);\n realColumnIndexRef.current = realColumnIndex;\n\n // Notifies the user of the change in the column size\n const pushColumnSizeChange = useCallback(\n (nextWidth: number) => {\n // PUI-12695: Avoid unnecessary calls to onColumnResize\n // Avoid calling onColumnResize if the width of the column has not changed\n // unnecessary calls to onColumnResize can cause performance issues (next resizes were not working)\n if (nextWidth === visibleColumnsOnGridLayout[realColumnIndexRef.current].width) return;\n onColumnResize?.(columnId, nextWidth);\n // this next line is updating also the visibleColumnsCopy via mutable changes\n // the mutable changes here works because what we mutate is a cloneDeep of the columns\n visibleColumnsOnGridLayout[realColumnIndexRef.current].width = nextWidth;\n onColumnSizeChange(visibleColumnsCopy, columnId, nextWidth);\n },\n [columnId, onColumnResize, onColumnSizeChange, realColumnIndexRef, visibleColumnsCopy, visibleColumnsOnGridLayout],\n );\n\n const onResizeStart = useCallback(() => {\n setIsResizing(true);\n }, []);\n\n const onResizeEnd = useCallback(() => {\n setIsResizing(false);\n pushColumnSizeChange(getGridLayout(virtualListRef.current)[realColumnIndexRef.current]);\n removeGridLayout(virtualListRef.current);\n }, [pushColumnSizeChange, virtualListRef, realColumnIndexRef]);\n\n // Mouse resize\n const onResizeHandler = useCallback(\n (e: MouseEvent | TouchEvent) => {\n if (realColumnIndexRef.current === -1) return;\n\n const delta =\n ('clientX' in e ? e.clientX : e.touches[0].clientX) - (innerRef.current?.getBoundingClientRect().x ?? 0); // delta in pixels\n\n const originalWidth = getGridLayout(virtualListRef.current)[realColumnIndexRef.current];\n\n const widthWithDelta = narrow(\n originalWidth + delta,\n visibleColumnsOnGridLayout[realColumnIndexRef.current].minWidth,\n visibleColumnsOnGridLayout[realColumnIndexRef.current].maxWidth,\n );\n\n changeGridLayout(virtualListRef.current, realColumnIndexRef.current, widthWithDelta);\n setSubColumnsGridLayout(virtualListRef.current, visibleColumnsCopy);\n\n // We will notify the user of the change in the column size only when the user releases the mouse button\n\n // To prevent text selection\n e.preventDefault();\n e.stopPropagation();\n },\n [innerRef, virtualListRef, visibleColumnsCopy, visibleColumnsOnGridLayout],\n );\n\n // Keyboard resize\n const handleKeyboardResize = useCallback(\n (e: React.KeyboardEvent) => {\n if (realColumnIndexRef.current === -1) return;\n\n if (e.key === 'Enter') {\n e.stopPropagation();\n }\n\n if (e.code === 'ArrowLeft' || e.code === 'ArrowRight') {\n e.preventDefault();\n }\n\n const delta = getCorrectDelta(e);\n\n if (delta === 0) return;\n\n const originalWidth = getGridLayout(virtualListRef.current)[realColumnIndexRef.current];\n\n const widthWithDelta = narrow(\n originalWidth + delta,\n visibleColumnsOnGridLayout[realColumnIndexRef.current].minWidth,\n visibleColumnsOnGridLayout[realColumnIndexRef.current].maxWidth,\n );\n\n changeGridLayout(virtualListRef.current, realColumnIndexRef.current, widthWithDelta);\n setSubColumnsGridLayout(virtualListRef.current, visibleColumnsCopy);\n\n pushColumnSizeChange(getGridLayout(virtualListRef.current)[realColumnIndexRef.current] + delta);\n removeGridLayout(virtualListRef.current);\n },\n [pushColumnSizeChange, virtualListRef, visibleColumnsCopy, visibleColumnsOnGridLayout],\n );\n\n return {\n isResizing,\n onResizeStart,\n onResizeEnd,\n onResizeHandler,\n handleKeyboardResize,\n };\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React"]
|
|
7
7
|
}
|
|
@@ -23,14 +23,14 @@ const SortByCaret = React2.memo(({ isSortedDesc, isReachable, reduxHeader, inner
|
|
|
23
23
|
}
|
|
24
24
|
return /* @__PURE__ */ jsx(ArrowheadUp, { color: iconColor });
|
|
25
25
|
}, [isSortedDesc]);
|
|
26
|
-
|
|
26
|
+
const shouldHideButton = !showSortCaret && !isMenuOpen && !isIconVisible && isSortedDesc === void 0;
|
|
27
27
|
return /* @__PURE__ */ jsx(
|
|
28
28
|
DSButtonV2,
|
|
29
29
|
{
|
|
30
30
|
onClick,
|
|
31
31
|
tabIndex: isReachable ? 0 : -1,
|
|
32
32
|
buttonType: "icon",
|
|
33
|
-
style: { marginLeft: "4px" },
|
|
33
|
+
style: { marginLeft: "4px", display: shouldHideButton ? "none" : "revert" },
|
|
34
34
|
"aria-label": `Sort ${column.id} ${isSortedDesc ? "ascending" : "descending"}`,
|
|
35
35
|
size: "s",
|
|
36
36
|
innerRef,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../src/parts/SortByCaret.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useMemo } from 'react';\nimport type { SvgIconT } from '@elliemae/ds-icons';\nimport { ArrowheadDown, ArrowheadUp, SortNeutral } from '@elliemae/ds-icons';\nimport { DSButtonV2 } from '@elliemae/ds-button-v2';\nimport type { DSDataTableT } from '../react-desc-prop-types.js';\nimport { DATA_TESTID } from '../configs/constants.js';\nimport { useGetFilterVisibility } from '../exported-related/FilterPopover/useGetFilterVisibility.js';\nconst iconColor: SvgIconT.ColorType = ['brand-primary', '800'];\n\nexport const SortByCaret: React.ComponentType<{\n isSortedDesc: boolean | undefined;\n onClick: (e: React.KeyboardEvent<HTMLButtonElement> | React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n isReachable: boolean;\n column: DSDataTableT.InternalColumn;\n reduxHeader: DSDataTableT.ReduxHeader;\n innerRef: React.RefObject<HTMLButtonElement>;\n}> = React.memo(({ isSortedDesc, isReachable, reduxHeader, innerRef, column, onClick }) => {\n const { isMenuOpen, isIconVisible } = useGetFilterVisibility(reduxHeader);\n\n const { showSortCaret } = useMemo(\n () =>\n reduxHeader || {\n showSortCaret: false,\n },\n [reduxHeader],\n );\n\n const icon = useMemo(() => {\n if (isSortedDesc === undefined) {\n return <SortNeutral color={iconColor} />;\n }\n\n if (isSortedDesc) {\n return <ArrowheadDown size=\"s\" color={iconColor} />;\n }\n\n return <ArrowheadUp color={iconColor} />;\n }, [isSortedDesc]);\n\n
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;AC6BV;AA7Bb,OAAOA,UAAS,eAAe;AAE/B,SAAS,eAAe,aAAa,mBAAmB;AACxD,SAAS,kBAAkB;AAE3B,SAAS,mBAAmB;AAC5B,SAAS,8BAA8B;AACvC,MAAM,YAAgC,CAAC,iBAAiB,KAAK;AAEtD,MAAM,cAORA,OAAM,KAAK,CAAC,EAAE,cAAc,aAAa,aAAa,UAAU,QAAQ,QAAQ,MAAM;AACzF,QAAM,EAAE,YAAY,cAAc,IAAI,uBAAuB,WAAW;AAExE,QAAM,EAAE,cAAc,IAAI;AAAA,IACxB,MACE,eAAe;AAAA,MACb,eAAe;AAAA,IACjB;AAAA,IACF,CAAC,WAAW;AAAA,EACd;AAEA,QAAM,OAAO,QAAQ,MAAM;AACzB,QAAI,iBAAiB,QAAW;AAC9B,aAAO,oBAAC,eAAY,OAAO,WAAW;AAAA,IACxC;AAEA,QAAI,cAAc;AAChB,aAAO,oBAAC,iBAAc,MAAK,KAAI,OAAO,WAAW;AAAA,IACnD;AAEA,WAAO,oBAAC,eAAY,OAAO,WAAW;AAAA,EACxC,GAAG,CAAC,YAAY,CAAC;
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useMemo } from 'react';\nimport type { SvgIconT } from '@elliemae/ds-icons';\nimport { ArrowheadDown, ArrowheadUp, SortNeutral } from '@elliemae/ds-icons';\nimport { DSButtonV2 } from '@elliemae/ds-button-v2';\nimport type { DSDataTableT } from '../react-desc-prop-types.js';\nimport { DATA_TESTID } from '../configs/constants.js';\nimport { useGetFilterVisibility } from '../exported-related/FilterPopover/useGetFilterVisibility.js';\nconst iconColor: SvgIconT.ColorType = ['brand-primary', '800'];\n\nexport const SortByCaret: React.ComponentType<{\n isSortedDesc: boolean | undefined;\n onClick: (e: React.KeyboardEvent<HTMLButtonElement> | React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n isReachable: boolean;\n column: DSDataTableT.InternalColumn;\n reduxHeader: DSDataTableT.ReduxHeader;\n innerRef: React.RefObject<HTMLButtonElement>;\n}> = React.memo(({ isSortedDesc, isReachable, reduxHeader, innerRef, column, onClick }) => {\n const { isMenuOpen, isIconVisible } = useGetFilterVisibility(reduxHeader);\n\n const { showSortCaret } = useMemo(\n () =>\n reduxHeader || {\n showSortCaret: false,\n },\n [reduxHeader],\n );\n\n const icon = useMemo(() => {\n if (isSortedDesc === undefined) {\n return <SortNeutral color={iconColor} />;\n }\n\n if (isSortedDesc) {\n return <ArrowheadDown size=\"s\" color={iconColor} />;\n }\n\n return <ArrowheadUp color={iconColor} />;\n }, [isSortedDesc]);\n\n /**\n * PUI - 15155 (https://jira.elliemae.io/browse/PUI-15155)\n * Instead of conditionally rendering null, we use CSS to hide the button.\n * This prevents the button from unmounting when the filter menu opens or closes,\n * ensuring that event handlers (e.g., sorting clicks) remain attached.\n * */\n const shouldHideButton = !showSortCaret && !isMenuOpen && !isIconVisible && isSortedDesc === undefined;\n\n return (\n <DSButtonV2\n onClick={onClick}\n tabIndex={isReachable ? 0 : -1}\n buttonType=\"icon\"\n style={{ marginLeft: '4px', display: shouldHideButton ? 'none' : 'revert' }}\n aria-label={`Sort ${column.id} ${isSortedDesc ? 'ascending' : 'descending'}`}\n size=\"s\"\n innerRef={innerRef}\n data-testid={DATA_TESTID.DATA_TABLE_SORT_BUTTON}\n >\n {icon}\n </DSButtonV2>\n );\n});\n"],
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;AC6BV;AA7Bb,OAAOA,UAAS,eAAe;AAE/B,SAAS,eAAe,aAAa,mBAAmB;AACxD,SAAS,kBAAkB;AAE3B,SAAS,mBAAmB;AAC5B,SAAS,8BAA8B;AACvC,MAAM,YAAgC,CAAC,iBAAiB,KAAK;AAEtD,MAAM,cAORA,OAAM,KAAK,CAAC,EAAE,cAAc,aAAa,aAAa,UAAU,QAAQ,QAAQ,MAAM;AACzF,QAAM,EAAE,YAAY,cAAc,IAAI,uBAAuB,WAAW;AAExE,QAAM,EAAE,cAAc,IAAI;AAAA,IACxB,MACE,eAAe;AAAA,MACb,eAAe;AAAA,IACjB;AAAA,IACF,CAAC,WAAW;AAAA,EACd;AAEA,QAAM,OAAO,QAAQ,MAAM;AACzB,QAAI,iBAAiB,QAAW;AAC9B,aAAO,oBAAC,eAAY,OAAO,WAAW;AAAA,IACxC;AAEA,QAAI,cAAc;AAChB,aAAO,oBAAC,iBAAc,MAAK,KAAI,OAAO,WAAW;AAAA,IACnD;AAEA,WAAO,oBAAC,eAAY,OAAO,WAAW;AAAA,EACxC,GAAG,CAAC,YAAY,CAAC;AAQjB,QAAM,mBAAmB,CAAC,iBAAiB,CAAC,cAAc,CAAC,iBAAiB,iBAAiB;AAE7F,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,UAAU,cAAc,IAAI;AAAA,MAC5B,YAAW;AAAA,MACX,OAAO,EAAE,YAAY,OAAO,SAAS,mBAAmB,SAAS,SAAS;AAAA,MAC1E,cAAY,QAAQ,OAAO,EAAE,IAAI,eAAe,cAAc,YAAY;AAAA,MAC1E,MAAK;AAAA,MACL;AAAA,MACA,eAAa,YAAY;AAAA,MAExB;AAAA;AAAA,EACH;AAEJ,CAAC;",
|
|
6
6
|
"names": ["React"]
|
|
7
7
|
}
|
|
@@ -30,7 +30,6 @@ export declare const DATA_TESTID: {
|
|
|
30
30
|
readonly DATA_TABLE_FILTER_BUTTON: "data-table-filter-menu-button";
|
|
31
31
|
readonly DATA_TABLE_FILTER_BUTTON_ELEMENT: "ds-button";
|
|
32
32
|
readonly DATA_TABLE_FILTER_MENU_CONTENT: "data-table-filter-menu-content";
|
|
33
|
-
readonly DATA_TABLE_FILTER_FREE_TEXT_SEARCH_WRAPPER: "data-table-filter-free-text-search_wrapper";
|
|
34
33
|
readonly DATA_TABLE_FILTER_FREE_TEXT_SEARCH: "data-table-filter-free-text-search";
|
|
35
34
|
readonly DATA_TABLE_ROW_CONTENT: "data-table-row-content";
|
|
36
35
|
readonly DATA_TABLE_ROW: "data-table-row";
|
|
@@ -44,6 +44,8 @@ export declare const DATA_TABLE_SLOTS: {
|
|
|
44
44
|
readonly FILTER_BAR_WRAPPER: "filter-bar-wrapper";
|
|
45
45
|
readonly FREE_TEXT_SEARCH_FILTER: "free-text-search-filter";
|
|
46
46
|
readonly FREE_TEXT_SEARCH_WRAPPER: "free-text-search-wrapper";
|
|
47
|
+
readonly FILTER_POPOVER: "filter-popover";
|
|
48
|
+
readonly FILTER_BAR_MENU_BUTTON: "filter-bar-menu-button";
|
|
47
49
|
};
|
|
48
50
|
export declare const DATA_TABLE_DATA_TESTID: {
|
|
49
51
|
/**
|
|
@@ -62,6 +64,7 @@ export declare const DATA_TABLE_DATA_TESTID: {
|
|
|
62
64
|
ROOT: string;
|
|
63
65
|
VIRTUAL_LIST_WRAPPER: string;
|
|
64
66
|
GROUP_HEADER_CONTAINER: string;
|
|
67
|
+
FILTER_BAR_MENU_BUTTON: string;
|
|
65
68
|
EXPAND_CELL_CONTAINER: string;
|
|
66
69
|
DATA_TABLE_WRAPPER: string;
|
|
67
70
|
DATA_TABLE_GLOBAL_EXPAND_CELL: string;
|
|
@@ -130,6 +133,7 @@ export declare const DATA_TABLE_DATA_TESTID: {
|
|
|
130
133
|
LOADER_WRAPPER: "ds-datatable-loader-wrapper";
|
|
131
134
|
FILTER_BAR_WRAPPER: "ds-datatable-filter-bar-wrapper";
|
|
132
135
|
FREE_TEXT_SEARCH_WRAPPER: "ds-datatable-free-text-search-wrapper";
|
|
136
|
+
FILTER_POPOVER: "ds-datatable-filter-popover";
|
|
133
137
|
};
|
|
134
138
|
export declare const DSDataTableSlots: {
|
|
135
139
|
readonly ROOT: "root";
|
|
@@ -176,6 +180,8 @@ export declare const DSDataTableSlots: {
|
|
|
176
180
|
readonly FILTER_BAR_WRAPPER: "filter-bar-wrapper";
|
|
177
181
|
readonly FREE_TEXT_SEARCH_FILTER: "free-text-search-filter";
|
|
178
182
|
readonly FREE_TEXT_SEARCH_WRAPPER: "free-text-search-wrapper";
|
|
183
|
+
readonly FILTER_POPOVER: "filter-popover";
|
|
184
|
+
readonly FILTER_BAR_MENU_BUTTON: "filter-bar-menu-button";
|
|
179
185
|
};
|
|
180
186
|
export declare const DSDataTableDataTestIds: {
|
|
181
187
|
/**
|
|
@@ -194,6 +200,7 @@ export declare const DSDataTableDataTestIds: {
|
|
|
194
200
|
ROOT: string;
|
|
195
201
|
VIRTUAL_LIST_WRAPPER: string;
|
|
196
202
|
GROUP_HEADER_CONTAINER: string;
|
|
203
|
+
FILTER_BAR_MENU_BUTTON: string;
|
|
197
204
|
EXPAND_CELL_CONTAINER: string;
|
|
198
205
|
DATA_TABLE_WRAPPER: string;
|
|
199
206
|
DATA_TABLE_GLOBAL_EXPAND_CELL: string;
|
|
@@ -262,4 +269,5 @@ export declare const DSDataTableDataTestIds: {
|
|
|
262
269
|
LOADER_WRAPPER: "ds-datatable-loader-wrapper";
|
|
263
270
|
FILTER_BAR_WRAPPER: "ds-datatable-filter-bar-wrapper";
|
|
264
271
|
FREE_TEXT_SEARCH_WRAPPER: "ds-datatable-free-text-search-wrapper";
|
|
272
|
+
FILTER_POPOVER: "ds-datatable-filter-popover";
|
|
265
273
|
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type DSMenuButtonT } from '@elliemae/ds-menu-button';
|
|
2
|
+
import type { TypescriptHelpersT } from '@elliemae/ds-typescript-helpers';
|
|
3
|
+
interface FilterMenuButtonProps {
|
|
4
|
+
options?: DSMenuButtonT.MenuItemInterface[];
|
|
5
|
+
innerRef?: React.RefObject<HTMLButtonElement>;
|
|
6
|
+
onClearFilters: TypescriptHelpersT.GenericFunc;
|
|
7
|
+
onItemSelected?: (newSelection: DSMenuButtonT.SelectionableMenuNodes[], metainfo: {
|
|
8
|
+
itemNode: DSMenuButtonT.SelectionableMenuNodes;
|
|
9
|
+
event?: React.SyntheticEvent;
|
|
10
|
+
}) => void | TypescriptHelpersT.StateSetter<DSMenuButtonT.SelectionableMenuNodes[]>;
|
|
11
|
+
onActivateItem?: (itemNode: DSMenuButtonT.PseudoFocusableMenuNodes, metainfo: {
|
|
12
|
+
itemNode: DSMenuButtonT.PseudoFocusableMenuNodes;
|
|
13
|
+
event?: React.SyntheticEvent;
|
|
14
|
+
}) => void;
|
|
15
|
+
[key: string]: unknown;
|
|
16
|
+
selectedItems?: DSMenuButtonT.SelectionableMenuNodes[] | DSMenuButtonT.SelectionableMenuItemInterface[];
|
|
17
|
+
}
|
|
18
|
+
export declare const FilterMenuButton: React.ComponentType<FilterMenuButtonProps>;
|
|
19
|
+
export {};
|
|
@@ -5,5 +5,5 @@ export { groupBy } from './groupBy.js';
|
|
|
5
5
|
export { FILTER_TYPES } from './FilterTypes.js';
|
|
6
6
|
export { ROW_VARIANTS, ROW_VARIANT_KEY, ROW_VARIANT_COMPACT_KEY } from './RowVariants.js';
|
|
7
7
|
export { applyOutOfTheBoxFilters, singleDateFilterFn, singleSelectFilterFn, multiSelectFilterFn, numberRangeFilterFn, currencyRangeFilterFn, dateRangeFilterFn, } from './Filters/index.js';
|
|
8
|
-
export { FilterBarDropdownMenu } from './FilterBar/index.js';
|
|
8
|
+
export { FilterBarDropdownMenu, FilterMenuButton } from './FilterBar/index.js';
|
|
9
9
|
export { SkeletonCell, SkeletonHeaderCell } from './Skeleton/index.js';
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { DataTable, DataTableWithSchema } from './DataTable.js';
|
|
2
|
-
export { FilterPopover, EditableCell, Toolbar, groupBy, FILTER_TYPES, ROW_VARIANTS, ROW_VARIANT_KEY, ROW_VARIANT_COMPACT_KEY, applyOutOfTheBoxFilters, singleDateFilterFn, singleSelectFilterFn, multiSelectFilterFn, numberRangeFilterFn, currencyRangeFilterFn, dateRangeFilterFn, FilterBarDropdownMenu, SkeletonCell, SkeletonHeaderCell, } from './exported-related/index.js';
|
|
2
|
+
export { FilterPopover, EditableCell, Toolbar, groupBy, FILTER_TYPES, ROW_VARIANTS, ROW_VARIANT_KEY, ROW_VARIANT_COMPACT_KEY, applyOutOfTheBoxFilters, singleDateFilterFn, singleSelectFilterFn, multiSelectFilterFn, numberRangeFilterFn, currencyRangeFilterFn, dateRangeFilterFn, FilterBarDropdownMenu, FilterMenuButton, SkeletonCell, SkeletonHeaderCell, } from './exported-related/index.js';
|
|
3
3
|
export { actionColumn, expandRowColumn, multiSelectColumn, singleSelectColumn, dragHandleColumn, INTERNAL_COLUMNS, } from './addons/Columns/index.js';
|
|
4
4
|
export type { DSDataTableT } from './react-desc-prop-types.js';
|
|
5
5
|
export { useWholeStore } from './configs/useStore/useStore.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elliemae/ds-data-table",
|
|
3
|
-
"version": "3.57.0-
|
|
3
|
+
"version": "3.57.0-rc.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "ICE MT - Dimsum - Data Table",
|
|
6
6
|
"files": [
|
|
@@ -35,63 +35,64 @@
|
|
|
35
35
|
"reportFile": "tests.xml",
|
|
36
36
|
"indent": 4
|
|
37
37
|
},
|
|
38
|
+
"scripts": {
|
|
39
|
+
"dev": "cross-env NODE_ENV=development node ../../../scripts/build/build.mjs --watch",
|
|
40
|
+
"test": "playwright test -c ./playwright.config.mjs && pui-cli test --passWithNoTests --coverage=\"false\"",
|
|
41
|
+
"lint": "node ../../../scripts/lint.mjs --fix",
|
|
42
|
+
"lint:strict": "node ../../../scripts/lint-strict.mjs",
|
|
43
|
+
"dts": "node ../../../scripts/dts.mjs",
|
|
44
|
+
"build": "cross-env NODE_ENV=production node ../../../scripts/build/build.mjs",
|
|
45
|
+
"checkDeps": "npm exec ../../util/ds-codemods -- check-missing-packages --projectFolderPath=\"./\" --ignorePackagesGlobPattern=\"\" --ignoreFilesGlobPattern=\"**/test-ables/*,**/tests/*\""
|
|
46
|
+
},
|
|
38
47
|
"dependencies": {
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"@elliemae/ds-
|
|
43
|
-
"@elliemae/ds-
|
|
44
|
-
"@elliemae/ds-
|
|
45
|
-
"@elliemae/ds-
|
|
46
|
-
"@elliemae/ds-
|
|
47
|
-
"@elliemae/ds-
|
|
48
|
-
"@elliemae/ds-form-
|
|
49
|
-
"@elliemae/ds-form-
|
|
50
|
-
"@elliemae/ds-form-
|
|
51
|
-
"@elliemae/ds-form-
|
|
52
|
-
"@elliemae/ds-
|
|
53
|
-
"@elliemae/ds-
|
|
54
|
-
"@elliemae/ds-
|
|
55
|
-
"@elliemae/ds-
|
|
56
|
-
"@elliemae/ds-
|
|
57
|
-
"@elliemae/ds-
|
|
58
|
-
"@elliemae/ds-
|
|
59
|
-
"@elliemae/ds-
|
|
60
|
-
"@elliemae/ds-
|
|
61
|
-
"@elliemae/ds-
|
|
62
|
-
"@elliemae/ds-
|
|
63
|
-
"@elliemae/ds-
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
"
|
|
48
|
+
"@elliemae/ds-button-v2": "3.57.0-rc.1",
|
|
49
|
+
"@elliemae/ds-circular-progress-indicator": "3.57.0-rc.1",
|
|
50
|
+
"@elliemae/ds-drag-and-drop": "3.57.0-rc.1",
|
|
51
|
+
"@elliemae/ds-dropdownmenu": "3.57.0-rc.1",
|
|
52
|
+
"@elliemae/ds-dropdownmenu-v2": "3.57.0-rc.1",
|
|
53
|
+
"@elliemae/ds-form-checkbox": "3.57.0-rc.1",
|
|
54
|
+
"@elliemae/ds-form-combobox": "3.57.0-rc.1",
|
|
55
|
+
"@elliemae/ds-form-date-range-picker": "3.57.0-rc.1",
|
|
56
|
+
"@elliemae/ds-form-date-time-picker": "3.57.0-rc.1",
|
|
57
|
+
"@elliemae/ds-form-helpers-mask-hooks": "3.57.0-rc.1",
|
|
58
|
+
"@elliemae/ds-form-input-text": "3.57.0-rc.1",
|
|
59
|
+
"@elliemae/ds-form-layout-blocks": "3.57.0-rc.1",
|
|
60
|
+
"@elliemae/ds-form-radio": "3.57.0-rc.1",
|
|
61
|
+
"@elliemae/ds-grid": "3.57.0-rc.1",
|
|
62
|
+
"@elliemae/ds-icons": "3.57.0-rc.1",
|
|
63
|
+
"@elliemae/ds-menu-button": "3.57.0-rc.1",
|
|
64
|
+
"@elliemae/ds-pagination": "3.57.0-rc.1",
|
|
65
|
+
"@elliemae/ds-pills-v2": "3.57.0-rc.1",
|
|
66
|
+
"@elliemae/ds-popperjs": "3.57.0-rc.1",
|
|
67
|
+
"@elliemae/ds-props-helpers": "3.57.0-rc.1",
|
|
68
|
+
"@elliemae/ds-skeleton": "3.57.0-rc.1",
|
|
69
|
+
"@elliemae/ds-system": "3.57.0-rc.1",
|
|
70
|
+
"@elliemae/ds-truncated-tooltip-text": "3.57.0-rc.1",
|
|
71
|
+
"@elliemae/ds-typescript-helpers": "3.57.0-rc.1",
|
|
72
|
+
"@elliemae/ds-zustand-helpers": "3.57.0-rc.1",
|
|
73
|
+
"react-virtual": "catalog:",
|
|
74
|
+
"uid": "catalog:",
|
|
75
|
+
"use-onclickoutside": "catalog:"
|
|
67
76
|
},
|
|
68
77
|
"devDependencies": {
|
|
69
|
-
"@elliemae/
|
|
70
|
-
"
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
"
|
|
78
|
+
"@elliemae/ds-monorepo-devops": "3.57.0-rc.1",
|
|
79
|
+
"@elliemae/ds-test-utils": "3.57.0-rc.1",
|
|
80
|
+
"@elliemae/ds-toolbar-v2": "3.57.0-rc.1",
|
|
81
|
+
"@elliemae/pui-cli": "catalog:",
|
|
82
|
+
"jest": "catalog:",
|
|
83
|
+
"styled-components": "catalog:",
|
|
84
|
+
"styled-system": "catalog:"
|
|
76
85
|
},
|
|
77
86
|
"peerDependencies": {
|
|
78
|
-
"lodash-es": "
|
|
79
|
-
"react": "
|
|
80
|
-
"react-dom": "
|
|
81
|
-
"styled-components": "
|
|
82
|
-
"styled-system": "
|
|
87
|
+
"lodash-es": "catalog:",
|
|
88
|
+
"react": "catalog:",
|
|
89
|
+
"react-dom": "catalog:",
|
|
90
|
+
"styled-components": "catalog:",
|
|
91
|
+
"styled-system": "catalog:"
|
|
83
92
|
},
|
|
84
93
|
"publishConfig": {
|
|
85
94
|
"access": "public",
|
|
86
95
|
"typeSafety": false
|
|
87
96
|
},
|
|
88
|
-
"
|
|
89
|
-
|
|
90
|
-
"test": "pui-cli test --passWithNoTests --coverage=\"false\"",
|
|
91
|
-
"lint": "node ../../../scripts/lint.mjs --fix",
|
|
92
|
-
"lint:strict": "node ../../../scripts/lint-strict.mjs",
|
|
93
|
-
"dts": "node ../../../scripts/dts.mjs",
|
|
94
|
-
"build": "cross-env NODE_ENV=production node ../../../scripts/build/build.mjs",
|
|
95
|
-
"checkDeps": "npm exec ../../util/ds-codemods -- check-missing-packages --projectFolderPath=\"./\" --ignorePackagesGlobPattern=\"\" --ignoreFilesGlobPattern=\"**/test-ables/*,**/tests/*\""
|
|
96
|
-
}
|
|
97
|
-
}
|
|
97
|
+
"gitHead": "d0d7cac7600d5ba2b1c5c80cba7573e6acc11a96"
|
|
98
|
+
}
|
|
File without changes
|