@elliemae/ds-data-table 2.2.1 → 2.3.0-alpha.4
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/cjs/DataTable.js +63 -57
- package/cjs/DataTable.js.map +7 -0
- package/cjs/DataTableContext.js +52 -26
- package/cjs/DataTableContext.js.map +7 -0
- package/cjs/DataTableSchema.js +151 -113
- package/cjs/DataTableSchema.js.map +7 -0
- package/cjs/addons/Columns/ColumnAction/ColumnAction.js +40 -14
- package/cjs/addons/Columns/ColumnAction/ColumnAction.js.map +7 -0
- package/cjs/addons/Columns/ColumnDragHandle/ColumnDragHandle.js +52 -52
- package/cjs/addons/Columns/ColumnDragHandle/ColumnDragHandle.js.map +7 -0
- package/cjs/addons/Columns/ColumnExpand/ColumnExpand.js +124 -154
- package/cjs/addons/Columns/ColumnExpand/ColumnExpand.js.map +7 -0
- package/cjs/addons/Columns/ColumnSelectMultiple/ColumnSelectMultiple.js +63 -105
- package/cjs/addons/Columns/ColumnSelectMultiple/ColumnSelectMultiple.js.map +7 -0
- package/cjs/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.js +62 -81
- package/cjs/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.js.map +7 -0
- package/cjs/addons/Columns/index.js +51 -18
- package/cjs/addons/Columns/index.js.map +7 -0
- package/cjs/addons/Editables/ComboboxEditableCell/ComboboxEditableCell.js +57 -85
- package/cjs/addons/Editables/ComboboxEditableCell/ComboboxEditableCell.js.map +7 -0
- package/cjs/addons/Editables/DateEditableCell/DateEditableCell.js +51 -73
- package/cjs/addons/Editables/DateEditableCell/DateEditableCell.js.map +7 -0
- package/cjs/addons/Editables/TextEditableCell/TextEditableCell.js +67 -88
- package/cjs/addons/Editables/TextEditableCell/TextEditableCell.js.map +7 -0
- package/cjs/addons/Editables/index.js +39 -14
- package/cjs/addons/Editables/index.js.map +7 -0
- package/cjs/addons/Filters/Components/CurrencyRangeFilter/index.js +87 -137
- package/cjs/addons/Filters/Components/CurrencyRangeFilter/index.js.map +7 -0
- package/cjs/addons/Filters/Components/DateRangeFilter/index.js +64 -88
- package/cjs/addons/Filters/Components/DateRangeFilter/index.js.map +7 -0
- package/cjs/addons/Filters/Components/DateSwitcherFilter/index.js +72 -97
- package/cjs/addons/Filters/Components/DateSwitcherFilter/index.js.map +7 -0
- package/cjs/addons/Filters/Components/NumberRangeFilter/index.js +89 -141
- package/cjs/addons/Filters/Components/NumberRangeFilter/index.js.map +7 -0
- package/cjs/addons/Filters/Components/SelectFilter/BaseSelectFilter.js +68 -117
- package/cjs/addons/Filters/Components/SelectFilter/BaseSelectFilter.js.map +7 -0
- package/cjs/addons/Filters/Components/SelectFilter/MultiSelectFilter.js +59 -75
- package/cjs/addons/Filters/Components/SelectFilter/MultiSelectFilter.js.map +7 -0
- package/cjs/addons/Filters/Components/SelectFilter/SingleSelectFilter.js +59 -75
- package/cjs/addons/Filters/Components/SelectFilter/SingleSelectFilter.js.map +7 -0
- package/cjs/addons/Filters/Components/SelectFilter/components.js +86 -36
- package/cjs/addons/Filters/Components/SelectFilter/components.js.map +7 -0
- package/cjs/addons/Filters/Components/SelectFilter/useSelectFilterHandlers.js +67 -57
- package/cjs/addons/Filters/Components/SelectFilter/useSelectFilterHandlers.js.map +7 -0
- package/cjs/addons/Filters/Components/SelectFilter/utils.js +40 -46
- package/cjs/addons/Filters/Components/SelectFilter/utils.js.map +7 -0
- package/cjs/addons/Filters/Components/SingleDateFilter/index.js +64 -80
- package/cjs/addons/Filters/Components/SingleDateFilter/index.js.map +7 -0
- package/cjs/addons/Filters/Components/index.js +34 -21
- package/cjs/addons/Filters/Components/index.js.map +7 -0
- package/cjs/addons/Filters/index.js +28 -21
- package/cjs/addons/Filters/index.js.map +7 -0
- package/cjs/addons/Pagination/Pagination.js +45 -37
- package/cjs/addons/Pagination/Pagination.js.map +7 -0
- package/cjs/addons/Pagination/index.js +35 -9
- package/cjs/addons/Pagination/index.js.map +7 -0
- package/cjs/configs/constants.js +74 -47
- package/cjs/configs/constants.js.map +7 -0
- package/cjs/configs/fixedSizes.js +34 -6
- package/cjs/configs/fixedSizes.js.map +7 -0
- package/cjs/configs/index.js +32 -22
- package/cjs/configs/index.js.map +7 -0
- package/cjs/configs/useDatatableConfig.js +72 -59
- package/cjs/configs/useDatatableConfig.js.map +7 -0
- package/cjs/configs/usePaginationConfig.js +61 -23
- package/cjs/configs/usePaginationConfig.js.map +7 -0
- package/cjs/configs/useRowFlattenization.js +50 -36
- package/cjs/configs/useRowFlattenization.js.map +7 -0
- package/cjs/configs/useTableColsWithAddons.js +75 -62
- package/cjs/configs/useTableColsWithAddons.js.map +7 -0
- package/cjs/configs/zIndexInternalConfig.js +34 -6
- package/cjs/configs/zIndexInternalConfig.js.map +7 -0
- package/cjs/exported-related/EditableCell.js +64 -54
- package/cjs/exported-related/EditableCell.js.map +7 -0
- package/cjs/exported-related/FilterPopover.js +103 -137
- package/cjs/exported-related/FilterPopover.js.map +7 -0
- package/cjs/exported-related/FilterTypes.js +42 -14
- package/cjs/exported-related/FilterTypes.js.map +7 -0
- package/cjs/exported-related/Filters/applyOutOfTheBoxFilters.js +50 -27
- package/cjs/exported-related/Filters/applyOutOfTheBoxFilters.js.map +7 -0
- package/cjs/exported-related/Filters/currencyRangeFilterFn.js +44 -19
- package/cjs/exported-related/Filters/currencyRangeFilterFn.js.map +7 -0
- package/cjs/exported-related/Filters/dateRangeFilterFn.js +37 -45
- package/cjs/exported-related/Filters/dateRangeFilterFn.js.map +7 -0
- package/cjs/exported-related/Filters/dateSwitcherFilterFn.js +37 -12
- package/cjs/exported-related/Filters/dateSwitcherFilterFn.js.map +7 -0
- package/cjs/exported-related/Filters/index.js +34 -21
- package/cjs/exported-related/Filters/index.js.map +7 -0
- package/cjs/exported-related/Filters/multiSelectFilterFn.js +35 -14
- package/cjs/exported-related/Filters/multiSelectFilterFn.js.map +7 -0
- package/cjs/exported-related/Filters/numberRangeFilterFn.js +36 -13
- package/cjs/exported-related/Filters/numberRangeFilterFn.js.map +7 -0
- package/cjs/exported-related/Filters/singleDateFilterFn.js +37 -45
- package/cjs/exported-related/Filters/singleDateFilterFn.js.map +7 -0
- package/cjs/exported-related/Filters/singleSelectFilterFn.js +35 -12
- package/cjs/exported-related/Filters/singleSelectFilterFn.js.map +7 -0
- package/cjs/exported-related/Filters/types.js +27 -2
- package/cjs/exported-related/Filters/types.js.map +7 -0
- package/cjs/exported-related/RowRenderer/DefaultRowContentRenderer.js +107 -109
- package/cjs/exported-related/RowRenderer/DefaultRowContentRenderer.js.map +7 -0
- package/cjs/exported-related/RowRenderer/index.js +77 -95
- package/cjs/exported-related/RowRenderer/index.js.map +7 -0
- package/cjs/exported-related/RowRenderer/useRowRendererHandlers.js +71 -100
- package/cjs/exported-related/RowRenderer/useRowRendererHandlers.js.map +7 -0
- package/cjs/exported-related/RowRenderer/useRowRendererProperties.js +51 -42
- package/cjs/exported-related/RowRenderer/useRowRendererProperties.js.map +7 -0
- package/cjs/exported-related/RowRenderer/useRowStyle.js +47 -35
- package/cjs/exported-related/RowRenderer/useRowStyle.js.map +7 -0
- package/cjs/exported-related/RowVariants.js +43 -15
- package/cjs/exported-related/RowVariants.js.map +7 -0
- package/cjs/exported-related/Toolbar/Toolbar.js +103 -80
- package/cjs/exported-related/Toolbar/Toolbar.js.map +7 -0
- package/cjs/exported-related/Toolbar/index.js +35 -9
- package/cjs/exported-related/Toolbar/index.js.map +7 -0
- package/cjs/exported-related/groupBy.js +43 -25
- package/cjs/exported-related/groupBy.js.map +7 -0
- package/cjs/exported-related/index.js +44 -35
- package/cjs/exported-related/index.js.map +7 -0
- package/cjs/helpers/addCellData.js +43 -32
- package/cjs/helpers/addCellData.js.map +7 -0
- package/cjs/helpers/cellPadding.js +44 -27
- package/cjs/helpers/cellPadding.js.map +7 -0
- package/cjs/helpers/columnsToGrid.js +41 -17
- package/cjs/helpers/columnsToGrid.js.map +7 -0
- package/cjs/helpers/getIdFromUniqueRowAccessor.js +38 -20
- package/cjs/helpers/getIdFromUniqueRowAccessor.js.map +7 -0
- package/cjs/helpers/index.js +33 -20
- package/cjs/helpers/index.js.map +7 -0
- package/cjs/helpers/refs-helpers.js +41 -22
- package/cjs/helpers/refs-helpers.js.map +7 -0
- package/cjs/helpers/sizeToCss.js +35 -7
- package/cjs/helpers/sizeToCss.js.map +7 -0
- package/cjs/hooks/useRecoverFocusCol.js +41 -21
- package/cjs/hooks/useRecoverFocusCol.js.map +7 -0
- package/cjs/hooks/useRecoverFocusRow.js +37 -14
- package/cjs/hooks/useRecoverFocusRow.js.map +7 -0
- package/cjs/index.js +29 -38
- package/cjs/index.js.map +7 -0
- package/cjs/parts/Cells/Cell.js +95 -105
- package/cjs/parts/Cells/Cell.js.map +7 -0
- package/cjs/parts/Cells/index.js +83 -76
- package/cjs/parts/Cells/index.js.map +7 -0
- package/cjs/parts/Cells/useCellStyle.js +47 -27
- package/cjs/parts/Cells/useCellStyle.js.map +7 -0
- package/cjs/parts/DnDHandle.js +61 -73
- package/cjs/parts/DnDHandle.js.map +7 -0
- package/cjs/parts/DropIndicator.js +77 -68
- package/cjs/parts/DropIndicator.js.map +7 -0
- package/cjs/parts/EmptyContent.js +93 -58
- package/cjs/parts/EmptyContent.js.map +7 -0
- package/cjs/parts/FilterBar/FiltersBar.js +82 -115
- package/cjs/parts/FilterBar/FiltersBar.js.map +7 -0
- package/cjs/parts/FilterBar/components/DateRangePill.js +57 -40
- package/cjs/parts/FilterBar/components/DateRangePill.js.map +7 -0
- package/cjs/parts/FilterBar/components/DateSwitcherPill.js +57 -40
- package/cjs/parts/FilterBar/components/DateSwitcherPill.js.map +7 -0
- package/cjs/parts/FilterBar/components/MultiSelectPill.js +57 -42
- package/cjs/parts/FilterBar/components/MultiSelectPill.js.map +7 -0
- package/cjs/parts/FilterBar/components/NumberRangePill.js +56 -39
- package/cjs/parts/FilterBar/components/NumberRangePill.js.map +7 -0
- package/cjs/parts/FilterBar/components/SelectPill.js +55 -36
- package/cjs/parts/FilterBar/components/SelectPill.js.map +7 -0
- package/cjs/parts/FilterBar/components/SingleDatePill.js +56 -38
- package/cjs/parts/FilterBar/components/SingleDatePill.js.map +7 -0
- package/cjs/parts/FilterBar/components/index.js +33 -19
- package/cjs/parts/FilterBar/components/index.js.map +7 -0
- package/cjs/parts/FilterBar/index.js +35 -9
- package/cjs/parts/FilterBar/index.js.map +7 -0
- package/cjs/parts/FilterBar/styled.js +49 -23
- package/cjs/parts/FilterBar/styled.js.map +7 -0
- package/cjs/parts/FilterBar/types.js +27 -2
- package/cjs/parts/FilterBar/types.js.map +7 -0
- package/cjs/parts/Filters/index.js +69 -108
- package/cjs/parts/Filters/index.js.map +7 -0
- package/cjs/parts/Footer.js +39 -21
- package/cjs/parts/Footer.js.map +7 -0
- package/cjs/parts/Headers/EmptyChildrenGroup.js +42 -20
- package/cjs/parts/Headers/EmptyChildrenGroup.js.map +7 -0
- package/cjs/parts/Headers/HeaderCell.js +114 -159
- package/cjs/parts/Headers/HeaderCell.js.map +7 -0
- package/cjs/parts/Headers/HeaderCellGroup.js +94 -93
- package/cjs/parts/Headers/HeaderCellGroup.js.map +7 -0
- package/cjs/parts/Headers/HeaderCellTitle.js +50 -77
- package/cjs/parts/Headers/HeaderCellTitle.js.map +7 -0
- package/cjs/parts/Headers/HeaderResizer.js +74 -94
- package/cjs/parts/Headers/HeaderResizer.js.map +7 -0
- package/cjs/parts/Headers/RequiredDot.js +39 -21
- package/cjs/parts/Headers/RequiredDot.js.map +7 -0
- package/cjs/parts/Headers/index.js +58 -42
- package/cjs/parts/Headers/index.js.map +7 -0
- package/cjs/parts/Headers/useHeaderCellConfig.js +48 -25
- package/cjs/parts/Headers/useHeaderCellConfig.js.map +7 -0
- package/cjs/parts/Headers/useHeaderCellHandlers.js +87 -76
- package/cjs/parts/Headers/useHeaderCellHandlers.js.map +7 -0
- package/cjs/parts/HoC/SortableItemContext.js +44 -19
- package/cjs/parts/HoC/SortableItemContext.js.map +7 -0
- package/cjs/parts/HoC/withConditionalDnDColumnContext.js +86 -101
- package/cjs/parts/HoC/withConditionalDnDColumnContext.js.map +7 -0
- package/cjs/parts/HoC/withConditionalDnDRowContext.js +90 -93
- package/cjs/parts/HoC/withConditionalDnDRowContext.js.map +7 -0
- package/cjs/parts/HoC/withConditionalDnDSortableContext.js +50 -43
- package/cjs/parts/HoC/withConditionalDnDSortableContext.js.map +7 -0
- package/cjs/parts/HoC/withDnDSortableColumnContext.js +60 -58
- package/cjs/parts/HoC/withDnDSortableColumnContext.js.map +7 -0
- package/cjs/parts/HoC/withDnDSortableRowContext.js +59 -59
- package/cjs/parts/HoC/withDnDSortableRowContext.js.map +7 -0
- package/cjs/parts/Loader.js +50 -30
- package/cjs/parts/Loader.js.map +7 -0
- package/cjs/parts/Row.js +64 -59
- package/cjs/parts/Row.js.map +7 -0
- package/cjs/parts/RowLoading.js +53 -52
- package/cjs/parts/RowLoading.js.map +7 -0
- package/cjs/parts/RowVariants/RowVariantHeader.js +79 -95
- package/cjs/parts/RowVariants/RowVariantHeader.js.map +7 -0
- package/cjs/parts/RowVariants/RowVariantPrimary.js +55 -36
- package/cjs/parts/RowVariants/RowVariantPrimary.js.map +7 -0
- package/cjs/parts/RowVariants/RowVariantSecondary.js +56 -37
- package/cjs/parts/RowVariants/RowVariantSecondary.js.map +7 -0
- package/cjs/parts/RowVariants/index.js +59 -77
- package/cjs/parts/RowVariants/index.js.map +7 -0
- package/cjs/parts/RowVariants/types.js +27 -2
- package/cjs/parts/RowVariants/types.js.map +7 -0
- package/cjs/parts/Rows.js +71 -68
- package/cjs/parts/Rows.js.map +7 -0
- package/cjs/parts/SortByCaret.js +44 -30
- package/cjs/parts/SortByCaret.js.map +7 -0
- package/cjs/parts/SortableHeaderCell.js +43 -38
- package/cjs/parts/SortableHeaderCell.js.map +7 -0
- package/cjs/parts/TableContent.js +68 -84
- package/cjs/parts/TableContent.js.map +7 -0
- package/cjs/parts/VirtualRowsList.js +74 -89
- package/cjs/parts/VirtualRowsList.js.map +7 -0
- package/cjs/parts/index.js +45 -19
- package/cjs/parts/index.js.map +7 -0
- package/cjs/prop-types.js +76 -56
- package/cjs/prop-types.js.map +7 -0
- package/cjs/redux/reducers/headersReducers/defaults.js +34 -6
- package/cjs/redux/reducers/headersReducers/defaults.js.map +7 -0
- package/cjs/redux/reducers/headersReducers/headersReducers.js +46 -23
- package/cjs/redux/reducers/headersReducers/headersReducers.js.map +7 -0
- package/cjs/redux/reducers/headersReducers/index.js +29 -14
- package/cjs/redux/reducers/headersReducers/index.js.map +7 -0
- package/cjs/redux/reducers/headersReducers/logic.js +42 -33
- package/cjs/redux/reducers/headersReducers/logic.js.map +7 -0
- package/cjs/redux/reducers/headersReducers/useDispatchHeadersActions.js +40 -19
- package/cjs/redux/reducers/headersReducers/useDispatchHeadersActions.js.map +7 -0
- package/cjs/redux/reducers/index.js +46 -17
- package/cjs/redux/reducers/index.js.map +7 -0
- package/cjs/redux/reducers/rowsReducers/actions_types.js +47 -19
- package/cjs/redux/reducers/rowsReducers/actions_types.js.map +7 -0
- package/cjs/redux/reducers/rowsReducers/defaults.js +35 -7
- package/cjs/redux/reducers/rowsReducers/defaults.js.map +7 -0
- package/cjs/redux/reducers/rowsReducers/index.js +29 -20
- package/cjs/redux/reducers/rowsReducers/index.js.map +7 -0
- package/cjs/redux/reducers/rowsReducers/logic.js +41 -14
- package/cjs/redux/reducers/rowsReducers/logic.js.map +7 -0
- package/cjs/redux/reducers/rowsReducers/rowsReducer.js +58 -41
- package/cjs/redux/reducers/rowsReducers/rowsReducer.js.map +7 -0
- package/cjs/redux/reducers/rowsReducers/useDispatchRowsActions.js +48 -21
- package/cjs/redux/reducers/rowsReducers/useDispatchRowsActions.js.map +7 -0
- package/cjs/redux/storeConfig.js +36 -9
- package/cjs/redux/storeConfig.js.map +7 -0
- package/cjs/styled.js +295 -219
- package/cjs/styled.js.map +7 -0
- package/cjs/tests/utils/index.js +119 -0
- package/cjs/tests/utils/index.js.map +7 -0
- package/cjs/types/FunctionalHoC.js +27 -2
- package/cjs/types/FunctionalHoC.js.map +7 -0
- package/cjs/types/props.js +27 -2
- package/cjs/types/props.js.map +7 -0
- package/esm/DataTable.js +29 -42
- package/esm/DataTable.js.map +7 -0
- package/esm/DataTableContext.js +22 -19
- package/esm/DataTableContext.js.map +7 -0
- package/esm/DataTableSchema.js +110 -97
- package/esm/DataTableSchema.js.map +7 -0
- package/esm/addons/Columns/ColumnAction/ColumnAction.js +11 -10
- package/esm/addons/Columns/ColumnAction/ColumnAction.js.map +7 -0
- package/esm/addons/Columns/ColumnDragHandle/ColumnDragHandle.js +22 -43
- package/esm/addons/Columns/ColumnDragHandle/ColumnDragHandle.js.map +7 -0
- package/esm/addons/Columns/ColumnExpand/ColumnExpand.js +83 -132
- package/esm/addons/Columns/ColumnExpand/ColumnExpand.js.map +7 -0
- package/esm/addons/Columns/ColumnSelectMultiple/ColumnSelectMultiple.js +30 -92
- package/esm/addons/Columns/ColumnSelectMultiple/ColumnSelectMultiple.js.map +7 -0
- package/esm/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.js +32 -71
- package/esm/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.js.map +7 -0
- package/esm/addons/Columns/index.js +22 -9
- package/esm/addons/Columns/index.js.map +7 -0
- package/esm/addons/Editables/ComboboxEditableCell/ComboboxEditableCell.js +23 -72
- package/esm/addons/Editables/ComboboxEditableCell/ComboboxEditableCell.js.map +7 -0
- package/esm/addons/Editables/DateEditableCell/DateEditableCell.js +19 -62
- package/esm/addons/Editables/DateEditableCell/DateEditableCell.js.map +7 -0
- package/esm/addons/Editables/TextEditableCell/TextEditableCell.js +35 -76
- package/esm/addons/Editables/TextEditableCell/TextEditableCell.js.map +7 -0
- package/esm/addons/Editables/index.js +9 -9
- package/esm/addons/Editables/index.js.map +7 -0
- package/esm/addons/Filters/Components/CurrencyRangeFilter/index.js +55 -124
- package/esm/addons/Filters/Components/CurrencyRangeFilter/index.js.map +7 -0
- package/esm/addons/Filters/Components/DateRangeFilter/index.js +33 -77
- package/esm/addons/Filters/Components/DateRangeFilter/index.js.map +7 -0
- package/esm/addons/Filters/Components/DateSwitcherFilter/index.js +44 -85
- package/esm/addons/Filters/Components/DateSwitcherFilter/index.js.map +7 -0
- package/esm/addons/Filters/Components/NumberRangeFilter/index.js +57 -128
- package/esm/addons/Filters/Components/NumberRangeFilter/index.js.map +7 -0
- package/esm/addons/Filters/Components/SelectFilter/BaseSelectFilter.js +35 -105
- package/esm/addons/Filters/Components/SelectFilter/BaseSelectFilter.js.map +7 -0
- package/esm/addons/Filters/Components/SelectFilter/MultiSelectFilter.js +30 -67
- package/esm/addons/Filters/Components/SelectFilter/MultiSelectFilter.js.map +7 -0
- package/esm/addons/Filters/Components/SelectFilter/SingleSelectFilter.js +30 -67
- package/esm/addons/Filters/Components/SelectFilter/SingleSelectFilter.js.map +7 -0
- package/esm/addons/Filters/Components/SelectFilter/components.js +57 -23
- package/esm/addons/Filters/Components/SelectFilter/components.js.map +7 -0
- package/esm/addons/Filters/Components/SelectFilter/useSelectFilterHandlers.js +38 -53
- package/esm/addons/Filters/Components/SelectFilter/useSelectFilterHandlers.js.map +7 -0
- package/esm/addons/Filters/Components/SelectFilter/utils.js +11 -41
- package/esm/addons/Filters/Components/SelectFilter/utils.js.map +7 -0
- package/esm/addons/Filters/Components/SingleDateFilter/index.js +31 -67
- package/esm/addons/Filters/Components/SingleDateFilter/index.js.map +7 -0
- package/esm/addons/Filters/Components/index.js +9 -7
- package/esm/addons/Filters/Components/index.js.map +7 -0
- package/esm/addons/Filters/index.js +3 -7
- package/esm/addons/Filters/index.js.map +7 -0
- package/esm/addons/Pagination/Pagination.js +14 -27
- package/esm/addons/Pagination/Pagination.js.map +7 -0
- package/esm/addons/Pagination/index.js +6 -1
- package/esm/addons/Pagination/index.js.map +7 -0
- package/esm/configs/constants.js +45 -42
- package/esm/configs/constants.js.map +7 -0
- package/esm/configs/fixedSizes.js +5 -2
- package/esm/configs/fixedSizes.js.map +7 -0
- package/esm/configs/index.js +7 -5
- package/esm/configs/index.js.map +7 -0
- package/esm/configs/useDatatableConfig.js +35 -47
- package/esm/configs/useDatatableConfig.js.map +7 -0
- package/esm/configs/usePaginationConfig.js +30 -17
- package/esm/configs/usePaginationConfig.js.map +7 -0
- package/esm/configs/useRowFlattenization.js +18 -29
- package/esm/configs/useRowFlattenization.js.map +7 -0
- package/esm/configs/useTableColsWithAddons.js +51 -55
- package/esm/configs/useTableColsWithAddons.js.map +7 -0
- package/esm/configs/zIndexInternalConfig.js +5 -2
- package/esm/configs/zIndexInternalConfig.js.map +7 -0
- package/esm/exported-related/EditableCell.js +33 -44
- package/esm/exported-related/EditableCell.js.map +7 -0
- package/esm/exported-related/FilterPopover.js +70 -122
- package/esm/exported-related/FilterPopover.js.map +7 -0
- package/esm/exported-related/FilterTypes.js +12 -9
- package/esm/exported-related/FilterTypes.js.map +7 -0
- package/esm/exported-related/Filters/applyOutOfTheBoxFilters.js +14 -16
- package/esm/exported-related/Filters/applyOutOfTheBoxFilters.js.map +7 -0
- package/esm/exported-related/Filters/currencyRangeFilterFn.js +15 -15
- package/esm/exported-related/Filters/currencyRangeFilterFn.js.map +7 -0
- package/esm/exported-related/Filters/dateRangeFilterFn.js +8 -37
- package/esm/exported-related/Filters/dateRangeFilterFn.js.map +7 -0
- package/esm/exported-related/Filters/dateSwitcherFilterFn.js +7 -7
- package/esm/exported-related/Filters/dateSwitcherFilterFn.js.map +7 -0
- package/esm/exported-related/Filters/index.js +9 -7
- package/esm/exported-related/Filters/index.js.map +7 -0
- package/esm/exported-related/Filters/multiSelectFilterFn.js +6 -10
- package/esm/exported-related/Filters/multiSelectFilterFn.js.map +7 -0
- package/esm/exported-related/Filters/numberRangeFilterFn.js +7 -9
- package/esm/exported-related/Filters/numberRangeFilterFn.js.map +7 -0
- package/esm/exported-related/Filters/singleDateFilterFn.js +8 -37
- package/esm/exported-related/Filters/singleDateFilterFn.js.map +7 -0
- package/esm/exported-related/Filters/singleSelectFilterFn.js +6 -8
- package/esm/exported-related/Filters/singleSelectFilterFn.js.map +7 -0
- package/esm/exported-related/Filters/types.js +2 -1
- package/esm/exported-related/Filters/types.js.map +7 -0
- package/esm/exported-related/RowRenderer/DefaultRowContentRenderer.js +72 -94
- package/esm/exported-related/RowRenderer/DefaultRowContentRenderer.js.map +7 -0
- package/esm/exported-related/RowRenderer/index.js +45 -85
- package/esm/exported-related/RowRenderer/index.js.map +7 -0
- package/esm/exported-related/RowRenderer/useRowRendererHandlers.js +41 -95
- package/esm/exported-related/RowRenderer/useRowRendererHandlers.js.map +7 -0
- package/esm/exported-related/RowRenderer/useRowRendererProperties.js +19 -31
- package/esm/exported-related/RowRenderer/useRowRendererProperties.js.map +7 -0
- package/esm/exported-related/RowRenderer/useRowStyle.js +17 -30
- package/esm/exported-related/RowRenderer/useRowStyle.js.map +7 -0
- package/esm/exported-related/RowVariants.js +14 -9
- package/esm/exported-related/RowVariants.js.map +7 -0
- package/esm/exported-related/Toolbar/Toolbar.js +68 -64
- package/esm/exported-related/Toolbar/Toolbar.js.map +7 -0
- package/esm/exported-related/Toolbar/index.js +6 -1
- package/esm/exported-related/Toolbar/index.js.map +7 -0
- package/esm/exported-related/groupBy.js +14 -21
- package/esm/exported-related/groupBy.js.map +7 -0
- package/esm/exported-related/index.js +15 -13
- package/esm/exported-related/index.js.map +7 -0
- package/esm/helpers/addCellData.js +15 -25
- package/esm/helpers/addCellData.js.map +7 -0
- package/esm/helpers/cellPadding.js +15 -22
- package/esm/helpers/cellPadding.js.map +7 -0
- package/esm/helpers/columnsToGrid.js +12 -13
- package/esm/helpers/columnsToGrid.js.map +7 -0
- package/esm/helpers/getIdFromUniqueRowAccessor.js +9 -16
- package/esm/helpers/getIdFromUniqueRowAccessor.js.map +7 -0
- package/esm/helpers/index.js +8 -6
- package/esm/helpers/index.js.map +7 -0
- package/esm/helpers/refs-helpers.js +13 -19
- package/esm/helpers/refs-helpers.js.map +7 -0
- package/esm/helpers/sizeToCss.js +6 -3
- package/esm/helpers/sizeToCss.js.map +7 -0
- package/esm/hooks/useRecoverFocusCol.js +10 -15
- package/esm/hooks/useRecoverFocusCol.js.map +7 -0
- package/esm/hooks/useRecoverFocusRow.js +6 -8
- package/esm/hooks/useRecoverFocusRow.js.map +7 -0
- package/esm/index.js +4 -14
- package/esm/index.js.map +7 -0
- package/esm/parts/Cells/Cell.js +63 -94
- package/esm/parts/Cells/Cell.js.map +7 -0
- package/esm/parts/Cells/index.js +54 -70
- package/esm/parts/Cells/index.js.map +7 -0
- package/esm/parts/Cells/useCellStyle.js +16 -21
- package/esm/parts/Cells/useCellStyle.js.map +7 -0
- package/esm/parts/DnDHandle.js +32 -65
- package/esm/parts/DnDHandle.js.map +7 -0
- package/esm/parts/DropIndicator.js +49 -62
- package/esm/parts/DropIndicator.js.map +7 -0
- package/esm/parts/EmptyContent.js +64 -48
- package/esm/parts/EmptyContent.js.map +7 -0
- package/esm/parts/FilterBar/FiltersBar.js +49 -94
- package/esm/parts/FilterBar/FiltersBar.js.map +7 -0
- package/esm/parts/FilterBar/components/DateRangePill.js +27 -31
- package/esm/parts/FilterBar/components/DateRangePill.js.map +7 -0
- package/esm/parts/FilterBar/components/DateSwitcherPill.js +27 -31
- package/esm/parts/FilterBar/components/DateSwitcherPill.js.map +7 -0
- package/esm/parts/FilterBar/components/MultiSelectPill.js +28 -34
- package/esm/parts/FilterBar/components/MultiSelectPill.js.map +7 -0
- package/esm/parts/FilterBar/components/NumberRangePill.js +26 -30
- package/esm/parts/FilterBar/components/NumberRangePill.js.map +7 -0
- package/esm/parts/FilterBar/components/SelectPill.js +25 -27
- package/esm/parts/FilterBar/components/SelectPill.js.map +7 -0
- package/esm/parts/FilterBar/components/SingleDatePill.js +26 -29
- package/esm/parts/FilterBar/components/SingleDatePill.js.map +7 -0
- package/esm/parts/FilterBar/components/index.js +8 -6
- package/esm/parts/FilterBar/components/index.js.map +7 -0
- package/esm/parts/FilterBar/index.js +6 -1
- package/esm/parts/FilterBar/index.js.map +7 -0
- package/esm/parts/FilterBar/styled.js +20 -12
- package/esm/parts/FilterBar/styled.js.map +7 -0
- package/esm/parts/FilterBar/types.js +2 -1
- package/esm/parts/FilterBar/types.js.map +7 -0
- package/esm/parts/Filters/index.js +40 -92
- package/esm/parts/Filters/index.js.map +7 -0
- package/esm/parts/Footer.js +10 -15
- package/esm/parts/Footer.js.map +7 -0
- package/esm/parts/Headers/EmptyChildrenGroup.js +13 -11
- package/esm/parts/Headers/EmptyChildrenGroup.js.map +7 -0
- package/esm/parts/Headers/HeaderCell.js +77 -141
- package/esm/parts/Headers/HeaderCell.js.map +7 -0
- package/esm/parts/Headers/HeaderCellGroup.js +64 -82
- package/esm/parts/Headers/HeaderCellGroup.js.map +7 -0
- package/esm/parts/Headers/HeaderCellTitle.js +22 -70
- package/esm/parts/Headers/HeaderCellTitle.js.map +7 -0
- package/esm/parts/Headers/HeaderResizer.js +36 -77
- package/esm/parts/Headers/HeaderResizer.js.map +7 -0
- package/esm/parts/Headers/RequiredDot.js +10 -13
- package/esm/parts/Headers/RequiredDot.js.map +7 -0
- package/esm/parts/Headers/index.js +28 -35
- package/esm/parts/Headers/index.js.map +7 -0
- package/esm/parts/Headers/useHeaderCellConfig.js +19 -21
- package/esm/parts/Headers/useHeaderCellConfig.js.map +7 -0
- package/esm/parts/Headers/useHeaderCellHandlers.js +56 -66
- package/esm/parts/Headers/useHeaderCellHandlers.js.map +7 -0
- package/esm/parts/HoC/SortableItemContext.js +15 -15
- package/esm/parts/HoC/SortableItemContext.js.map +7 -0
- package/esm/parts/HoC/withConditionalDnDColumnContext.js +52 -85
- package/esm/parts/HoC/withConditionalDnDColumnContext.js.map +7 -0
- package/esm/parts/HoC/withConditionalDnDRowContext.js +59 -80
- package/esm/parts/HoC/withConditionalDnDRowContext.js.map +7 -0
- package/esm/parts/HoC/withConditionalDnDSortableContext.js +21 -34
- package/esm/parts/HoC/withConditionalDnDSortableContext.js.map +7 -0
- package/esm/parts/HoC/withDnDSortableColumnContext.js +26 -44
- package/esm/parts/HoC/withDnDSortableColumnContext.js.map +7 -0
- package/esm/parts/HoC/withDnDSortableRowContext.js +26 -46
- package/esm/parts/HoC/withDnDSortableRowContext.js.map +7 -0
- package/esm/parts/Loader.js +21 -22
- package/esm/parts/Loader.js.map +7 -0
- package/esm/parts/Row.js +33 -48
- package/esm/parts/Row.js.map +7 -0
- package/esm/parts/RowLoading.js +23 -42
- package/esm/parts/RowLoading.js.map +7 -0
- package/esm/parts/RowVariants/RowVariantHeader.js +47 -83
- package/esm/parts/RowVariants/RowVariantHeader.js.map +7 -0
- package/esm/parts/RowVariants/RowVariantPrimary.js +26 -28
- package/esm/parts/RowVariants/RowVariantPrimary.js.map +7 -0
- package/esm/parts/RowVariants/RowVariantSecondary.js +27 -29
- package/esm/parts/RowVariants/RowVariantSecondary.js.map +7 -0
- package/esm/parts/RowVariants/index.js +26 -65
- package/esm/parts/RowVariants/index.js.map +7 -0
- package/esm/parts/RowVariants/types.js +2 -1
- package/esm/parts/RowVariants/types.js.map +7 -0
- package/esm/parts/Rows.js +41 -61
- package/esm/parts/Rows.js.map +7 -0
- package/esm/parts/SortByCaret.js +15 -22
- package/esm/parts/SortByCaret.js.map +7 -0
- package/esm/parts/SortableHeaderCell.js +14 -29
- package/esm/parts/SortableHeaderCell.js.map +7 -0
- package/esm/parts/TableContent.js +35 -72
- package/esm/parts/TableContent.js.map +7 -0
- package/esm/parts/VirtualRowsList.js +40 -78
- package/esm/parts/VirtualRowsList.js.map +7 -0
- package/esm/parts/index.js +16 -6
- package/esm/parts/index.js.map +7 -0
- package/esm/prop-types.js +28 -22
- package/esm/prop-types.js.map +7 -0
- package/esm/redux/reducers/headersReducers/defaults.js +5 -2
- package/esm/redux/reducers/headersReducers/defaults.js.map +7 -0
- package/esm/redux/reducers/headersReducers/headersReducers.js +12 -11
- package/esm/redux/reducers/headersReducers/headersReducers.js.map +7 -0
- package/esm/redux/reducers/headersReducers/index.js +4 -2
- package/esm/redux/reducers/headersReducers/index.js.map +7 -0
- package/esm/redux/reducers/headersReducers/logic.js +13 -24
- package/esm/redux/reducers/headersReducers/logic.js.map +7 -0
- package/esm/redux/reducers/headersReducers/useDispatchHeadersActions.js +10 -14
- package/esm/redux/reducers/headersReducers/useDispatchHeadersActions.js.map +7 -0
- package/esm/redux/reducers/index.js +17 -11
- package/esm/redux/reducers/index.js.map +7 -0
- package/esm/redux/reducers/rowsReducers/actions_types.js +18 -9
- package/esm/redux/reducers/rowsReducers/actions_types.js.map +7 -0
- package/esm/redux/reducers/rowsReducers/defaults.js +6 -2
- package/esm/redux/reducers/rowsReducers/defaults.js.map +7 -0
- package/esm/redux/reducers/rowsReducers/index.js +4 -2
- package/esm/redux/reducers/rowsReducers/index.js.map +7 -0
- package/esm/redux/reducers/rowsReducers/logic.js +12 -3
- package/esm/redux/reducers/rowsReducers/logic.js.map +7 -0
- package/esm/redux/reducers/rowsReducers/rowsReducer.js +28 -18
- package/esm/redux/reducers/rowsReducers/rowsReducer.js.map +7 -0
- package/esm/redux/reducers/rowsReducers/useDispatchRowsActions.js +26 -15
- package/esm/redux/reducers/rowsReducers/useDispatchRowsActions.js.map +7 -0
- package/esm/redux/storeConfig.js +6 -4
- package/esm/redux/storeConfig.js.map +7 -0
- package/esm/styled.js +268 -194
- package/esm/styled.js.map +7 -0
- package/esm/tests/utils/index.js +90 -0
- package/esm/tests/utils/index.js.map +7 -0
- package/esm/types/FunctionalHoC.js +2 -1
- package/esm/types/FunctionalHoC.js.map +7 -0
- package/esm/types/props.js +2 -1
- package/esm/types/props.js.map +7 -0
- package/package.json +18 -18
- package/types/DataTable.d.ts +44 -246
- package/types/DataTableContext.d.ts +1 -0
- package/types/DataTableSchema.d.ts +43 -245
- package/types/configs/useTableColsWithAddons.d.ts +1 -0
- package/types/exported-related/RowRenderer/index.d.ts +1 -0
- package/types/exported-related/RowRenderer/useRowRendererProperties.d.ts +1 -1
- package/types/parts/Cells/Cell.d.ts +1 -0
- package/types/parts/Cells/index.d.ts +1 -0
- package/types/parts/DropIndicator.d.ts +1 -0
- package/types/parts/EmptyContent.d.ts +1 -0
- package/types/parts/Footer.d.ts +1 -0
- package/types/parts/Headers/index.d.ts +2 -2
- package/types/parts/Loader.d.ts +2 -2
- package/types/parts/Row.d.ts +3 -2
- package/types/parts/RowLoading.d.ts +1 -0
- package/types/parts/Rows.d.ts +2 -2
- package/types/parts/TableContent.d.ts +1 -0
- package/types/parts/VirtualRowsList.d.ts +1 -1
- package/types/redux/reducers/index.d.ts +2 -2
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/Headers/useHeaderCellConfig.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable complexity */\nimport { TypescriptColumn } from '../../types/props';\nimport { SortableItemContextType } from '../HoC/SortableItemContext';\n\ntype useHeaderCellConfigType = (\n args: {\n column: TypescriptColumn;\n dragAndDropColumns: boolean;\n reduxHeader: { showDnDHandle: boolean };\n isDragOverlay: boolean;\n } & SortableItemContextType,\n) => {\n hasFilter: boolean;\n hasDnD: boolean;\n hasSortingCaret: boolean;\n hasRightIcons: boolean;\n isDragging: boolean;\n shouldShowDnD: boolean;\n hCols: string[];\n};\n\nexport const useHeaderCellConfig: useHeaderCellConfigType = ({\n column,\n dragAndDropColumns,\n draggableProps,\n reduxHeader,\n isDragOverlay,\n}) => {\n const hasFilter = !!(column.filter || column.Filter);\n\n const hasDnD = dragAndDropColumns && !column.disableDnD;\n\n const hasSortingCaret = column.canSort && typeof column.isSortedDesc === 'boolean';\n\n const hasRightIcons = !isDragOverlay && (hasSortingCaret || hasFilter);\n\n const isDragging = draggableProps && draggableProps.isDragging;\n\n const shouldShowDnD =\n hasDnD &&\n ((reduxHeader?.showDnDHandle && draggableProps && !draggableProps.active) ||\n (draggableProps && draggableProps.isDragging) ||\n isDragOverlay);\n\n // Column definition\n const hCols = ['auto'];\n if (hasRightIcons) hCols.push('min-content');\n if (shouldShowDnD) hCols.unshift('min-content');\n\n return {\n hasFilter,\n hasDnD,\n hasSortingCaret,\n hasRightIcons,\n isDragging,\n hCols,\n shouldShowDnD,\n };\n};\n"],
|
|
5
|
+
"mappings": "AAAA;ACqBO,MAAM,sBAA+C,CAAC;AAAA,EAC3D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,MACI;AACJ,QAAM,YAAY,CAAC,CAAE,QAAO,UAAU,OAAO;AAE7C,QAAM,SAAS,sBAAsB,CAAC,OAAO;AAE7C,QAAM,kBAAkB,OAAO,WAAW,OAAO,OAAO,iBAAiB;AAEzE,QAAM,gBAAgB,CAAC,iBAAkB,oBAAmB;AAE5D,QAAM,aAAa,kBAAkB,eAAe;AAEpD,QAAM,gBACJ,UACE,cAAa,iBAAiB,kBAAkB,CAAC,eAAe,UAC/D,kBAAkB,eAAe,cAClC;AAGJ,QAAM,QAAQ,CAAC;AACf,MAAI;AAAe,UAAM,KAAK;AAC9B,MAAI;AAAe,UAAM,QAAQ;AAEjC,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,45 +1,28 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
});
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
const useHeaderCellHandlers = _ref => {
|
|
25
|
-
let {
|
|
26
|
-
hasFilter,
|
|
27
|
-
patchHeader,
|
|
28
|
-
column,
|
|
29
|
-
reduxHeader,
|
|
30
|
-
hasDnD,
|
|
31
|
-
onColumnSortChange,
|
|
32
|
-
dragHandleRef,
|
|
33
|
-
filterIconRef,
|
|
34
|
-
headerRef
|
|
35
|
-
} = _ref;
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { useCallback } from "react";
|
|
3
|
+
const buildNextHeader = (reduxHeader, value, hasFilter, hasDnD, withTabStops = false) => ({
|
|
4
|
+
hideFilterMenu: true,
|
|
5
|
+
...reduxHeader,
|
|
6
|
+
hideFilterButton: !(hasFilter && value),
|
|
7
|
+
showDnDHandle: hasDnD && value,
|
|
8
|
+
withTabStops
|
|
9
|
+
});
|
|
10
|
+
const useHeaderCellHandlers = ({
|
|
11
|
+
hasFilter,
|
|
12
|
+
patchHeader,
|
|
13
|
+
column,
|
|
14
|
+
reduxHeader,
|
|
15
|
+
hasDnD,
|
|
16
|
+
onColumnSortChange,
|
|
17
|
+
dragHandleRef,
|
|
18
|
+
filterIconRef,
|
|
19
|
+
headerRef
|
|
20
|
+
}) => {
|
|
36
21
|
const onMouseEnter = useCallback(() => {
|
|
37
22
|
patchHeader(column.id, buildNextHeader(reduxHeader, true, hasFilter, hasDnD));
|
|
38
23
|
}, [column.id, hasDnD, hasFilter, patchHeader, reduxHeader]);
|
|
39
24
|
const onMouseLeave = useCallback(() => {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
if (!(headerRef !== null && headerRef !== void 0 && (_headerRef$current = headerRef.current) !== null && _headerRef$current !== void 0 && _headerRef$current.contains(document.activeElement))) {
|
|
25
|
+
if (!headerRef?.current?.contains(document.activeElement)) {
|
|
43
26
|
patchHeader(column.id, buildNextHeader(reduxHeader, false, hasFilter, hasDnD));
|
|
44
27
|
}
|
|
45
28
|
}, [column.id, hasDnD, hasFilter, headerRef, patchHeader, reduxHeader]);
|
|
@@ -47,51 +30,58 @@ const useHeaderCellHandlers = _ref => {
|
|
|
47
30
|
if (column.canSort) {
|
|
48
31
|
onColumnSortChange({
|
|
49
32
|
column: column.id,
|
|
50
|
-
direction: column.isSortedDesc ?
|
|
33
|
+
direction: column.isSortedDesc ? "ASC" : "DESC"
|
|
51
34
|
});
|
|
52
35
|
}
|
|
53
36
|
}, [column.canSort, column.id, column.isSortedDesc, onColumnSortChange]);
|
|
54
|
-
const onKeyDown = useCallback(e => {
|
|
55
|
-
if (e.code ===
|
|
37
|
+
const onKeyDown = useCallback((e) => {
|
|
38
|
+
if (e.code === "ArrowDown" && column.canSort) {
|
|
56
39
|
e.preventDefault();
|
|
57
40
|
onColumnSortChange({
|
|
58
41
|
column: column.id,
|
|
59
|
-
direction:
|
|
42
|
+
direction: "DESC"
|
|
60
43
|
});
|
|
61
|
-
} else if (e.code ===
|
|
44
|
+
} else if (e.code === "ArrowUp" && column.canSort) {
|
|
62
45
|
e.preventDefault();
|
|
63
46
|
onColumnSortChange({
|
|
64
47
|
column: column.id,
|
|
65
|
-
direction:
|
|
48
|
+
direction: "ASC"
|
|
66
49
|
});
|
|
67
|
-
} else if ([
|
|
68
|
-
patchHeader(column.id, buildNextHeader(reduxHeader, true, hasFilter, hasDnD, true));
|
|
69
|
-
|
|
50
|
+
} else if (["Enter", "Space"].includes(e.code)) {
|
|
51
|
+
patchHeader(column.id, buildNextHeader(reduxHeader, true, hasFilter, hasDnD, true));
|
|
70
52
|
setTimeout(() => {
|
|
71
|
-
if (dragHandleRef.current)
|
|
53
|
+
if (dragHandleRef.current)
|
|
54
|
+
dragHandleRef.current.focus();
|
|
55
|
+
else if (filterIconRef.current)
|
|
56
|
+
filterIconRef.current.focus();
|
|
72
57
|
});
|
|
73
58
|
}
|
|
74
|
-
}, [
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
59
|
+
}, [
|
|
60
|
+
column.canSort,
|
|
61
|
+
column.id,
|
|
62
|
+
onColumnSortChange,
|
|
63
|
+
patchHeader,
|
|
64
|
+
reduxHeader,
|
|
65
|
+
hasFilter,
|
|
66
|
+
hasDnD,
|
|
67
|
+
dragHandleRef,
|
|
68
|
+
filterIconRef
|
|
69
|
+
]);
|
|
70
|
+
const onFocus = useCallback((e) => {
|
|
71
|
+
if (e.target === headerRef?.current) {
|
|
78
72
|
patchHeader(column.id, buildNextHeader(reduxHeader, true, hasFilter, hasDnD));
|
|
79
73
|
}
|
|
80
74
|
}, [column.id, hasDnD, hasFilter, headerRef, patchHeader, reduxHeader]);
|
|
81
|
-
const onBlur = useCallback(e => {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
if (e.relatedTarget === filterIconRef.current)
|
|
75
|
+
const onBlur = useCallback((e) => {
|
|
76
|
+
if (e.relatedTarget === dragHandleRef.current)
|
|
77
|
+
return;
|
|
78
|
+
if (e.relatedTarget === filterIconRef.current)
|
|
79
|
+
return;
|
|
85
80
|
patchHeader(column.id, buildNextHeader(reduxHeader, false, hasFilter, hasDnD));
|
|
86
81
|
}, [dragHandleRef, filterIconRef, patchHeader, column.id, reduxHeader, hasFilter, hasDnD]);
|
|
87
|
-
return {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
onKeyDown,
|
|
92
|
-
onBlur,
|
|
93
|
-
onFocus
|
|
94
|
-
};
|
|
82
|
+
return { onMouseEnter, onMouseLeave, onClick, onKeyDown, onBlur, onFocus };
|
|
83
|
+
};
|
|
84
|
+
export {
|
|
85
|
+
useHeaderCellHandlers
|
|
95
86
|
};
|
|
96
|
-
|
|
97
|
-
export { useHeaderCellHandlers };
|
|
87
|
+
//# sourceMappingURL=useHeaderCellHandlers.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/Headers/useHeaderCellHandlers.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-params */\nimport { useCallback } from 'react';\nimport { TypescriptColumn } from '../../types/props';\n\ntype useHeaderCellHandlersType = (args: {\n hasFilter: boolean;\n patchHeader: (headerId: string, newHeader: Record<string, unknown>) => void;\n column: TypescriptColumn;\n reduxHeader: Record<string, unknown>;\n hasDnD: boolean;\n onColumnSortChange: (newSort: { column: string; direction: 'ASC' | 'DESC' }) => void;\n dragHandleRef: React.MutableRefObject<HTMLDivElement>;\n filterIconRef: React.MutableRefObject<HTMLDivElement>;\n headerRef: React.MutableRefObject<HTMLTableColElement>;\n}) => {\n onMouseEnter: React.MouseEventHandler;\n onMouseLeave: React.MouseEventHandler;\n onClick: React.MouseEventHandler;\n onKeyDown: React.KeyboardEventHandler;\n onFocus: React.FocusEventHandler;\n onBlur: React.FocusEventHandler;\n};\n\nconst buildNextHeader = (\n reduxHeader: Record<string, unknown>,\n value: boolean,\n hasFilter: boolean,\n hasDnD: boolean,\n withTabStops = false,\n) => ({\n hideFilterMenu: true, // Do this to overwrite it if it exists\n ...reduxHeader,\n hideFilterButton: !(hasFilter && value),\n showDnDHandle: hasDnD && value,\n withTabStops,\n});\n\nexport const useHeaderCellHandlers: useHeaderCellHandlersType = ({\n hasFilter,\n patchHeader,\n column,\n reduxHeader,\n hasDnD,\n onColumnSortChange,\n dragHandleRef,\n filterIconRef,\n headerRef,\n}) => {\n const onMouseEnter: React.MouseEventHandler = useCallback(() => {\n patchHeader(column.id, buildNextHeader(reduxHeader, true, hasFilter, hasDnD));\n }, [column.id, hasDnD, hasFilter, patchHeader, reduxHeader]);\n\n const onMouseLeave: React.MouseEventHandler = useCallback(() => {\n if (!headerRef?.current?.contains(document.activeElement)) {\n patchHeader(column.id, buildNextHeader(reduxHeader, false, hasFilter, hasDnD));\n }\n }, [column.id, hasDnD, hasFilter, headerRef, patchHeader, reduxHeader]);\n\n const onClick: React.MouseEventHandler = useCallback(() => {\n if (column.canSort) {\n onColumnSortChange({\n column: column.id,\n direction: column.isSortedDesc ? 'ASC' : 'DESC',\n });\n }\n }, [column.canSort, column.id, column.isSortedDesc, onColumnSortChange]);\n\n const onKeyDown: React.KeyboardEventHandler = useCallback(\n (e) => {\n if (e.code === 'ArrowDown' && column.canSort) {\n e.preventDefault();\n onColumnSortChange({\n column: column.id,\n direction: 'DESC',\n });\n } else if (e.code === 'ArrowUp' && column.canSort) {\n e.preventDefault();\n onColumnSortChange({\n column: column.id,\n direction: 'ASC',\n });\n } else if (['Enter', 'Space'].includes(e.code)) {\n patchHeader(column.id, buildNextHeader(reduxHeader, true, hasFilter, hasDnD, true));\n // Elements don't not yet exist\n setTimeout(() => {\n if (dragHandleRef.current) dragHandleRef.current.focus();\n else if (filterIconRef.current) filterIconRef.current.focus();\n });\n }\n },\n [\n column.canSort,\n column.id,\n onColumnSortChange,\n patchHeader,\n reduxHeader,\n hasFilter,\n hasDnD,\n dragHandleRef,\n filterIconRef,\n ],\n );\n\n const onFocus: React.FocusEventHandler = useCallback(\n (e) => {\n // Don't do anything if focus wasn't placed in the element (bubling issues)\n if (e.target === headerRef?.current) {\n patchHeader(column.id, buildNextHeader(reduxHeader, true, hasFilter, hasDnD));\n }\n },\n [column.id, hasDnD, hasFilter, headerRef, patchHeader, reduxHeader],\n );\n\n const onBlur: React.FocusEventHandler = useCallback(\n (e) => {\n // Don't do anything if blur was caused by going to a child\n if (e.relatedTarget === dragHandleRef.current) return;\n if (e.relatedTarget === filterIconRef.current) return;\n patchHeader(column.id, buildNextHeader(reduxHeader, false, hasFilter, hasDnD));\n },\n [dragHandleRef, filterIconRef, patchHeader, column.id, reduxHeader, hasFilter, hasDnD],\n );\n\n return { onMouseEnter, onMouseLeave, onClick, onKeyDown, onBlur, onFocus };\n};\n"],
|
|
5
|
+
"mappings": "AAAA;ACCA;AAsBA,MAAM,kBAAkB,CACtB,aACA,OACA,WACA,QACA,eAAe,UACX;AAAA,EACJ,gBAAgB;AAAA,KACb;AAAA,EACH,kBAAkB,CAAE,cAAa;AAAA,EACjC,eAAe,UAAU;AAAA,EACzB;AAAA;AAGK,MAAM,wBAAmD,CAAC;AAAA,EAC/D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,MACI;AACJ,QAAM,eAAwC,YAAY,MAAM;AAC9D,gBAAY,OAAO,IAAI,gBAAgB,aAAa,MAAM,WAAW;AAAA,KACpE,CAAC,OAAO,IAAI,QAAQ,WAAW,aAAa;AAE/C,QAAM,eAAwC,YAAY,MAAM;AAC9D,QAAI,CAAC,WAAW,SAAS,SAAS,SAAS,gBAAgB;AACzD,kBAAY,OAAO,IAAI,gBAAgB,aAAa,OAAO,WAAW;AAAA;AAAA,KAEvE,CAAC,OAAO,IAAI,QAAQ,WAAW,WAAW,aAAa;AAE1D,QAAM,UAAmC,YAAY,MAAM;AACzD,QAAI,OAAO,SAAS;AAClB,yBAAmB;AAAA,QACjB,QAAQ,OAAO;AAAA,QACf,WAAW,OAAO,eAAe,QAAQ;AAAA;AAAA;AAAA,KAG5C,CAAC,OAAO,SAAS,OAAO,IAAI,OAAO,cAAc;AAEpD,QAAM,YAAwC,YAC5C,CAAC,MAAM;AACL,QAAI,EAAE,SAAS,eAAe,OAAO,SAAS;AAC5C,QAAE;AACF,yBAAmB;AAAA,QACjB,QAAQ,OAAO;AAAA,QACf,WAAW;AAAA;AAAA,eAEJ,EAAE,SAAS,aAAa,OAAO,SAAS;AACjD,QAAE;AACF,yBAAmB;AAAA,QACjB,QAAQ,OAAO;AAAA,QACf,WAAW;AAAA;AAAA,eAEJ,CAAC,SAAS,SAAS,SAAS,EAAE,OAAO;AAC9C,kBAAY,OAAO,IAAI,gBAAgB,aAAa,MAAM,WAAW,QAAQ;AAE7E,iBAAW,MAAM;AACf,YAAI,cAAc;AAAS,wBAAc,QAAQ;AAAA,iBACxC,cAAc;AAAS,wBAAc,QAAQ;AAAA;AAAA;AAAA,KAI5D;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAIJ,QAAM,UAAmC,YACvC,CAAC,MAAM;AAEL,QAAI,EAAE,WAAW,WAAW,SAAS;AACnC,kBAAY,OAAO,IAAI,gBAAgB,aAAa,MAAM,WAAW;AAAA;AAAA,KAGzE,CAAC,OAAO,IAAI,QAAQ,WAAW,WAAW,aAAa;AAGzD,QAAM,SAAkC,YACtC,CAAC,MAAM;AAEL,QAAI,EAAE,kBAAkB,cAAc;AAAS;AAC/C,QAAI,EAAE,kBAAkB,cAAc;AAAS;AAC/C,gBAAY,OAAO,IAAI,gBAAgB,aAAa,OAAO,WAAW;AAAA,KAExE,CAAC,eAAe,eAAe,aAAa,OAAO,IAAI,aAAa,WAAW;AAGjF,SAAO,EAAE,cAAc,cAAc,SAAS,WAAW,QAAQ;AAAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
/** Context for cross component communication */
|
|
13
|
-
const SortableItemContext = /*#__PURE__*/createContext({
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { createContext } from "react";
|
|
3
|
+
var DropIndicatorPosition = /* @__PURE__ */ ((DropIndicatorPosition2) => {
|
|
4
|
+
DropIndicatorPosition2[DropIndicatorPosition2["None"] = 0] = "None";
|
|
5
|
+
DropIndicatorPosition2[DropIndicatorPosition2["Before"] = 1] = "Before";
|
|
6
|
+
DropIndicatorPosition2[DropIndicatorPosition2["After"] = 2] = "After";
|
|
7
|
+
DropIndicatorPosition2[DropIndicatorPosition2["Inside"] = 3] = "Inside";
|
|
8
|
+
return DropIndicatorPosition2;
|
|
9
|
+
})(DropIndicatorPosition || {});
|
|
10
|
+
const SortableItemContext = createContext({
|
|
14
11
|
draggableProps: false
|
|
15
12
|
});
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
export {
|
|
14
|
+
DropIndicatorPosition,
|
|
15
|
+
SortableItemContext
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=SortableItemContext.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/HoC/SortableItemContext.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { useSortable } from '@dnd-kit/sortable';\nimport { createContext } from 'react';\n\nexport enum DropIndicatorPosition {\n None = 0,\n Before = 1,\n After = 2,\n Inside = 3,\n}\n\nexport type SortableItemContextType = {\n draggableProps:\n | false\n | (ReturnType<typeof useSortable> & {\n dropIndicatorPosition: DropIndicatorPosition;\n shouldShowDropIndicatorPosition: boolean;\n lastActiveId?: string;\n setLastActiveId?: React.Dispatch<React.SetStateAction<string>>;\n });\n};\n\n/** Context for cross component communication */\nexport const SortableItemContext = createContext<SortableItemContextType>({\n draggableProps: false,\n});\n"],
|
|
5
|
+
"mappings": "AAAA;ACCA;AAEO,IAAK,wBAAL,kBAAK,2BAAL;AACL,0DAAO,KAAP;AACA,4DAAS,KAAT;AACA,2DAAQ,KAAR;AACA,4DAAS,KAAT;AAJU;AAAA;AAmBL,MAAM,sBAAsB,cAAuC;AAAA,EACxE,gBAAgB;AAAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,100 +1,64 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
import React, { useMemo, useCallback, createContext } from 'react';
|
|
12
|
-
import { DndContext, DragOverlay } from '@dnd-kit/core';
|
|
13
|
-
import { useHierarchyDndkitConfig } from '@elliemae/ds-drag-and-drop';
|
|
14
|
-
import { arrayMove } from '@dnd-kit/sortable';
|
|
15
|
-
import DataTableContext from '../../DataTableContext.js';
|
|
16
|
-
import { HeaderCellGroup } from '../Headers/HeaderCellGroup.js';
|
|
17
|
-
import { DATA_TESTID } from '../../configs/constants.js';
|
|
18
|
-
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
19
|
-
|
|
20
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
21
|
-
|
|
22
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
23
|
-
const DnDGroupContext = /*#__PURE__*/createContext({
|
|
24
|
-
activeIndex: undefined
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import React2, { createContext, useCallback, useMemo } from "react";
|
|
3
|
+
import { DndContext, DragOverlay } from "@dnd-kit/core";
|
|
4
|
+
import { useHierarchyDndkitConfig } from "@elliemae/ds-drag-and-drop";
|
|
5
|
+
import { arrayMove } from "@dnd-kit/sortable";
|
|
6
|
+
import { DataTableContext } from "../../DataTableContext";
|
|
7
|
+
import { HeaderCellGroup } from "../Headers/HeaderCellGroup";
|
|
8
|
+
import { DATA_TESTID } from "../../configs/constants";
|
|
9
|
+
const DnDGroupContext = createContext({
|
|
10
|
+
activeIndex: void 0
|
|
25
11
|
});
|
|
26
|
-
|
|
27
|
-
const flattenColumns = cols => {
|
|
12
|
+
const flattenColumns = (cols) => {
|
|
28
13
|
const flattened = [];
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
id
|
|
34
|
-
} = col;
|
|
35
|
-
flattened.push([{
|
|
36
|
-
id,
|
|
37
|
-
parentId,
|
|
38
|
-
index
|
|
39
|
-
}, col]);
|
|
40
|
-
if (col.columns) col.columns.forEach((subColumn, childIndex) => flatten(subColumn, childIndex, id));
|
|
14
|
+
const flatten = (col, index, parentId = null) => {
|
|
15
|
+
const { id } = col;
|
|
16
|
+
flattened.push([{ id, parentId, index }, col]);
|
|
17
|
+
if (col.columns)
|
|
18
|
+
col.columns.forEach((subColumn, childIndex) => flatten(subColumn, childIndex, id));
|
|
41
19
|
};
|
|
42
|
-
|
|
43
20
|
cols.forEach((col, index) => flatten(col, index));
|
|
44
21
|
return flattened;
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
const withConditionalDnDColumnContext = Component => props => {
|
|
22
|
+
};
|
|
23
|
+
const withConditionalDnDColumnContext = (Component) => (props) => {
|
|
49
24
|
const {
|
|
50
|
-
tableProps: {
|
|
51
|
-
dragAndDropColumns,
|
|
52
|
-
onColumnsReorder
|
|
53
|
-
},
|
|
25
|
+
tableProps: { dragAndDropColumns, onColumnsReorder },
|
|
54
26
|
visibleColumns
|
|
55
|
-
} =
|
|
27
|
+
} = React2.useContext(DataTableContext);
|
|
56
28
|
const flattenedItems = useMemo(() => flattenColumns(visibleColumns), [visibleColumns]);
|
|
57
29
|
const onReorder = useCallback((movedItem, indexes) => {
|
|
58
|
-
|
|
59
|
-
const newFlattenedData = arrayMove(flattenedItems, indexes.fromIndex, indexes.targetIndex); // Pull the cols's data into an object
|
|
60
|
-
|
|
30
|
+
const newFlattenedData = arrayMove(flattenedItems, indexes.fromIndex, indexes.targetIndex);
|
|
61
31
|
const nodes = {};
|
|
62
|
-
newFlattenedData.forEach(
|
|
63
|
-
let [dndData, colData] = _ref;
|
|
32
|
+
newFlattenedData.forEach(([dndData, colData]) => {
|
|
64
33
|
delete colData.columns;
|
|
65
34
|
nodes[dndData.id] = colData;
|
|
66
35
|
});
|
|
67
36
|
const newData = [];
|
|
68
|
-
newFlattenedData.forEach(
|
|
69
|
-
let [dndData, colData] = _ref2;
|
|
70
|
-
|
|
71
|
-
// If row has parent, insert it to it's subrows
|
|
72
|
-
// otherwise append it to the new user data
|
|
37
|
+
newFlattenedData.forEach(([dndData, colData]) => {
|
|
73
38
|
if (dndData.parentId) {
|
|
74
39
|
const parentNode = nodes[dndData.parentId];
|
|
75
|
-
if (parentNode.columns)
|
|
76
|
-
|
|
40
|
+
if (parentNode.columns)
|
|
41
|
+
parentNode.columns.push(colData);
|
|
42
|
+
else
|
|
43
|
+
parentNode.columns = [colData];
|
|
44
|
+
} else
|
|
45
|
+
newData.push(colData);
|
|
77
46
|
});
|
|
78
47
|
onColumnsReorder(newData, indexes);
|
|
79
48
|
}, [flattenedItems, onColumnsReorder]);
|
|
80
49
|
const onPreviewResetState = useCallback(() => {
|
|
81
|
-
const el = document.body.querySelector(
|
|
82
|
-
if (el)
|
|
50
|
+
const el = document.body.querySelector(`[data-testid="${DATA_TESTID.DATA_TABLE_SCROLLABLE_CONTAINER}"]`);
|
|
51
|
+
if (el)
|
|
52
|
+
el.onscroll = () => null;
|
|
83
53
|
}, []);
|
|
84
54
|
const onPreviewDragStart = useCallback(() => {
|
|
85
|
-
const el = document.body.querySelector(
|
|
86
|
-
|
|
55
|
+
const el = document.body.querySelector(`[data-testid="${DATA_TESTID.DATA_TABLE_SCROLLABLE_CONTAINER}"]`);
|
|
87
56
|
if (el) {
|
|
88
57
|
const y = el.scrollTop;
|
|
89
|
-
|
|
90
58
|
el.onscroll = () => el.scrollTo(0, y);
|
|
91
59
|
}
|
|
92
60
|
}, []);
|
|
93
|
-
const {
|
|
94
|
-
dndContextProps,
|
|
95
|
-
activeId,
|
|
96
|
-
activeIndex
|
|
97
|
-
} = useHierarchyDndkitConfig({
|
|
61
|
+
const { dndContextProps, activeId, activeIndex } = useHierarchyDndkitConfig({
|
|
98
62
|
flattenedItems,
|
|
99
63
|
dragOverlayDataTestid: DATA_TESTID.DATA_TABLE_COLUMN_DRAG_OVERLAY,
|
|
100
64
|
isHorizontalDnD: true,
|
|
@@ -102,20 +66,23 @@ const withConditionalDnDColumnContext = Component => props => {
|
|
|
102
66
|
onPreviewResetState,
|
|
103
67
|
onPreviewDragStart
|
|
104
68
|
});
|
|
105
|
-
if (dragAndDropColumns)
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
}
|
|
110
|
-
},
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
})[1],
|
|
69
|
+
if (dragAndDropColumns)
|
|
70
|
+
return /* @__PURE__ */ React2.createElement(DndContext, {
|
|
71
|
+
...dndContextProps
|
|
72
|
+
}, /* @__PURE__ */ React2.createElement(DnDGroupContext.Provider, {
|
|
73
|
+
value: { activeIndex }
|
|
74
|
+
}, /* @__PURE__ */ React2.createElement(Component, {
|
|
75
|
+
...props
|
|
76
|
+
})), /* @__PURE__ */ React2.createElement(DragOverlay, null, activeId ? /* @__PURE__ */ React2.createElement(HeaderCellGroup, {
|
|
77
|
+
header: flattenedItems.find(([item]) => item.id === activeId)[1],
|
|
115
78
|
isDragOverlay: true
|
|
116
|
-
}) : null)
|
|
117
|
-
|
|
118
|
-
|
|
79
|
+
}) : null));
|
|
80
|
+
return /* @__PURE__ */ React2.createElement(Component, {
|
|
81
|
+
...props
|
|
82
|
+
});
|
|
83
|
+
};
|
|
84
|
+
export {
|
|
85
|
+
DnDGroupContext,
|
|
86
|
+
withConditionalDnDColumnContext
|
|
119
87
|
};
|
|
120
|
-
|
|
121
|
-
export { DnDGroupContext, withConditionalDnDColumnContext };
|
|
88
|
+
//# sourceMappingURL=withConditionalDnDColumnContext.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/HoC/withConditionalDnDColumnContext.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable no-underscore-dangle */\n/* eslint-disable max-params */\nimport React, { createContext, useCallback, useMemo } from 'react';\nimport { DndContext, DragOverlay } from '@dnd-kit/core';\nimport { useHierarchyDndkitConfig } from '@elliemae/ds-drag-and-drop';\nimport { arrayMove } from '@dnd-kit/sortable';\nimport { FunctionalHOC } from '../../types/FunctionalHoC';\nimport { DataTableContext } from '../../DataTableContext';\nimport { Item } from '../../helpers/dndkit/hierarchy/types';\nimport { TypescriptColumn } from '../../types/props';\nimport { HeaderCellGroup } from '../Headers/HeaderCellGroup';\nimport { DATA_TESTID } from '../../configs/constants';\n\ntype DnDGroupContextType = {\n activeIndex: number;\n};\n\nexport const DnDGroupContext = createContext<DnDGroupContextType>({\n activeIndex: undefined,\n});\n\nconst flattenColumns = (cols: TypescriptColumn[]) => {\n const flattened = [];\n const flatten = (col: TypescriptColumn, index, parentId = null) => {\n const { id } = col;\n flattened.push([{ id, parentId, index }, col]);\n if (col.columns)\n col.columns.forEach((subColumn: TypescriptColumn, childIndex: number) => flatten(subColumn, childIndex, id));\n };\n cols.forEach((col, index) => flatten(col, index));\n return flattened;\n};\n\n// only wraps in \"DnDContext\" and \"DnDGroupContext\" if any Drag and Drop functionality is requested\nexport const withConditionalDnDColumnContext: FunctionalHOC = (Component) => (props) => {\n const {\n tableProps: { dragAndDropColumns, onColumnsReorder },\n visibleColumns,\n } = React.useContext(DataTableContext);\n\n const flattenedItems = useMemo(() => flattenColumns(visibleColumns), [visibleColumns]);\n\n const onReorder = useCallback(\n (movedItem: Item, indexes: { targetIndex: number; fromIndex: number }) => {\n // Send from index to target index\n const newFlattenedData = arrayMove(flattenedItems, indexes.fromIndex, indexes.targetIndex);\n // Pull the cols's data into an object\n const nodes = {};\n newFlattenedData.forEach(([dndData, colData]) => {\n delete colData.columns;\n nodes[dndData.id] = colData;\n });\n const newData = [];\n newFlattenedData.forEach(([dndData, colData]) => {\n // If row has parent, insert it to it's subrows\n // otherwise append it to the new user data\n if (dndData.parentId) {\n const parentNode = nodes[dndData.parentId];\n if (parentNode.columns) parentNode.columns.push(colData);\n else parentNode.columns = [colData];\n } else newData.push(colData);\n });\n onColumnsReorder(newData, indexes);\n },\n [flattenedItems, onColumnsReorder],\n );\n\n const onPreviewResetState = useCallback(() => {\n const el: HTMLDivElement | null = document.body.querySelector(\n `[data-testid=\"${DATA_TESTID.DATA_TABLE_SCROLLABLE_CONTAINER}\"]`,\n );\n if (el) el.onscroll = () => null;\n }, []);\n\n const onPreviewDragStart = useCallback(() => {\n const el: HTMLDivElement | null = document.body.querySelector(\n `[data-testid=\"${DATA_TESTID.DATA_TABLE_SCROLLABLE_CONTAINER}\"]`,\n );\n if (el) {\n const y = el.scrollTop;\n el.onscroll = () => el.scrollTo(0, y);\n }\n }, []);\n\n const { dndContextProps, activeId, activeIndex } = useHierarchyDndkitConfig({\n flattenedItems,\n dragOverlayDataTestid: DATA_TESTID.DATA_TABLE_COLUMN_DRAG_OVERLAY,\n isHorizontalDnD: true,\n onReorder,\n onPreviewResetState,\n onPreviewDragStart,\n });\n\n if (dragAndDropColumns)\n return (\n <DndContext {...dndContextProps}>\n <DnDGroupContext.Provider value={{ activeIndex }}>\n <Component {...props} />\n </DnDGroupContext.Provider>\n <DragOverlay>\n {activeId ? (\n <HeaderCellGroup header={flattenedItems.find(([item]) => item.id === activeId)[1]} isDragOverlay />\n ) : null}\n </DragOverlay>\n </DndContext>\n );\n return <Component {...props} />;\n};\n"],
|
|
5
|
+
"mappings": "AAAA;ACEA;AACA;AACA;AACA;AAEA;AAGA;AACA;AAMO,MAAM,kBAAkB,cAAmC;AAAA,EAChE,aAAa;AAAA;AAGf,MAAM,iBAAiB,CAAC,SAA6B;AACnD,QAAM,YAAY;AAClB,QAAM,UAAU,CAAC,KAAuB,OAAO,WAAW,SAAS;AACjE,UAAM,EAAE,OAAO;AACf,cAAU,KAAK,CAAC,EAAE,IAAI,UAAU,SAAS;AACzC,QAAI,IAAI;AACN,UAAI,QAAQ,QAAQ,CAAC,WAA6B,eAAuB,QAAQ,WAAW,YAAY;AAAA;AAE5G,OAAK,QAAQ,CAAC,KAAK,UAAU,QAAQ,KAAK;AAC1C,SAAO;AAAA;AAIF,MAAM,kCAAiD,CAAC,cAAc,CAAC,UAAU;AACtF,QAAM;AAAA,IACJ,YAAY,EAAE,oBAAoB;AAAA,IAClC;AAAA,MACE,OAAM,WAAW;AAErB,QAAM,iBAAiB,QAAQ,MAAM,eAAe,iBAAiB,CAAC;AAEtE,QAAM,YAAY,YAChB,CAAC,WAAiB,YAAwD;AAExE,UAAM,mBAAmB,UAAU,gBAAgB,QAAQ,WAAW,QAAQ;AAE9E,UAAM,QAAQ;AACd,qBAAiB,QAAQ,CAAC,CAAC,SAAS,aAAa;AAC/C,aAAO,QAAQ;AACf,YAAM,QAAQ,MAAM;AAAA;AAEtB,UAAM,UAAU;AAChB,qBAAiB,QAAQ,CAAC,CAAC,SAAS,aAAa;AAG/C,UAAI,QAAQ,UAAU;AACpB,cAAM,aAAa,MAAM,QAAQ;AACjC,YAAI,WAAW;AAAS,qBAAW,QAAQ,KAAK;AAAA;AAC3C,qBAAW,UAAU,CAAC;AAAA;AACtB,gBAAQ,KAAK;AAAA;AAEtB,qBAAiB,SAAS;AAAA,KAE5B,CAAC,gBAAgB;AAGnB,QAAM,sBAAsB,YAAY,MAAM;AAC5C,UAAM,KAA4B,SAAS,KAAK,cAC9C,iBAAiB,YAAY;AAE/B,QAAI;AAAI,SAAG,WAAW,MAAM;AAAA,KAC3B;AAEH,QAAM,qBAAqB,YAAY,MAAM;AAC3C,UAAM,KAA4B,SAAS,KAAK,cAC9C,iBAAiB,YAAY;AAE/B,QAAI,IAAI;AACN,YAAM,IAAI,GAAG;AACb,SAAG,WAAW,MAAM,GAAG,SAAS,GAAG;AAAA;AAAA,KAEpC;AAEH,QAAM,EAAE,iBAAiB,UAAU,gBAAgB,yBAAyB;AAAA,IAC1E;AAAA,IACA,uBAAuB,YAAY;AAAA,IACnC,iBAAiB;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA;AAGF,MAAI;AACF,WACE,qCAAC,YAAD;AAAA,SAAgB;AAAA,OACd,qCAAC,gBAAgB,UAAjB;AAAA,MAA0B,OAAO,EAAE;AAAA,OACjC,qCAAC,WAAD;AAAA,SAAe;AAAA,SAEjB,qCAAC,aAAD,MACG,WACC,qCAAC,iBAAD;AAAA,MAAiB,QAAQ,eAAe,KAAK,CAAC,CAAC,UAAU,KAAK,OAAO,UAAU;AAAA,MAAI,eAAa;AAAA,SAC9F;AAIZ,SAAO,qCAAC,WAAD;AAAA,OAAe;AAAA;AAAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,74 +1,46 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
import { SortableContext } from '@dnd-kit/sortable';
|
|
14
|
-
import DataTableContext from '../../DataTableContext.js';
|
|
15
|
-
import { useTreeDndkitConfig } from '@elliemae/ds-drag-and-drop';
|
|
16
|
-
import { DropIndicatorPosition } from './SortableItemContext.js';
|
|
17
|
-
import { Row } from '../Row.js';
|
|
18
|
-
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
19
|
-
|
|
20
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
21
|
-
|
|
22
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
23
|
-
const DnDTreeContext = /*#__PURE__*/createContext({
|
|
24
|
-
depth: undefined,
|
|
25
|
-
activeIndex: undefined,
|
|
26
|
-
visibleItems: undefined,
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import React2, { createContext, useCallback } from "react";
|
|
3
|
+
import { DndContext, DragOverlay } from "@dnd-kit/core";
|
|
4
|
+
import { SortableContext } from "@dnd-kit/sortable";
|
|
5
|
+
import { DataTableContext } from "../../DataTableContext";
|
|
6
|
+
import { useTreeDndkitConfig } from "@elliemae/ds-drag-and-drop";
|
|
7
|
+
import { DropIndicatorPosition } from "./SortableItemContext";
|
|
8
|
+
import { Row } from "../Row";
|
|
9
|
+
const DnDTreeContext = createContext({
|
|
10
|
+
depth: void 0,
|
|
11
|
+
activeIndex: void 0,
|
|
12
|
+
visibleItems: void 0,
|
|
27
13
|
dropIndicatorPosition: DropIndicatorPosition.None,
|
|
28
|
-
lastActiveId:
|
|
29
|
-
setLastActiveId:
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
const withConditionalDnDRowContext = Component => props => {
|
|
14
|
+
lastActiveId: void 0,
|
|
15
|
+
setLastActiveId: void 0
|
|
16
|
+
});
|
|
17
|
+
const withConditionalDnDRowContext = (Component) => (props) => {
|
|
33
18
|
const {
|
|
34
|
-
tableProps: {
|
|
35
|
-
dragAndDropRows,
|
|
36
|
-
isExpandable,
|
|
37
|
-
onRowsReorder,
|
|
38
|
-
maxDragAndDropLevel
|
|
39
|
-
},
|
|
19
|
+
tableProps: { dragAndDropRows, isExpandable, onRowsReorder, maxDragAndDropLevel },
|
|
40
20
|
flattenedData,
|
|
41
21
|
allDataFlattened
|
|
42
|
-
} =
|
|
43
|
-
const [lastActiveId, setLastActiveId] =
|
|
22
|
+
} = React2.useContext(DataTableContext);
|
|
23
|
+
const [lastActiveId, setLastActiveId] = React2.useState(null);
|
|
44
24
|
const onReorder = useCallback((newData, indexes, considerExpanding) => {
|
|
45
|
-
// Pull the row's original data into an object
|
|
46
25
|
const nodes = {};
|
|
47
|
-
newData.forEach(row => {
|
|
26
|
+
newData.forEach((row) => {
|
|
48
27
|
delete row.original.subRows;
|
|
49
28
|
nodes[row.uid] = row.original;
|
|
50
29
|
});
|
|
51
30
|
const newUserData = [];
|
|
52
|
-
newData.forEach(row => {
|
|
53
|
-
// If row has parent, insert it to it's subrows
|
|
54
|
-
// otherwise append it to the new user data
|
|
31
|
+
newData.forEach((row) => {
|
|
55
32
|
if (row.parentId) {
|
|
56
33
|
const parentNode = nodes[row.parentId];
|
|
57
|
-
if (parentNode
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
34
|
+
if (parentNode?.subRows)
|
|
35
|
+
parentNode.subRows.push(row.original);
|
|
36
|
+
else
|
|
37
|
+
parentNode.subRows = [row.original];
|
|
38
|
+
} else
|
|
39
|
+
newUserData.push(row.original);
|
|
40
|
+
});
|
|
61
41
|
onRowsReorder(newUserData, indexes, considerExpanding);
|
|
62
42
|
}, [onRowsReorder]);
|
|
63
|
-
const {
|
|
64
|
-
dndContextProps,
|
|
65
|
-
sortableContextProps,
|
|
66
|
-
activeId,
|
|
67
|
-
activeIndex,
|
|
68
|
-
depth,
|
|
69
|
-
dropIndicatorPosition,
|
|
70
|
-
visibleItems
|
|
71
|
-
} = useTreeDndkitConfig({
|
|
43
|
+
const { dndContextProps, sortableContextProps, activeId, activeIndex, depth, dropIndicatorPosition, visibleItems } = useTreeDndkitConfig({
|
|
72
44
|
flattenedItems: allDataFlattened,
|
|
73
45
|
visibleItems: flattenedData,
|
|
74
46
|
isHorizontalDnD: false,
|
|
@@ -76,29 +48,36 @@ const withConditionalDnDRowContext = Component => props => {
|
|
|
76
48
|
onReorder,
|
|
77
49
|
maxDragAndDropLevel
|
|
78
50
|
});
|
|
79
|
-
if (lastActiveId !== activeId && activeId)
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
width: 'auto'
|
|
51
|
+
if (lastActiveId !== activeId && activeId)
|
|
52
|
+
setLastActiveId(activeId);
|
|
53
|
+
if (dragAndDropRows)
|
|
54
|
+
return /* @__PURE__ */ React2.createElement(DndContext, {
|
|
55
|
+
...dndContextProps
|
|
56
|
+
}, /* @__PURE__ */ React2.createElement(SortableContext, {
|
|
57
|
+
...sortableContextProps
|
|
58
|
+
}, /* @__PURE__ */ React2.createElement(DnDTreeContext.Provider, {
|
|
59
|
+
value: {
|
|
60
|
+
activeIndex,
|
|
61
|
+
depth,
|
|
62
|
+
visibleItems,
|
|
63
|
+
dropIndicatorPosition,
|
|
64
|
+
lastActiveId,
|
|
65
|
+
setLastActiveId
|
|
95
66
|
}
|
|
96
|
-
},
|
|
97
|
-
|
|
67
|
+
}, /* @__PURE__ */ React2.createElement(Component, {
|
|
68
|
+
...props
|
|
69
|
+
}))), /* @__PURE__ */ React2.createElement(DragOverlay, {
|
|
70
|
+
style: { width: "auto" }
|
|
71
|
+
}, activeId ? /* @__PURE__ */ React2.createElement(Row, {
|
|
72
|
+
row: flattenedData.find((row) => row.uid === activeId),
|
|
98
73
|
isDragOverlay: true
|
|
99
|
-
}) : null)
|
|
100
|
-
|
|
101
|
-
|
|
74
|
+
}) : null));
|
|
75
|
+
return /* @__PURE__ */ React2.createElement(Component, {
|
|
76
|
+
...props
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
export {
|
|
80
|
+
DnDTreeContext,
|
|
81
|
+
withConditionalDnDRowContext
|
|
102
82
|
};
|
|
103
|
-
|
|
104
|
-
export { DnDTreeContext, withConditionalDnDRowContext };
|
|
83
|
+
//# sourceMappingURL=withConditionalDnDRowContext.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/HoC/withConditionalDnDRowContext.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { createContext, useCallback } from 'react';\nimport { DndContext, DragOverlay } from '@dnd-kit/core';\nimport { SortableContext } from '@dnd-kit/sortable';\nimport { DataTableContext } from '../../DataTableContext';\nimport { FunctionalHOC } from '../../types/FunctionalHoC';\nimport { useTreeDndkitConfig } from '@elliemae/ds-drag-and-drop';\nimport { Item } from '../../helpers/dndkit/tree/types';\nimport { DropIndicatorPosition } from './SortableItemContext';\nimport { Row } from '../Row';\n\ntype DnDTreeContextType = {\n depth: number;\n activeIndex: number;\n visibleItems: unknown[];\n dropIndicatorPosition: DropIndicatorPosition;\n lastActiveId: string;\n setLastActiveId: React.Dispatch<React.SetStateAction<string>>;\n};\n\nexport const DnDTreeContext = createContext<DnDTreeContextType>({\n depth: undefined,\n activeIndex: undefined,\n visibleItems: undefined,\n dropIndicatorPosition: DropIndicatorPosition.None,\n lastActiveId: undefined,\n setLastActiveId: undefined,\n});\n\n// only wraps in \"DnDContext\" and \"DnDTreeContext\" if any Drag and Drop functionality is requested\nexport const withConditionalDnDRowContext: FunctionalHOC = (Component) => (props) => {\n const {\n tableProps: { dragAndDropRows, isExpandable, onRowsReorder, maxDragAndDropLevel },\n flattenedData,\n allDataFlattened,\n } = React.useContext(DataTableContext);\n\n const [lastActiveId, setLastActiveId] = React.useState<string>(null);\n\n const onReorder = useCallback(\n (newData: Item[], indexes: { targetIndex: number; fromIndex: number }, considerExpanding: string) => {\n // Pull the row's original data into an object\n const nodes = {};\n newData.forEach((row) => {\n delete row.original.subRows;\n nodes[row.uid] = row.original;\n });\n const newUserData = [];\n newData.forEach((row) => {\n // If row has parent, insert it to it's subrows\n // otherwise append it to the new user data\n if (row.parentId) {\n const parentNode = nodes[row.parentId];\n if (parentNode?.subRows) parentNode.subRows.push(row.original);\n else parentNode.subRows = [row.original];\n } else newUserData.push(row.original);\n });\n // Tell the user that the order has change, he can chose to commit it or not\n onRowsReorder(newUserData, indexes, considerExpanding);\n },\n [onRowsReorder],\n );\n\n const { dndContextProps, sortableContextProps, activeId, activeIndex, depth, dropIndicatorPosition, visibleItems } =\n useTreeDndkitConfig({\n flattenedItems: allDataFlattened,\n visibleItems: flattenedData,\n isHorizontalDnD: false,\n isExpandable,\n onReorder,\n maxDragAndDropLevel,\n });\n\n if (lastActiveId !== activeId && activeId) setLastActiveId(activeId);\n\n if (dragAndDropRows)\n return (\n <DndContext {...dndContextProps}>\n <SortableContext {...sortableContextProps}>\n <DnDTreeContext.Provider\n value={{\n activeIndex,\n depth,\n visibleItems,\n dropIndicatorPosition,\n lastActiveId,\n setLastActiveId,\n }}\n >\n <Component {...props} />\n </DnDTreeContext.Provider>\n </SortableContext>\n <DragOverlay style={{ width: 'auto' }}>\n {activeId ? <Row row={flattenedData.find((row) => row.uid === activeId)} isDragOverlay /> : null}\n </DragOverlay>\n </DndContext>\n );\n return <Component {...props} />;\n};\n"],
|
|
5
|
+
"mappings": "AAAA;ACAA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAWO,MAAM,iBAAiB,cAAkC;AAAA,EAC9D,OAAO;AAAA,EACP,aAAa;AAAA,EACb,cAAc;AAAA,EACd,uBAAuB,sBAAsB;AAAA,EAC7C,cAAc;AAAA,EACd,iBAAiB;AAAA;AAIZ,MAAM,+BAA8C,CAAC,cAAc,CAAC,UAAU;AACnF,QAAM;AAAA,IACJ,YAAY,EAAE,iBAAiB,cAAc,eAAe;AAAA,IAC5D;AAAA,IACA;AAAA,MACE,OAAM,WAAW;AAErB,QAAM,CAAC,cAAc,mBAAmB,OAAM,SAAiB;AAE/D,QAAM,YAAY,YAChB,CAAC,SAAiB,SAAqD,sBAA8B;AAEnG,UAAM,QAAQ;AACd,YAAQ,QAAQ,CAAC,QAAQ;AACvB,aAAO,IAAI,SAAS;AACpB,YAAM,IAAI,OAAO,IAAI;AAAA;AAEvB,UAAM,cAAc;AACpB,YAAQ,QAAQ,CAAC,QAAQ;AAGvB,UAAI,IAAI,UAAU;AAChB,cAAM,aAAa,MAAM,IAAI;AAC7B,YAAI,YAAY;AAAS,qBAAW,QAAQ,KAAK,IAAI;AAAA;AAChD,qBAAW,UAAU,CAAC,IAAI;AAAA;AAC1B,oBAAY,KAAK,IAAI;AAAA;AAG9B,kBAAc,aAAa,SAAS;AAAA,KAEtC,CAAC;AAGH,QAAM,EAAE,iBAAiB,sBAAsB,UAAU,aAAa,OAAO,uBAAuB,iBAClG,oBAAoB;AAAA,IAClB,gBAAgB;AAAA,IAChB,cAAc;AAAA,IACd,iBAAiB;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA;AAGJ,MAAI,iBAAiB,YAAY;AAAU,oBAAgB;AAE3D,MAAI;AACF,WACE,qCAAC,YAAD;AAAA,SAAgB;AAAA,OACd,qCAAC,iBAAD;AAAA,SAAqB;AAAA,OACnB,qCAAC,eAAe,UAAhB;AAAA,MACE,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,OAGF,qCAAC,WAAD;AAAA,SAAe;AAAA,UAGnB,qCAAC,aAAD;AAAA,MAAa,OAAO,EAAE,OAAO;AAAA,OAC1B,WAAW,qCAAC,KAAD;AAAA,MAAK,KAAK,cAAc,KAAK,CAAC,QAAQ,IAAI,QAAQ;AAAA,MAAW,eAAa;AAAA,SAAM;AAIpG,SAAO,qCAAC,WAAD;AAAA,OAAe;AAAA;AAAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|