@elliemae/ds-data-table 3.0.0-next.9 → 3.0.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/DataTable.js +22 -28
- package/dist/cjs/DataTable.js.map +2 -2
- package/dist/cjs/DataTableContext.js +9 -16
- package/dist/cjs/DataTableContext.js.map +1 -1
- package/dist/cjs/DataTableSchema.js +114 -116
- package/dist/cjs/DataTableSchema.js.map +2 -2
- package/dist/cjs/addons/Columns/ColumnAction/ColumnAction.js +9 -16
- package/dist/cjs/addons/Columns/ColumnAction/ColumnAction.js.map +1 -1
- package/dist/cjs/addons/Columns/ColumnDragHandle/ColumnDragHandle.js +9 -16
- package/dist/cjs/addons/Columns/ColumnDragHandle/ColumnDragHandle.js.map +1 -1
- package/dist/cjs/addons/Columns/ColumnExpand/ColumnExpand.js +26 -25
- package/dist/cjs/addons/Columns/ColumnExpand/ColumnExpand.js.map +2 -2
- package/dist/cjs/addons/Columns/ColumnSelectMultiple/ColumnSelectMultiple.js +13 -18
- package/dist/cjs/addons/Columns/ColumnSelectMultiple/ColumnSelectMultiple.js.map +2 -2
- package/dist/cjs/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.js +9 -16
- package/dist/cjs/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.js.map +1 -1
- package/dist/cjs/addons/Columns/index.js +9 -16
- package/dist/cjs/addons/Columns/index.js.map +1 -1
- package/dist/cjs/addons/Editables/ComboboxEditableCell/ComboboxEditableCell.js +12 -19
- package/dist/cjs/addons/Editables/ComboboxEditableCell/ComboboxEditableCell.js.map +2 -2
- package/dist/cjs/addons/Editables/DateEditableCell/DateEditableCell.js +9 -16
- package/dist/cjs/addons/Editables/DateEditableCell/DateEditableCell.js.map +1 -1
- package/dist/cjs/addons/Editables/TextEditableCell/TextEditableCell.js +9 -16
- package/dist/cjs/addons/Editables/TextEditableCell/TextEditableCell.js.map +1 -1
- package/dist/cjs/addons/Editables/index.js +9 -16
- package/dist/cjs/addons/Editables/index.js.map +1 -1
- package/dist/cjs/addons/Filters/Components/CurrencyRangeFilter/index.js +11 -18
- package/dist/cjs/addons/Filters/Components/CurrencyRangeFilter/index.js.map +2 -2
- package/dist/cjs/addons/Filters/Components/DateRangeFilter/index.js +9 -16
- package/dist/cjs/addons/Filters/Components/DateRangeFilter/index.js.map +1 -1
- package/dist/cjs/addons/Filters/Components/DateSwitcherFilter/index.js +9 -16
- package/dist/cjs/addons/Filters/Components/DateSwitcherFilter/index.js.map +1 -1
- package/dist/cjs/addons/Filters/Components/NumberRangeFilter/index.js +11 -18
- package/dist/cjs/addons/Filters/Components/NumberRangeFilter/index.js.map +2 -2
- package/dist/cjs/addons/Filters/Components/SelectFilter/BaseSelectFilter.js +26 -42
- package/dist/cjs/addons/Filters/Components/SelectFilter/BaseSelectFilter.js.map +2 -2
- package/dist/cjs/addons/Filters/Components/SelectFilter/MultiSelectFilter.js +9 -16
- package/dist/cjs/addons/Filters/Components/SelectFilter/MultiSelectFilter.js.map +1 -1
- package/dist/cjs/addons/Filters/Components/SelectFilter/SingleSelectFilter.js +9 -16
- package/dist/cjs/addons/Filters/Components/SelectFilter/SingleSelectFilter.js.map +1 -1
- package/dist/cjs/addons/Filters/Components/SelectFilter/components.js +9 -16
- package/dist/cjs/addons/Filters/Components/SelectFilter/components.js.map +1 -1
- package/dist/cjs/addons/Filters/Components/SelectFilter/useSelectFilterHandlers.js +9 -16
- package/dist/cjs/addons/Filters/Components/SelectFilter/useSelectFilterHandlers.js.map +1 -1
- package/dist/cjs/addons/Filters/Components/SelectFilter/utils.js +9 -16
- package/dist/cjs/addons/Filters/Components/SelectFilter/utils.js.map +1 -1
- package/dist/cjs/addons/Filters/Components/SingleDateFilter/index.js +9 -16
- package/dist/cjs/addons/Filters/Components/SingleDateFilter/index.js.map +1 -1
- package/dist/cjs/addons/Filters/Components/index.js +17 -23
- package/dist/cjs/addons/Filters/Components/index.js.map +1 -1
- package/dist/cjs/addons/Filters/index.js +11 -17
- package/dist/cjs/addons/Filters/index.js.map +1 -1
- package/dist/cjs/addons/Pagination/Pagination.js +9 -16
- package/dist/cjs/addons/Pagination/Pagination.js.map +1 -1
- package/dist/cjs/addons/Pagination/index.js +9 -16
- package/dist/cjs/addons/Pagination/index.js.map +1 -1
- package/dist/cjs/configs/constants.js +9 -16
- package/dist/cjs/configs/constants.js.map +1 -1
- package/dist/cjs/configs/fixedSizes.js +9 -16
- package/dist/cjs/configs/fixedSizes.js.map +1 -1
- package/dist/cjs/configs/index.js +15 -21
- package/dist/cjs/configs/index.js.map +1 -1
- package/dist/cjs/configs/useDatatableConfig.js +32 -19
- package/dist/cjs/configs/useDatatableConfig.js.map +2 -2
- package/dist/cjs/configs/useInternalStateConfig.js +75 -0
- package/dist/cjs/configs/useInternalStateConfig.js.map +7 -0
- package/dist/cjs/configs/usePaginationConfig.js +9 -16
- package/dist/cjs/configs/usePaginationConfig.js.map +1 -1
- package/dist/cjs/configs/useRowFlattenization.js +9 -16
- package/dist/cjs/configs/useRowFlattenization.js.map +1 -1
- package/dist/cjs/configs/useTableColsWithAddons.js +9 -16
- package/dist/cjs/configs/useTableColsWithAddons.js.map +1 -1
- package/dist/cjs/configs/zIndexInternalConfig.js +9 -16
- package/dist/cjs/configs/zIndexInternalConfig.js.map +1 -1
- package/dist/cjs/exported-related/EditableCell.js +10 -17
- package/dist/cjs/exported-related/EditableCell.js.map +2 -2
- package/dist/cjs/exported-related/FilterPopover.js +38 -37
- package/dist/cjs/exported-related/FilterPopover.js.map +2 -2
- package/dist/cjs/exported-related/FilterTypes.js +9 -16
- package/dist/cjs/exported-related/FilterTypes.js.map +1 -1
- package/dist/cjs/exported-related/Filters/applyOutOfTheBoxFilters.js +9 -16
- package/dist/cjs/exported-related/Filters/applyOutOfTheBoxFilters.js.map +1 -1
- package/dist/cjs/exported-related/Filters/currencyRangeFilterFn.js +9 -16
- package/dist/cjs/exported-related/Filters/currencyRangeFilterFn.js.map +1 -1
- package/dist/cjs/exported-related/Filters/dateRangeFilterFn.js +9 -16
- package/dist/cjs/exported-related/Filters/dateRangeFilterFn.js.map +1 -1
- package/dist/cjs/exported-related/Filters/dateSwitcherFilterFn.js +9 -16
- package/dist/cjs/exported-related/Filters/dateSwitcherFilterFn.js.map +1 -1
- package/dist/cjs/exported-related/Filters/index.js +17 -23
- package/dist/cjs/exported-related/Filters/index.js.map +1 -1
- package/dist/cjs/exported-related/Filters/multiSelectFilterFn.js +9 -16
- package/dist/cjs/exported-related/Filters/multiSelectFilterFn.js.map +1 -1
- package/dist/cjs/exported-related/Filters/numberRangeFilterFn.js +9 -16
- package/dist/cjs/exported-related/Filters/numberRangeFilterFn.js.map +1 -1
- package/dist/cjs/exported-related/Filters/singleDateFilterFn.js +9 -16
- package/dist/cjs/exported-related/Filters/singleDateFilterFn.js.map +1 -1
- package/dist/cjs/exported-related/Filters/singleSelectFilterFn.js +9 -16
- package/dist/cjs/exported-related/Filters/singleSelectFilterFn.js.map +1 -1
- package/dist/cjs/exported-related/Filters/types.js +9 -16
- package/dist/cjs/exported-related/Filters/types.js.map +1 -1
- package/dist/cjs/exported-related/RowRenderer/DefaultRowContentRenderer.js +24 -23
- package/dist/cjs/exported-related/RowRenderer/DefaultRowContentRenderer.js.map +2 -2
- package/dist/cjs/exported-related/RowRenderer/index.js +12 -19
- package/dist/cjs/exported-related/RowRenderer/index.js.map +2 -2
- package/dist/cjs/exported-related/RowRenderer/useRowRendererHandlers.js +53 -34
- package/dist/cjs/exported-related/RowRenderer/useRowRendererHandlers.js.map +2 -2
- package/dist/cjs/exported-related/RowRenderer/useRowRendererProperties.js +9 -16
- package/dist/cjs/exported-related/RowRenderer/useRowRendererProperties.js.map +1 -1
- package/dist/cjs/exported-related/RowRenderer/useRowStyle.js +9 -16
- package/dist/cjs/exported-related/RowRenderer/useRowStyle.js.map +1 -1
- package/dist/cjs/exported-related/RowVariants.js +11 -17
- package/dist/cjs/exported-related/RowVariants.js.map +2 -2
- package/dist/cjs/exported-related/Toolbar/Toolbar.js +17 -31
- package/dist/cjs/exported-related/Toolbar/Toolbar.js.map +2 -2
- package/dist/cjs/exported-related/Toolbar/index.js +9 -16
- package/dist/cjs/exported-related/Toolbar/index.js.map +1 -1
- package/dist/cjs/exported-related/groupBy.js +9 -16
- package/dist/cjs/exported-related/groupBy.js.map +1 -1
- package/dist/cjs/exported-related/index.js +13 -19
- package/dist/cjs/exported-related/index.js.map +1 -1
- package/dist/cjs/helpers/addCellData.js +9 -16
- package/dist/cjs/helpers/addCellData.js.map +1 -1
- package/dist/cjs/helpers/cellPadding.js +9 -16
- package/dist/cjs/helpers/cellPadding.js.map +1 -1
- package/dist/cjs/helpers/columnsToGrid.js +9 -16
- package/dist/cjs/helpers/columnsToGrid.js.map +1 -1
- package/dist/cjs/helpers/getIdFromUniqueRowAccessor.js +9 -16
- package/dist/cjs/helpers/getIdFromUniqueRowAccessor.js.map +1 -1
- package/dist/cjs/helpers/index.js +16 -22
- package/dist/cjs/helpers/index.js.map +1 -1
- package/dist/cjs/helpers/refs-helpers.js +9 -16
- package/dist/cjs/helpers/refs-helpers.js.map +1 -1
- package/dist/cjs/helpers/sizeToCss.js +9 -16
- package/dist/cjs/helpers/sizeToCss.js.map +1 -1
- package/dist/cjs/hooks/useRecoverFocusCol.js +9 -16
- package/dist/cjs/hooks/useRecoverFocusCol.js.map +1 -1
- package/dist/cjs/hooks/useRecoverFocusRow.js +9 -16
- package/dist/cjs/hooks/useRecoverFocusRow.js.map +1 -1
- package/dist/cjs/index.js +12 -18
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/parts/Cells/Cell.js +11 -18
- package/dist/cjs/parts/Cells/Cell.js.map +2 -2
- package/dist/cjs/parts/Cells/index.js +9 -16
- package/dist/cjs/parts/Cells/index.js.map +1 -1
- package/dist/cjs/parts/Cells/useCellStyle.js +9 -16
- package/dist/cjs/parts/Cells/useCellStyle.js.map +1 -1
- package/dist/cjs/parts/DnDHandle.js +9 -16
- package/dist/cjs/parts/DnDHandle.js.map +1 -1
- package/dist/cjs/parts/DropIndicator.js +9 -16
- package/dist/cjs/parts/DropIndicator.js.map +1 -1
- package/dist/cjs/parts/EmptyContent.js +9 -16
- package/dist/cjs/parts/EmptyContent.js.map +1 -1
- package/dist/cjs/parts/FilterBar/FiltersBar.js +42 -24
- package/dist/cjs/parts/FilterBar/FiltersBar.js.map +2 -2
- package/dist/cjs/parts/FilterBar/components/DateRangePill.js +9 -16
- package/dist/cjs/parts/FilterBar/components/DateRangePill.js.map +1 -1
- package/dist/cjs/parts/FilterBar/components/DateSwitcherPill.js +9 -16
- package/dist/cjs/parts/FilterBar/components/DateSwitcherPill.js.map +1 -1
- package/dist/cjs/parts/FilterBar/components/MultiSelectPill.js +9 -16
- package/dist/cjs/parts/FilterBar/components/MultiSelectPill.js.map +1 -1
- package/dist/cjs/parts/FilterBar/components/NumberRangePill.js +9 -16
- package/dist/cjs/parts/FilterBar/components/NumberRangePill.js.map +1 -1
- package/dist/cjs/parts/FilterBar/components/SelectPill.js +9 -16
- package/dist/cjs/parts/FilterBar/components/SelectPill.js.map +1 -1
- package/dist/cjs/parts/FilterBar/components/SingleDatePill.js +9 -16
- package/dist/cjs/parts/FilterBar/components/SingleDatePill.js.map +1 -1
- package/dist/cjs/parts/FilterBar/components/index.js +16 -22
- package/dist/cjs/parts/FilterBar/components/index.js.map +1 -1
- package/dist/cjs/parts/FilterBar/index.js +9 -16
- package/dist/cjs/parts/FilterBar/index.js.map +1 -1
- package/dist/cjs/parts/FilterBar/styled.js +9 -16
- package/dist/cjs/parts/FilterBar/styled.js.map +1 -1
- package/dist/cjs/parts/FilterBar/types.js +9 -16
- package/dist/cjs/parts/FilterBar/types.js.map +1 -1
- package/dist/cjs/parts/Filters/index.js +11 -18
- package/dist/cjs/parts/Filters/index.js.map +2 -2
- package/dist/cjs/parts/Footer.js +9 -16
- package/dist/cjs/parts/Footer.js.map +1 -1
- package/dist/cjs/parts/Headers/EmptyChildrenGroup.js +9 -16
- package/dist/cjs/parts/Headers/EmptyChildrenGroup.js.map +1 -1
- package/dist/cjs/parts/Headers/HeaderCell.js +15 -29
- package/dist/cjs/parts/Headers/HeaderCell.js.map +2 -2
- package/dist/cjs/parts/Headers/HeaderCellGroup.js +12 -19
- package/dist/cjs/parts/Headers/HeaderCellGroup.js.map +2 -2
- package/dist/cjs/parts/Headers/HeaderCellTitle.js +9 -16
- package/dist/cjs/parts/Headers/HeaderCellTitle.js.map +1 -1
- package/dist/cjs/parts/Headers/HeaderResizer.js +13 -19
- package/dist/cjs/parts/Headers/HeaderResizer.js.map +2 -2
- package/dist/cjs/parts/Headers/RequiredDot.js +9 -16
- package/dist/cjs/parts/Headers/RequiredDot.js.map +1 -1
- package/dist/cjs/parts/Headers/index.js +9 -16
- package/dist/cjs/parts/Headers/index.js.map +1 -1
- package/dist/cjs/parts/Headers/useHeaderCellConfig.js +9 -16
- package/dist/cjs/parts/Headers/useHeaderCellConfig.js.map +1 -1
- package/dist/cjs/parts/Headers/useHeaderCellHandlers.js +9 -16
- package/dist/cjs/parts/Headers/useHeaderCellHandlers.js.map +1 -1
- package/dist/cjs/parts/HoC/SortableItemContext.js +9 -16
- package/dist/cjs/parts/HoC/SortableItemContext.js.map +1 -1
- package/dist/cjs/parts/HoC/withConditionalDnDColumnContext.js +14 -19
- package/dist/cjs/parts/HoC/withConditionalDnDColumnContext.js.map +2 -2
- package/dist/cjs/parts/HoC/withConditionalDnDRowContext.js +9 -16
- package/dist/cjs/parts/HoC/withConditionalDnDRowContext.js.map +1 -1
- package/dist/cjs/parts/HoC/withConditionalDnDSortableContext.js +9 -16
- package/dist/cjs/parts/HoC/withConditionalDnDSortableContext.js.map +1 -1
- package/dist/cjs/parts/HoC/withDnDSortableColumnContext.js +9 -16
- package/dist/cjs/parts/HoC/withDnDSortableColumnContext.js.map +1 -1
- package/dist/cjs/parts/HoC/withDnDSortableRowContext.js +9 -16
- package/dist/cjs/parts/HoC/withDnDSortableRowContext.js.map +1 -1
- package/dist/cjs/parts/Loader.js +9 -16
- package/dist/cjs/parts/Loader.js.map +1 -1
- package/dist/cjs/parts/Row.js +25 -28
- package/dist/cjs/parts/Row.js.map +2 -2
- package/dist/cjs/parts/RowLoading.js +9 -16
- package/dist/cjs/parts/RowLoading.js.map +1 -1
- package/dist/cjs/parts/RowVariants/RowVariantHeader.js +13 -20
- package/dist/cjs/parts/RowVariants/RowVariantHeader.js.map +2 -2
- package/dist/cjs/parts/RowVariants/RowVariantPrimary.js +11 -18
- package/dist/cjs/parts/RowVariants/RowVariantPrimary.js.map +2 -2
- package/dist/cjs/parts/RowVariants/RowVariantSecondary.js +11 -18
- package/dist/cjs/parts/RowVariants/RowVariantSecondary.js.map +2 -2
- package/dist/cjs/parts/RowVariants/RowVariantSkeleton.js +74 -0
- package/dist/cjs/parts/RowVariants/RowVariantSkeleton.js.map +7 -0
- package/dist/cjs/parts/RowVariants/index.js +12 -17
- package/dist/cjs/parts/RowVariants/index.js.map +2 -2
- package/dist/cjs/parts/RowVariants/types.js +9 -16
- package/dist/cjs/parts/RowVariants/types.js.map +2 -2
- package/dist/cjs/parts/Rows.js +9 -16
- package/dist/cjs/parts/Rows.js.map +1 -1
- package/dist/cjs/parts/SortByCaret.js +9 -16
- package/dist/cjs/parts/SortByCaret.js.map +1 -1
- package/dist/cjs/parts/SortableHeaderCell.js +9 -16
- package/dist/cjs/parts/SortableHeaderCell.js.map +1 -1
- package/dist/cjs/parts/TableContent.js +13 -25
- package/dist/cjs/parts/TableContent.js.map +2 -2
- package/dist/cjs/parts/VirtualRowsList.js +12 -27
- package/dist/cjs/parts/VirtualRowsList.js.map +2 -2
- package/dist/cjs/parts/index.js +9 -16
- package/dist/cjs/parts/index.js.map +1 -1
- package/dist/cjs/parts/internal.js +30 -0
- package/dist/cjs/parts/internal.js.map +7 -0
- package/dist/cjs/prop-types.js +9 -16
- package/dist/cjs/prop-types.js.map +1 -1
- package/dist/cjs/styled.js +17 -25
- package/dist/cjs/styled.js.map +2 -2
- package/dist/cjs/tests/utils/index.js +9 -16
- package/dist/cjs/tests/utils/index.js.map +1 -1
- package/dist/cjs/types/FunctionalHoC.js +9 -16
- package/dist/cjs/types/FunctionalHoC.js.map +1 -1
- package/dist/cjs/types/props.js +9 -16
- package/dist/cjs/types/props.js.map +2 -2
- package/dist/esm/DataTable.js +13 -12
- package/dist/esm/DataTable.js.map +2 -2
- package/dist/esm/DataTableContext.js.map +1 -1
- package/dist/esm/DataTableSchema.js +6 -1
- package/dist/esm/DataTableSchema.js.map +2 -2
- package/dist/esm/addons/Columns/ColumnAction/ColumnAction.js.map +1 -1
- package/dist/esm/addons/Columns/ColumnDragHandle/ColumnDragHandle.js.map +1 -1
- package/dist/esm/addons/Columns/ColumnExpand/ColumnExpand.js +18 -10
- package/dist/esm/addons/Columns/ColumnExpand/ColumnExpand.js.map +2 -2
- package/dist/esm/addons/Columns/ColumnSelectMultiple/ColumnSelectMultiple.js +4 -2
- package/dist/esm/addons/Columns/ColumnSelectMultiple/ColumnSelectMultiple.js.map +2 -2
- package/dist/esm/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.js.map +1 -1
- package/dist/esm/addons/Columns/index.js.map +1 -1
- package/dist/esm/addons/Editables/ComboboxEditableCell/ComboboxEditableCell.js +3 -3
- package/dist/esm/addons/Editables/ComboboxEditableCell/ComboboxEditableCell.js.map +2 -2
- package/dist/esm/addons/Editables/DateEditableCell/DateEditableCell.js.map +1 -1
- package/dist/esm/addons/Editables/TextEditableCell/TextEditableCell.js.map +1 -1
- package/dist/esm/addons/Editables/index.js.map +1 -1
- package/dist/esm/addons/Filters/Components/CurrencyRangeFilter/index.js +3 -3
- package/dist/esm/addons/Filters/Components/CurrencyRangeFilter/index.js.map +2 -2
- package/dist/esm/addons/Filters/Components/DateRangeFilter/index.js.map +1 -1
- package/dist/esm/addons/Filters/Components/DateSwitcherFilter/index.js.map +1 -1
- package/dist/esm/addons/Filters/Components/NumberRangeFilter/index.js +3 -3
- package/dist/esm/addons/Filters/Components/NumberRangeFilter/index.js.map +2 -2
- package/dist/esm/addons/Filters/Components/SelectFilter/BaseSelectFilter.js +17 -26
- package/dist/esm/addons/Filters/Components/SelectFilter/BaseSelectFilter.js.map +2 -2
- package/dist/esm/addons/Filters/Components/SelectFilter/MultiSelectFilter.js.map +1 -1
- package/dist/esm/addons/Filters/Components/SelectFilter/SingleSelectFilter.js.map +1 -1
- package/dist/esm/addons/Filters/Components/SelectFilter/useSelectFilterHandlers.js.map +1 -1
- package/dist/esm/addons/Filters/Components/SelectFilter/utils.js.map +1 -1
- package/dist/esm/addons/Filters/Components/SingleDateFilter/index.js.map +1 -1
- package/dist/esm/addons/Pagination/Pagination.js.map +1 -1
- package/dist/esm/configs/constants.js.map +1 -1
- package/dist/esm/configs/fixedSizes.js.map +1 -1
- package/dist/esm/configs/useDatatableConfig.js +25 -3
- package/dist/esm/configs/useDatatableConfig.js.map +2 -2
- package/dist/esm/configs/useInternalStateConfig.js +55 -0
- package/dist/esm/configs/useInternalStateConfig.js.map +7 -0
- package/dist/esm/configs/usePaginationConfig.js.map +1 -1
- package/dist/esm/configs/useRowFlattenization.js.map +1 -1
- package/dist/esm/configs/useTableColsWithAddons.js.map +1 -1
- package/dist/esm/configs/zIndexInternalConfig.js.map +1 -1
- package/dist/esm/exported-related/EditableCell.js +1 -1
- package/dist/esm/exported-related/EditableCell.js.map +2 -2
- package/dist/esm/exported-related/FilterPopover.js +30 -22
- package/dist/esm/exported-related/FilterPopover.js.map +2 -2
- package/dist/esm/exported-related/FilterTypes.js.map +1 -1
- package/dist/esm/exported-related/Filters/applyOutOfTheBoxFilters.js.map +1 -1
- package/dist/esm/exported-related/Filters/currencyRangeFilterFn.js.map +1 -1
- package/dist/esm/exported-related/Filters/dateRangeFilterFn.js.map +1 -1
- package/dist/esm/exported-related/Filters/dateSwitcherFilterFn.js.map +1 -1
- package/dist/esm/exported-related/Filters/multiSelectFilterFn.js.map +1 -1
- package/dist/esm/exported-related/Filters/numberRangeFilterFn.js.map +1 -1
- package/dist/esm/exported-related/Filters/singleDateFilterFn.js.map +1 -1
- package/dist/esm/exported-related/Filters/singleSelectFilterFn.js.map +1 -1
- package/dist/esm/exported-related/RowRenderer/DefaultRowContentRenderer.js +16 -8
- package/dist/esm/exported-related/RowRenderer/DefaultRowContentRenderer.js.map +2 -2
- package/dist/esm/exported-related/RowRenderer/index.js +3 -3
- package/dist/esm/exported-related/RowRenderer/index.js.map +2 -2
- package/dist/esm/exported-related/RowRenderer/useRowRendererHandlers.js +44 -18
- package/dist/esm/exported-related/RowRenderer/useRowRendererHandlers.js.map +2 -2
- package/dist/esm/exported-related/RowRenderer/useRowRendererProperties.js.map +1 -1
- package/dist/esm/exported-related/RowRenderer/useRowStyle.js.map +1 -1
- package/dist/esm/exported-related/RowVariants.js +2 -1
- package/dist/esm/exported-related/RowVariants.js.map +2 -2
- package/dist/esm/exported-related/Toolbar/Toolbar.js +9 -16
- package/dist/esm/exported-related/Toolbar/Toolbar.js.map +2 -2
- package/dist/esm/exported-related/groupBy.js.map +1 -1
- package/dist/esm/helpers/addCellData.js.map +1 -1
- package/dist/esm/helpers/cellPadding.js.map +1 -1
- package/dist/esm/helpers/columnsToGrid.js.map +1 -1
- package/dist/esm/helpers/getIdFromUniqueRowAccessor.js.map +1 -1
- package/dist/esm/helpers/refs-helpers.js.map +1 -1
- package/dist/esm/helpers/sizeToCss.js.map +1 -1
- package/dist/esm/hooks/useRecoverFocusCol.js.map +1 -1
- package/dist/esm/hooks/useRecoverFocusRow.js.map +1 -1
- package/dist/esm/parts/Cells/Cell.js +2 -2
- package/dist/esm/parts/Cells/Cell.js.map +2 -2
- package/dist/esm/parts/Cells/index.js.map +1 -1
- package/dist/esm/parts/Cells/useCellStyle.js.map +1 -1
- package/dist/esm/parts/DnDHandle.js.map +1 -1
- package/dist/esm/parts/DropIndicator.js.map +1 -1
- package/dist/esm/parts/EmptyContent.js.map +1 -1
- package/dist/esm/parts/FilterBar/FiltersBar.js +35 -10
- package/dist/esm/parts/FilterBar/FiltersBar.js.map +2 -2
- package/dist/esm/parts/FilterBar/components/DateRangePill.js.map +1 -1
- package/dist/esm/parts/FilterBar/components/DateSwitcherPill.js.map +1 -1
- package/dist/esm/parts/FilterBar/components/MultiSelectPill.js.map +1 -1
- package/dist/esm/parts/FilterBar/components/NumberRangePill.js.map +1 -1
- package/dist/esm/parts/FilterBar/components/SelectPill.js.map +1 -1
- package/dist/esm/parts/FilterBar/components/SingleDatePill.js.map +1 -1
- package/dist/esm/parts/FilterBar/styled.js.map +1 -1
- package/dist/esm/parts/Filters/index.js +3 -3
- package/dist/esm/parts/Filters/index.js.map +2 -2
- package/dist/esm/parts/Footer.js.map +1 -1
- package/dist/esm/parts/Headers/EmptyChildrenGroup.js.map +1 -1
- package/dist/esm/parts/Headers/HeaderCell.js +6 -13
- package/dist/esm/parts/Headers/HeaderCell.js.map +2 -2
- package/dist/esm/parts/Headers/HeaderCellGroup.js +2 -2
- package/dist/esm/parts/Headers/HeaderCellGroup.js.map +2 -2
- package/dist/esm/parts/Headers/HeaderCellTitle.js.map +1 -1
- package/dist/esm/parts/Headers/HeaderResizer.js +4 -3
- package/dist/esm/parts/Headers/HeaderResizer.js.map +2 -2
- package/dist/esm/parts/Headers/RequiredDot.js.map +1 -1
- package/dist/esm/parts/Headers/index.js.map +1 -1
- package/dist/esm/parts/Headers/useHeaderCellConfig.js.map +1 -1
- package/dist/esm/parts/Headers/useHeaderCellHandlers.js.map +1 -1
- package/dist/esm/parts/HoC/SortableItemContext.js.map +1 -1
- package/dist/esm/parts/HoC/withConditionalDnDColumnContext.js +4 -2
- package/dist/esm/parts/HoC/withConditionalDnDColumnContext.js.map +2 -2
- package/dist/esm/parts/HoC/withConditionalDnDRowContext.js.map +1 -1
- package/dist/esm/parts/HoC/withConditionalDnDSortableContext.js.map +1 -1
- package/dist/esm/parts/HoC/withDnDSortableColumnContext.js.map +1 -1
- package/dist/esm/parts/HoC/withDnDSortableRowContext.js.map +1 -1
- package/dist/esm/parts/Loader.js.map +1 -1
- package/dist/esm/parts/Row.js +15 -11
- package/dist/esm/parts/Row.js.map +2 -2
- package/dist/esm/parts/RowLoading.js.map +1 -1
- package/dist/esm/parts/RowVariants/RowVariantHeader.js +4 -4
- package/dist/esm/parts/RowVariants/RowVariantHeader.js.map +2 -2
- package/dist/esm/parts/RowVariants/RowVariantPrimary.js +2 -2
- package/dist/esm/parts/RowVariants/RowVariantPrimary.js.map +2 -2
- package/dist/esm/parts/RowVariants/RowVariantSecondary.js +2 -2
- package/dist/esm/parts/RowVariants/RowVariantSecondary.js.map +2 -2
- package/dist/esm/parts/RowVariants/RowVariantSkeleton.js +54 -0
- package/dist/esm/parts/RowVariants/RowVariantSkeleton.js.map +7 -0
- package/dist/esm/parts/RowVariants/index.js +3 -1
- package/dist/esm/parts/RowVariants/index.js.map +2 -2
- package/dist/esm/parts/Rows.js.map +1 -1
- package/dist/esm/parts/SortByCaret.js.map +1 -1
- package/dist/esm/parts/SortableHeaderCell.js.map +1 -1
- package/dist/esm/parts/TableContent.js +4 -9
- package/dist/esm/parts/TableContent.js.map +2 -2
- package/dist/esm/parts/VirtualRowsList.js +3 -11
- package/dist/esm/parts/VirtualRowsList.js.map +2 -2
- package/dist/esm/parts/internal.js +8 -0
- package/dist/esm/parts/internal.js.map +7 -0
- package/dist/esm/prop-types.js.map +1 -1
- package/dist/esm/styled.js +8 -9
- package/dist/esm/styled.js.map +2 -2
- package/dist/esm/tests/utils/index.js.map +1 -1
- package/package.json +28 -28
- package/dist/cjs/redux/reducers/headersReducers/defaults.js +0 -35
- package/dist/cjs/redux/reducers/headersReducers/defaults.js.map +0 -7
- package/dist/cjs/redux/reducers/headersReducers/headersReducers.js +0 -57
- package/dist/cjs/redux/reducers/headersReducers/headersReducers.js.map +0 -7
- package/dist/cjs/redux/reducers/headersReducers/index.js +0 -29
- package/dist/cjs/redux/reducers/headersReducers/index.js.map +0 -7
- package/dist/cjs/redux/reducers/headersReducers/logic.js +0 -56
- package/dist/cjs/redux/reducers/headersReducers/logic.js.map +0 -7
- package/dist/cjs/redux/reducers/headersReducers/useDispatchHeadersActions.js +0 -46
- package/dist/cjs/redux/reducers/headersReducers/useDispatchHeadersActions.js.map +0 -7
- package/dist/cjs/redux/reducers/index.js +0 -47
- package/dist/cjs/redux/reducers/index.js.map +0 -7
- package/dist/cjs/redux/reducers/rowsReducers/actions_types.js +0 -47
- package/dist/cjs/redux/reducers/rowsReducers/actions_types.js.map +0 -7
- package/dist/cjs/redux/reducers/rowsReducers/defaults.js +0 -55
- package/dist/cjs/redux/reducers/rowsReducers/defaults.js.map +0 -7
- package/dist/cjs/redux/reducers/rowsReducers/index.js +0 -29
- package/dist/cjs/redux/reducers/rowsReducers/index.js.map +0 -7
- package/dist/cjs/redux/reducers/rowsReducers/logic.js +0 -65
- package/dist/cjs/redux/reducers/rowsReducers/logic.js.map +0 -7
- package/dist/cjs/redux/reducers/rowsReducers/rowsReducer.js +0 -87
- package/dist/cjs/redux/reducers/rowsReducers/rowsReducer.js.map +0 -7
- package/dist/cjs/redux/reducers/rowsReducers/useDispatchRowsActions.js +0 -61
- package/dist/cjs/redux/reducers/rowsReducers/useDispatchRowsActions.js.map +0 -7
- package/dist/cjs/redux/storeConfig.js +0 -38
- package/dist/cjs/redux/storeConfig.js.map +0 -7
- package/dist/esm/redux/reducers/headersReducers/defaults.js +0 -6
- package/dist/esm/redux/reducers/headersReducers/defaults.js.map +0 -7
- package/dist/esm/redux/reducers/headersReducers/headersReducers.js +0 -28
- package/dist/esm/redux/reducers/headersReducers/headersReducers.js.map +0 -7
- package/dist/esm/redux/reducers/headersReducers/index.js +0 -4
- package/dist/esm/redux/reducers/headersReducers/index.js.map +0 -7
- package/dist/esm/redux/reducers/headersReducers/logic.js +0 -29
- package/dist/esm/redux/reducers/headersReducers/logic.js.map +0 -7
- package/dist/esm/redux/reducers/headersReducers/useDispatchHeadersActions.js +0 -17
- package/dist/esm/redux/reducers/headersReducers/useDispatchHeadersActions.js.map +0 -7
- package/dist/esm/redux/reducers/index.js +0 -18
- package/dist/esm/redux/reducers/index.js.map +0 -7
- package/dist/esm/redux/reducers/rowsReducers/actions_types.js +0 -18
- package/dist/esm/redux/reducers/rowsReducers/actions_types.js.map +0 -7
- package/dist/esm/redux/reducers/rowsReducers/defaults.js +0 -26
- package/dist/esm/redux/reducers/rowsReducers/defaults.js.map +0 -7
- package/dist/esm/redux/reducers/rowsReducers/index.js +0 -4
- package/dist/esm/redux/reducers/rowsReducers/index.js.map +0 -7
- package/dist/esm/redux/reducers/rowsReducers/logic.js +0 -36
- package/dist/esm/redux/reducers/rowsReducers/logic.js.map +0 -7
- package/dist/esm/redux/reducers/rowsReducers/rowsReducer.js +0 -67
- package/dist/esm/redux/reducers/rowsReducers/rowsReducer.js.map +0 -7
- package/dist/esm/redux/reducers/rowsReducers/useDispatchRowsActions.js +0 -41
- package/dist/esm/redux/reducers/rowsReducers/useDispatchRowsActions.js.map +0 -7
- package/dist/esm/redux/storeConfig.js +0 -9
- package/dist/esm/redux/storeConfig.js.map +0 -7
|
@@ -18,11 +18,11 @@ var __spreadValues = (a, b) => {
|
|
|
18
18
|
};
|
|
19
19
|
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
20
|
import * as React from "react";
|
|
21
|
-
import React2, {
|
|
21
|
+
import React2, { useCallback, useContext, useEffect, useState } from "react";
|
|
22
22
|
import { DSButton } from "@elliemae/ds-button";
|
|
23
23
|
import { DSPopperJS } from "@elliemae/ds-popperjs";
|
|
24
24
|
import styled from "styled-components";
|
|
25
|
-
import
|
|
25
|
+
import DataTableContext from "../DataTableContext";
|
|
26
26
|
import { DATA_TESTID } from "../configs/constants";
|
|
27
27
|
const FilterButton = styled.span`
|
|
28
28
|
display: inline-grid;
|
|
@@ -35,6 +35,14 @@ const Button = styled(DSButton)`
|
|
|
35
35
|
const PopperContent = styled.div`
|
|
36
36
|
background-color: #fff;
|
|
37
37
|
`;
|
|
38
|
+
const ButtonTrap = ({ cb }) => /* @__PURE__ */ React2.createElement("span", {
|
|
39
|
+
"aria-hidden": "true",
|
|
40
|
+
tabIndex: 0,
|
|
41
|
+
onFocus: (e) => {
|
|
42
|
+
e.stopPropagation();
|
|
43
|
+
cb();
|
|
44
|
+
}
|
|
45
|
+
});
|
|
38
46
|
const FilterPopover = ({
|
|
39
47
|
column,
|
|
40
48
|
columnId,
|
|
@@ -51,8 +59,7 @@ const FilterPopover = ({
|
|
|
51
59
|
hideFilterButton: true,
|
|
52
60
|
hideFilterMenu: true
|
|
53
61
|
};
|
|
54
|
-
const
|
|
55
|
-
const { patchHeaderFilterButtonAndMenu, patchHeader } = useDispatchHeadersActions();
|
|
62
|
+
const { patchHeaderFilterButtonAndMenu, patchHeader } = useContext(DataTableContext);
|
|
56
63
|
const isIconVisible = !hideFilterButton || !hideFilterMenu;
|
|
57
64
|
const isMenuOpen = !hideFilterMenu;
|
|
58
65
|
const handleClickOutsideMenu = (e) => {
|
|
@@ -60,12 +67,25 @@ const FilterPopover = ({
|
|
|
60
67
|
if (isMenuOpen)
|
|
61
68
|
patchHeaderFilterButtonAndMenu(columnId, true);
|
|
62
69
|
};
|
|
70
|
+
useEffect(() => {
|
|
71
|
+
const closeMenu = () => {
|
|
72
|
+
patchHeaderFilterButtonAndMenu(columnId, true);
|
|
73
|
+
};
|
|
74
|
+
window.addEventListener("blur", closeMenu);
|
|
75
|
+
return () => {
|
|
76
|
+
window.removeEventListener("blur", closeMenu);
|
|
77
|
+
};
|
|
78
|
+
}, [columnId, patchHeaderFilterButtonAndMenu]);
|
|
63
79
|
const handleTriggerClick = (e) => {
|
|
64
80
|
onTriggerClick(columnId, e);
|
|
65
81
|
patchHeaderFilterButtonAndMenu(columnId, false);
|
|
66
82
|
e.stopPropagation();
|
|
67
83
|
};
|
|
68
84
|
const [referenceElement, setReferenceElement] = useState(null);
|
|
85
|
+
const buttonTrapCallback = useCallback(() => {
|
|
86
|
+
patchHeader(columnId, { hideFilterMenu: true, hideFilterButton: false });
|
|
87
|
+
referenceElement?.focus();
|
|
88
|
+
}, [columnId, patchHeader, referenceElement]);
|
|
69
89
|
return /* @__PURE__ */ React2.createElement("div", {
|
|
70
90
|
onClick: (e) => e.stopPropagation(),
|
|
71
91
|
onKeyDown: (e) => {
|
|
@@ -78,12 +98,7 @@ const FilterPopover = ({
|
|
|
78
98
|
e.preventDefault();
|
|
79
99
|
}
|
|
80
100
|
},
|
|
81
|
-
style: { display: "flex" }
|
|
82
|
-
onBlur: (e) => {
|
|
83
|
-
if (e.target !== referenceElement && !popperRef.current?.contains(e.relatedTarget)) {
|
|
84
|
-
referenceElement?.focus();
|
|
85
|
-
}
|
|
86
|
-
}
|
|
101
|
+
style: { display: "flex" }
|
|
87
102
|
}, /* @__PURE__ */ React2.createElement(FilterButton, {
|
|
88
103
|
hide: !isIconVisible,
|
|
89
104
|
"data-testid": DATA_TESTID.DATA_TABLE_FILTER_BUTTON
|
|
@@ -114,18 +129,11 @@ const FilterPopover = ({
|
|
|
114
129
|
minWidth: column.ref?.current?.offsetWidth ?? "0px"
|
|
115
130
|
}),
|
|
116
131
|
placementOrderPreference: ["bottom-end"]
|
|
117
|
-
}, /* @__PURE__ */ React2.createElement(PopperContent, {
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
patchHeader(columnId, { hideFilterMenu: true, hideFilterButton: false });
|
|
123
|
-
}
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
},
|
|
127
|
-
ref: popperRef
|
|
128
|
-
}, menuContent)));
|
|
132
|
+
}, /* @__PURE__ */ React2.createElement(PopperContent, null, /* @__PURE__ */ React2.createElement(ButtonTrap, {
|
|
133
|
+
cb: buttonTrapCallback
|
|
134
|
+
}), menuContent, /* @__PURE__ */ React2.createElement(ButtonTrap, {
|
|
135
|
+
cb: buttonTrapCallback
|
|
136
|
+
}))));
|
|
129
137
|
};
|
|
130
138
|
export {
|
|
131
139
|
FilterPopover
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/exported-related/FilterPopover.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable react/prop-types */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\nimport React, { MutableRefObject,
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;ACEA;AACA;AACA;AACA;AACA;AACA;AAGA,MAAM,eAAe,OAAO;AAAA;AAAA,IAExB,CAAC,UAAW,MAAM,OAAO,yCAAyC;AAAA;AAGtE,MAAM,SAAS,OAAO;AAAA;AAAA;AAAA;
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable react/prop-types */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\nimport React, { MutableRefObject, useCallback, useContext, useEffect, useState } from 'react';\nimport { DSButton } from '@elliemae/ds-button';\nimport { DSPopperJS } from '@elliemae/ds-popperjs';\nimport styled from 'styled-components';\nimport DataTableContext from '../DataTableContext';\nimport { DATA_TESTID } from '../configs/constants';\nimport { ReduxHeader, TypescriptColumn } from '../types/props';\n\nconst FilterButton = styled.span<{ hide: boolean }>`\n display: inline-grid;\n ${(props) => (props.hide ? 'opacity: 0; display: none; width: 0;' : '')}\n`;\n\nconst Button = styled(DSButton)`\n position: relative;\n justify-self: flex-end;\n`;\n\nconst PopperContent = styled.div`\n background-color: #fff;\n`;\ninterface FilterPopoverProps {\n column: TypescriptColumn;\n columnId: string;\n triggerIcon: JSX.Element;\n menuContent: JSX.Element;\n onTriggerClick?: (id: string, e: UIEvent) => void;\n onClickOutsideMenu?: (id: string, e: UIEvent) => void;\n reduxHeader: ReduxHeader;\n innerRef: MutableRefObject<HTMLDivElement>;\n ariaLabel: string;\n customStyles?: React.CSSProperties;\n}\n\nconst ButtonTrap = ({ cb }) => (\n <span\n aria-hidden=\"true\"\n tabIndex={0}\n onFocus={(e) => {\n e.stopPropagation();\n cb();\n }}\n />\n);\n\nexport const FilterPopover: React.ComponentType<FilterPopoverProps> = ({\n column,\n columnId,\n triggerIcon,\n menuContent,\n onTriggerClick = () => null,\n onClickOutsideMenu = () => null,\n reduxHeader,\n innerRef,\n ariaLabel,\n customStyles,\n}) => {\n const { hideFilterButton, hideFilterMenu } = reduxHeader || {\n hideFilterButton: true,\n hideFilterMenu: true,\n };\n const { patchHeaderFilterButtonAndMenu, patchHeader } = useContext(DataTableContext);\n const isIconVisible = !hideFilterButton || !hideFilterMenu;\n const isMenuOpen = !hideFilterMenu;\n\n const handleClickOutsideMenu = (e) => {\n onClickOutsideMenu(columnId, e);\n if (isMenuOpen) patchHeaderFilterButtonAndMenu(columnId, true);\n };\n\n useEffect(() => {\n const closeMenu = () => {\n patchHeaderFilterButtonAndMenu(columnId, true);\n };\n window.addEventListener('blur', closeMenu);\n\n return () => {\n window.removeEventListener('blur', closeMenu);\n };\n }, [columnId, patchHeaderFilterButtonAndMenu]);\n\n const handleTriggerClick = (e) => {\n onTriggerClick(columnId, e);\n patchHeaderFilterButtonAndMenu(columnId, false);\n e.stopPropagation();\n };\n\n const [referenceElement, setReferenceElement] = useState(null);\n\n const buttonTrapCallback = useCallback(() => {\n patchHeader(columnId, { hideFilterMenu: true, hideFilterButton: false });\n referenceElement?.focus();\n }, [columnId, patchHeader, referenceElement]);\n return (\n <div\n // This is here to prevent propagation, and not trigger the sort functionality\n onClick={(e) => e.stopPropagation()}\n onKeyDown={(e) => {\n e.stopPropagation();\n if (e.code === 'Escape') {\n patchHeader(columnId, { hideFilterMenu: true, hideFilterButton: false });\n referenceElement.focus();\n }\n // Stop propagation for some reason is not enough to prevent scrolling of the datatable\n // so we just prevent default behaviour in this case\n if (['ArrowUp', 'ArrowDown'].includes(e.code)) {\n e.preventDefault();\n }\n }}\n style={{ display: 'flex' }}\n >\n <FilterButton hide={!isIconVisible} data-testid={DATA_TESTID.DATA_TABLE_FILTER_BUTTON}>\n <Button\n onClick={handleTriggerClick}\n buttonType=\"text\"\n aria-label={ariaLabel}\n aria-hidden=\"true\"\n size=\"s\"\n leftIcon={triggerIcon}\n // implement treeview mergerefs\n innerRef={(_ref) => {\n if (isIconVisible) setReferenceElement(_ref);\n innerRef.current = _ref;\n }}\n tabIndex={reduxHeader?.withTabStops ? 0 : -1}\n />\n </FilterButton>\n {referenceElement && (\n <DSPopperJS\n referenceElement={referenceElement}\n showPopover={isMenuOpen}\n closeContextMenu={handleClickOutsideMenu}\n data-testid={DATA_TESTID.DATA_TABLE_FILTER_MENU_CONTENT}\n startPlacementPreference=\"bottom-end\"\n customOffset={[5, 4]}\n withoutArrow\n zIndex={10}\n withoutAnimation\n extraPopperStyles={{\n ...customStyles,\n minWidth: column.ref?.current?.offsetWidth ?? '0px',\n }}\n placementOrderPreference={['bottom-end']}\n >\n <PopperContent>\n <ButtonTrap cb={buttonTrapCallback} />\n {menuContent}\n <ButtonTrap cb={buttonTrapCallback} />\n </PopperContent>\n </DSPopperJS>\n )}\n </div>\n );\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/exported-related/FilterTypes.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export const FILTER_TYPES = {\n SELECT: 'ds-filter-select',\n MULTI_SELECT: 'ds-filter-multi-select',\n SINGLE_DATE: 'ds-filter-single-date',\n DATE_RANGE: 'ds-filter-date-range',\n DATE_SWITCHER: 'ds-filter-date-switcher',\n NUMBER_RANGE: 'ds-filter-number-range',\n CURRENCY_RANGE: 'ds-filter-currency-range',\n};\n"],
|
|
5
|
-
"mappings": "AAAA;ACAO,MAAM,eAAe;AAAA,EAC1B,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,cAAc;AAAA,EACd,gBAAgB;
|
|
5
|
+
"mappings": "AAAA;ACAO,MAAM,eAAe;AAAA,EAC1B,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,cAAc;AAAA,EACd,gBAAgB;AAClB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/exported-related/Filters/applyOutOfTheBoxFilters.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { singleSelectFilterFn } from './singleSelectFilterFn';\nimport { multiSelectFilterFn } from './multiSelectFilterFn';\nimport { singleDateFilterFn } from './singleDateFilterFn';\nimport { dateRangeFilterFn } from './dateRangeFilterFn';\nimport { dateSwitcherFilterFn } from './dateSwitcherFilterFn';\nimport { numberRangeFilterFn } from './numberRangeFilterFn';\nimport { currencyRangeFilterFn } from './currencyRangeFilterFn';\nimport { FilterFn } from './types';\nimport { FILTER_TYPES } from '../FilterTypes';\nimport { TypescriptAppliedFilter, TypescriptRow } from '../../types/props';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst filterMapper: Record<string, FilterFn<any>> = {\n [FILTER_TYPES.SELECT]: singleSelectFilterFn,\n [FILTER_TYPES.MULTI_SELECT]: multiSelectFilterFn,\n [FILTER_TYPES.SINGLE_DATE]: singleDateFilterFn,\n [FILTER_TYPES.DATE_RANGE]: dateRangeFilterFn,\n [FILTER_TYPES.DATE_SWITCHER]: dateSwitcherFilterFn,\n [FILTER_TYPES.NUMBER_RANGE]: numberRangeFilterFn,\n [FILTER_TYPES.CURRENCY_RANGE]: currencyRangeFilterFn,\n};\n\nexport const applyOutOfTheBoxFilters = (data: TypescriptRow[], filters: TypescriptAppliedFilter[]): TypescriptRow[] => {\n let filteredData = data;\n\n filters.forEach((filter) => {\n if (filter.type in filterMapper) {\n filteredData = filterMapper[filter.type](filteredData, filter.id, filter.value);\n }\n });\n\n return filteredData;\n};\n"],
|
|
5
|
-
"mappings": "AAAA;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAIA,MAAM,eAA8C;AAAA,GACjD,aAAa,SAAS;AAAA,GACtB,aAAa,eAAe;AAAA,GAC5B,aAAa,cAAc;AAAA,GAC3B,aAAa,aAAa;AAAA,GAC1B,aAAa,gBAAgB;AAAA,GAC7B,aAAa,eAAe;AAAA,GAC5B,aAAa,iBAAiB;
|
|
5
|
+
"mappings": "AAAA;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAIA,MAAM,eAA8C;AAAA,GACjD,aAAa,SAAS;AAAA,GACtB,aAAa,eAAe;AAAA,GAC5B,aAAa,cAAc;AAAA,GAC3B,aAAa,aAAa;AAAA,GAC1B,aAAa,gBAAgB;AAAA,GAC7B,aAAa,eAAe;AAAA,GAC5B,aAAa,iBAAiB;AACjC;AAEO,MAAM,0BAA0B,CAAC,MAAuB,YAAwD;AACrH,MAAI,eAAe;AAEnB,UAAQ,QAAQ,CAAC,WAAW;AAC1B,QAAI,OAAO,QAAQ,cAAc;AAC/B,qBAAe,aAAa,OAAO,MAAM,cAAc,OAAO,IAAI,OAAO,KAAK;AAAA,IAChF;AAAA,EACF,CAAC;AAED,SAAO;AACT;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/exported-related/Filters/currencyRangeFilterFn.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { FilterFn } from './types';\n\nconst getNumber = (str) => {\n if (str === null) return null;\n if (typeof str === 'number') return str;\n if (typeof str !== 'string') return null;\n return Number.parseFloat(\n str\n .split('')\n .filter((x) => ![',', '$'].includes(x))\n .join(''),\n );\n};\n\nconst isEmpty = (number) => Number.isNaN(number) || number === null || number === undefined;\n\nexport const currencyRangeFilterFn: FilterFn<{ from: string; to: string }> = (\n unfilteredData,\n filterKey,\n filterValue,\n) => {\n const fromNumber = getNumber(filterValue.from);\n const toNumber = getNumber(filterValue.to);\n\n return unfilteredData.filter(\n (datum) =>\n isEmpty(fromNumber) ||\n isEmpty(toNumber) ||\n (getNumber(datum[filterKey]) >= fromNumber && getNumber(datum[filterKey]) <= toNumber),\n );\n};\n"],
|
|
5
|
-
"mappings": "AAAA;ACEA,MAAM,YAAY,CAAC,QAAQ;AACzB,MAAI,QAAQ;AAAM,WAAO;AACzB,MAAI,OAAO,QAAQ;AAAU,WAAO;AACpC,MAAI,OAAO,QAAQ;AAAU,WAAO;AACpC,SAAO,OAAO,WACZ,IACG,MAAM,
|
|
5
|
+
"mappings": "AAAA;ACEA,MAAM,YAAY,CAAC,QAAQ;AACzB,MAAI,QAAQ;AAAM,WAAO;AACzB,MAAI,OAAO,QAAQ;AAAU,WAAO;AACpC,MAAI,OAAO,QAAQ;AAAU,WAAO;AACpC,SAAO,OAAO,WACZ,IACG,MAAM,EAAE,EACR,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,GAAG,EAAE,SAAS,CAAC,CAAC,EACrC,KAAK,EAAE,CACZ;AACF;AAEA,MAAM,UAAU,CAAC,WAAW,OAAO,MAAM,MAAM,KAAK,WAAW,QAAQ,WAAW;AAE3E,MAAM,wBAAgE,CAC3E,gBACA,WACA,gBACG;AACH,QAAM,aAAa,UAAU,YAAY,IAAI;AAC7C,QAAM,WAAW,UAAU,YAAY,EAAE;AAEzC,SAAO,eAAe,OACpB,CAAC,UACC,QAAQ,UAAU,KAClB,QAAQ,QAAQ,KACf,UAAU,MAAM,UAAU,KAAK,cAAc,UAAU,MAAM,UAAU,KAAK,QACjF;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/exported-related/Filters/dateRangeFilterFn.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import moment from 'moment';\nimport { momentFormat } from '../../configs/constants';\n// configs imports this file, we can't import from /configs/index.js directly\n// use file instead of index to avoid circular imports!\nimport { FilterFn } from './types';\n\nexport const dateRangeFilterFn: FilterFn<{\n startDate: string;\n endDate: string;\n}> = (unfilteredData, filterKey, filterValue) =>\n unfilteredData.filter(\n (datum) =>\n !(filterValue?.startDate && filterValue?.endDate) ||\n (moment(filterValue?.startDate, momentFormat).isSameOrBefore(datum[filterKey], 'day') &&\n moment(filterValue?.endDate, momentFormat).isSameOrAfter(datum[filterKey], 'day')),\n );\n"],
|
|
5
|
-
"mappings": "AAAA;ACAA;AACA;AAKO,MAAM,oBAGR,CAAC,gBAAgB,WAAW,gBAC/B,eAAe,OACb,CAAC,UACC,CAAE,cAAa,aAAa,aAAa,YACxC,OAAO,aAAa,WAAW,
|
|
5
|
+
"mappings": "AAAA;ACAA;AACA;AAKO,MAAM,oBAGR,CAAC,gBAAgB,WAAW,gBAC/B,eAAe,OACb,CAAC,UACC,CAAE,cAAa,aAAa,aAAa,YACxC,OAAO,aAAa,WAAW,YAAY,EAAE,eAAe,MAAM,YAAY,KAAK,KAClF,OAAO,aAAa,SAAS,YAAY,EAAE,cAAc,MAAM,YAAY,KAAK,CACtF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/exported-related/Filters/dateSwitcherFilterFn.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { dateRangeFilterFn } from './dateRangeFilterFn';\nimport { singleDateFilterFn } from './singleDateFilterFn';\n// configs imports this file, we can't import from /configs/index.js directly\n// use file instead of index to avoid circular imports!\nimport { FilterFn } from './types';\n\nexport const dateSwitcherFilterFn: FilterFn<{\n startDate: string;\n endDate: string;\n isDateRange: boolean;\n}> = (unfilteredData, filterKey, filterValue) =>\n filterValue.isDateRange\n ? dateRangeFilterFn(unfilteredData, filterKey, filterValue)\n : singleDateFilterFn(unfilteredData, filterKey, filterValue.startDate);\n"],
|
|
5
|
-
"mappings": "AAAA;ACAA;AACA;AAKO,MAAM,uBAIR,CAAC,gBAAgB,WAAW,gBAC/B,YAAY,cACR,kBAAkB,gBAAgB,WAAW,
|
|
5
|
+
"mappings": "AAAA;ACAA;AACA;AAKO,MAAM,uBAIR,CAAC,gBAAgB,WAAW,gBAC/B,YAAY,cACR,kBAAkB,gBAAgB,WAAW,WAAW,IACxD,mBAAmB,gBAAgB,WAAW,YAAY,SAAS;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/exported-related/Filters/multiSelectFilterFn.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { FilterFn } from './types';\n\nexport const multiSelectFilterFn: FilterFn<{ label: string }[]> = (unfilteredData, filterKey, filterValue) => {\n if (filterValue.length > 0) {\n return unfilteredData.filter((datum) => filterValue.some((item) => item.label === datum[filterKey].toString()));\n }\n return unfilteredData;\n};\n"],
|
|
5
|
-
"mappings": "AAAA;ACEO,MAAM,sBAAqD,CAAC,gBAAgB,WAAW,gBAAgB;AAC5G,MAAI,YAAY,SAAS,GAAG;AAC1B,WAAO,eAAe,OAAO,CAAC,UAAU,YAAY,KAAK,CAAC,SAAS,KAAK,UAAU,MAAM,WAAW;AAAA;
|
|
5
|
+
"mappings": "AAAA;ACEO,MAAM,sBAAqD,CAAC,gBAAgB,WAAW,gBAAgB;AAC5G,MAAI,YAAY,SAAS,GAAG;AAC1B,WAAO,eAAe,OAAO,CAAC,UAAU,YAAY,KAAK,CAAC,SAAS,KAAK,UAAU,MAAM,WAAW,SAAS,CAAC,CAAC;AAAA,EAChH;AACA,SAAO;AACT;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/exported-related/Filters/numberRangeFilterFn.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { FilterFn } from './types';\n\nconst isEmpty = (number) => number === null || number === undefined;\n\nexport const numberRangeFilterFn: FilterFn<{ from: number; to: number }> = (unfilteredData, filterKey, filterValue) =>\n unfilteredData.filter(\n (datum) =>\n isEmpty(filterValue?.from) ||\n isEmpty(filterValue?.to) ||\n (datum[filterKey] >= filterValue.from && datum[filterKey] <= filterValue.to),\n );\n"],
|
|
5
|
-
"mappings": "AAAA;ACEA,MAAM,UAAU,CAAC,WAAW,WAAW,QAAQ,WAAW;AAEnD,MAAM,sBAA8D,CAAC,gBAAgB,WAAW,gBACrG,eAAe,OACb,CAAC,UACC,QAAQ,aAAa,
|
|
5
|
+
"mappings": "AAAA;ACEA,MAAM,UAAU,CAAC,WAAW,WAAW,QAAQ,WAAW;AAEnD,MAAM,sBAA8D,CAAC,gBAAgB,WAAW,gBACrG,eAAe,OACb,CAAC,UACC,QAAQ,aAAa,IAAI,KACzB,QAAQ,aAAa,EAAE,KACtB,MAAM,cAAc,YAAY,QAAQ,MAAM,cAAc,YAAY,EAC7E;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/exported-related/Filters/singleDateFilterFn.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import moment from 'moment';\nimport { momentFormat } from '../../configs/constants';\n// configs imports this file, we can't import from /configs/index.js directly\n// use file instead of index to avoid circular imports!\nimport { FilterFn } from './types';\n\nexport const singleDateFilterFn: FilterFn<string> = (unfilteredData, filterKey, filterValue) =>\n unfilteredData.filter((datum) => moment(filterValue, momentFormat).isSame(datum[filterKey], 'day'));\n"],
|
|
5
|
-
"mappings": "AAAA;ACAA;AACA;AAKO,MAAM,qBAAuC,CAAC,gBAAgB,WAAW,gBAC9E,eAAe,OAAO,CAAC,UAAU,OAAO,aAAa,
|
|
5
|
+
"mappings": "AAAA;ACAA;AACA;AAKO,MAAM,qBAAuC,CAAC,gBAAgB,WAAW,gBAC9E,eAAe,OAAO,CAAC,UAAU,OAAO,aAAa,YAAY,EAAE,OAAO,MAAM,YAAY,KAAK,CAAC;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/exported-related/Filters/singleSelectFilterFn.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { FilterFn } from './types';\n\nexport const singleSelectFilterFn: FilterFn<{ label: string }> = (unfilteredData, filterKey, filterValue) => {\n if (filterValue) {\n return unfilteredData.filter((datum) => datum[filterKey].toString() === filterValue.label);\n }\n return unfilteredData;\n};\n"],
|
|
5
|
-
"mappings": "AAAA;ACEO,MAAM,uBAAoD,CAAC,gBAAgB,WAAW,gBAAgB;AAC3G,MAAI,aAAa;AACf,WAAO,eAAe,OAAO,CAAC,UAAU,MAAM,WAAW,
|
|
5
|
+
"mappings": "AAAA;ACEO,MAAM,uBAAoD,CAAC,gBAAgB,WAAW,gBAAgB;AAC3G,MAAI,aAAa;AACf,WAAO,eAAe,OAAO,CAAC,UAAU,MAAM,WAAW,SAAS,MAAM,YAAY,KAAK;AAAA,EAC3F;AACA,SAAO;AACT;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -18,7 +18,7 @@ var __spreadValues = (a, b) => {
|
|
|
18
18
|
};
|
|
19
19
|
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
20
|
import * as React from "react";
|
|
21
|
-
import React2, { useMemo, useLayoutEffect, useRef } from "react";
|
|
21
|
+
import React2, { useMemo, useCallback, useLayoutEffect, useRef } from "react";
|
|
22
22
|
import { INTERNAL_COLUMNS } from "../../addons/Columns";
|
|
23
23
|
import { DATA_TESTID } from "../../configs/constants";
|
|
24
24
|
import { Cells } from "../../parts/Cells";
|
|
@@ -47,7 +47,7 @@ const DefaultRowContentRenderer = (props) => {
|
|
|
47
47
|
backgroundColor = "white",
|
|
48
48
|
dropIndicatorPosition,
|
|
49
49
|
focusedRowId,
|
|
50
|
-
|
|
50
|
+
drilldownRowId,
|
|
51
51
|
compact
|
|
52
52
|
} = props;
|
|
53
53
|
const rowRef = useRef(null);
|
|
@@ -55,7 +55,7 @@ const DefaultRowContentRenderer = (props) => {
|
|
|
55
55
|
const isDragging = draggableProps && draggableProps.isDragging;
|
|
56
56
|
useLayoutEffect(() => {
|
|
57
57
|
if (row.uid === focusedRowId) {
|
|
58
|
-
rowRef.current
|
|
58
|
+
rowRef.current?.focus();
|
|
59
59
|
}
|
|
60
60
|
}, [focusedRowId, row.uid]);
|
|
61
61
|
const gridTemplateColProps = useMemo(() => ({
|
|
@@ -75,12 +75,18 @@ const DefaultRowContentRenderer = (props) => {
|
|
|
75
75
|
}
|
|
76
76
|
return padding;
|
|
77
77
|
}, [row.depth, visibleColumns]);
|
|
78
|
+
const handleSelectDisableRow = useCallback((e) => {
|
|
79
|
+
if (disabledRows[row.uid]) {
|
|
80
|
+
e.preventDefault();
|
|
81
|
+
e.stopPropagation();
|
|
82
|
+
}
|
|
83
|
+
}, [disabledRows, row.uid]);
|
|
78
84
|
const PureRowContent = useMemo(() => {
|
|
79
85
|
const DetailsView = row.original.tableRowDetails;
|
|
80
86
|
return /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(StyledCellContainer, __spreadProps(__spreadValues({
|
|
81
87
|
ref: rowRef,
|
|
82
88
|
key: row.uid,
|
|
83
|
-
tabIndex: 0,
|
|
89
|
+
tabIndex: disabledRows[row.uid] ? -1 : 0,
|
|
84
90
|
role: "row",
|
|
85
91
|
"aria-rowindex": row.realIndex + 1,
|
|
86
92
|
"aria-label": ariaLabelMessage(row, selection?.[row.uid] === true),
|
|
@@ -98,10 +104,11 @@ const DefaultRowContentRenderer = (props) => {
|
|
|
98
104
|
isDragging,
|
|
99
105
|
selected: noSelectionColumn && selection?.[row.uid] === true,
|
|
100
106
|
disabled: disabledRows[row.uid],
|
|
101
|
-
"data-testid": DATA_TESTID.DATA_TABLE_ROW_CONTENT
|
|
107
|
+
"data-testid": DATA_TESTID.DATA_TABLE_ROW_CONTENT,
|
|
108
|
+
onMouseDown: handleSelectDisableRow
|
|
102
109
|
}), /* @__PURE__ */ React2.createElement(Cells, {
|
|
103
110
|
row,
|
|
104
|
-
isRowSelected:
|
|
111
|
+
isRowSelected: drilldownRowId === row.uid,
|
|
105
112
|
isDragOverlay,
|
|
106
113
|
key: row.uid
|
|
107
114
|
})), isExpandable && row.isExpanded && DetailsView && /* @__PURE__ */ React2.createElement(DetailsWrapper, null, /* @__PURE__ */ React2.createElement(DetailsView, {
|
|
@@ -110,10 +117,10 @@ const DefaultRowContentRenderer = (props) => {
|
|
|
110
117
|
})));
|
|
111
118
|
}, [
|
|
112
119
|
row,
|
|
120
|
+
disabledRows,
|
|
113
121
|
selection,
|
|
114
122
|
isExpandable,
|
|
115
123
|
expandedRows,
|
|
116
|
-
disabledRows,
|
|
117
124
|
gridTemplateColProps,
|
|
118
125
|
backgroundColor,
|
|
119
126
|
compact,
|
|
@@ -122,7 +129,8 @@ const DefaultRowContentRenderer = (props) => {
|
|
|
122
129
|
isDragging,
|
|
123
130
|
isDragOverlay,
|
|
124
131
|
noSelectionColumn,
|
|
125
|
-
|
|
132
|
+
handleSelectDisableRow,
|
|
133
|
+
drilldownRowId,
|
|
126
134
|
detailsIndent
|
|
127
135
|
]);
|
|
128
136
|
return PureRowContent;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/exported-related/RowRenderer/DefaultRowContentRenderer.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\n/* eslint-disable react/prop-types */\nimport React, { useMemo, useLayoutEffect, useRef } from 'react';\nimport { INTERNAL_COLUMNS } from '../../addons/Columns';\nimport { DATA_TESTID } from '../../configs/constants';\nimport { Cells } from '../../parts/Cells';\nimport { DropIndicatorPosition } from '../../parts/HoC/SortableItemContext';\nimport { RowVariantProps } from '../../parts/RowVariants/types';\nimport { StyledCellContainer } from '../../styled';\nimport { TypescriptRow } from '../../types/props';\n\nconst DetailsWrapper = (props) => (\n // This can be further customized\n // eslint-disable-next-line
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable complexity */\n/* eslint-disable max-lines */\n/* eslint-disable react/prop-types */\nimport React, { useMemo, useCallback, useLayoutEffect, useRef } from 'react';\nimport { INTERNAL_COLUMNS } from '../../addons/Columns';\nimport { DATA_TESTID } from '../../configs/constants';\nimport { Cells } from '../../parts/Cells';\nimport { DropIndicatorPosition } from '../../parts/HoC/SortableItemContext';\nimport { RowVariantProps } from '../../parts/RowVariants/types';\nimport { StyledCellContainer } from '../../styled';\nimport { TypescriptRow } from '../../types/props';\n\nconst DetailsWrapper = (props) => (\n // This can be further customized\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div\n data-role=\"detail-view\"\n style={{\n borderTop: '1px solid #EBEDF0',\n borderBottom: '1px solid #EBEDF0',\n }}\n onClick={(e) => e.stopPropagation()}\n onKeyDown={(e) => e.stopPropagation()}\n >\n {props.children}\n </div>\n);\n\nconst ariaLabelMessage = (row: TypescriptRow, selected: boolean) =>\n `Row number ${row.realIndex + 1}${row.parentIndex !== null ? `, child of row number ${row.parentIndex + 1}` : ''}. ${\n selected ? 'Selected. ' : ''\n }To interact with the cells press enter`;\n\nexport const DefaultRowContentRenderer: React.ComponentType<RowVariantProps> = (props) => {\n const {\n row,\n ctx: {\n tableProps: { isExpandable, colsLayoutStyle, selection, noSelectionColumn, expandedRows, disabledRows },\n layoutHelpers: { gridLayout },\n visibleColumns,\n },\n draggableProps,\n isDragOverlay,\n backgroundColor = 'white',\n dropIndicatorPosition,\n focusedRowId,\n drilldownRowId,\n compact,\n } = props;\n\n const rowRef = useRef<HTMLDivElement>(null);\n const isDndActive = draggableProps && draggableProps.active;\n const isDragging = draggableProps && draggableProps.isDragging;\n\n useLayoutEffect(() => {\n if (row.uid === focusedRowId) {\n rowRef.current?.focus();\n }\n }, [focusedRowId, row.uid]);\n\n const gridTemplateColProps = useMemo(\n () => ({\n cols: isDragOverlay ? ['24px', 'auto'] : gridLayout,\n isExpandable,\n colLayoutStyle: colsLayoutStyle,\n }),\n [isDragOverlay, gridLayout, colsLayoutStyle, isExpandable],\n );\n\n const detailsIndent = useMemo(() => {\n let padding = 0;\n for (let i = 0; i < visibleColumns.length; i += 1) {\n if (INTERNAL_COLUMNS.includes(visibleColumns[i].id)) {\n padding += visibleColumns[i].width;\n } else {\n padding += row.depth * 32 + 15;\n break;\n }\n }\n return padding;\n }, [row.depth, visibleColumns]);\n\n const handleSelectDisableRow = useCallback(\n (e) => {\n if (disabledRows[row.uid]) {\n e.preventDefault();\n e.stopPropagation();\n }\n },\n [disabledRows, row.uid],\n );\n const PureRowContent = useMemo(() => {\n const DetailsView = row.original.tableRowDetails;\n return (\n <>\n <StyledCellContainer\n ref={rowRef}\n key={row.uid}\n tabIndex={disabledRows[row.uid] ? -1 : 0}\n role=\"row\"\n aria-rowindex={row.realIndex + 1}\n aria-label={ariaLabelMessage(row, selection?.[row.uid] === true)}\n aria-level={row.depth + 1}\n aria-selected={selection?.[row.uid] === true}\n aria-expanded={isExpandable ? expandedRows[row.uid] === true : undefined}\n aria-disabled={disabledRows[row.uid]}\n {...gridTemplateColProps}\n backgroundColor={backgroundColor}\n height={compact ? '24px' : 'auto'}\n minHeight={compact ? '24px' : '36px'}\n isDropIndicatorPositionInside={dropIndicatorPosition === DropIndicatorPosition.Inside}\n shouldDisplayHover={!isDndActive && !isDragging && !isDragOverlay}\n isDragOverlay={isDragOverlay}\n isDragging={isDragging}\n selected={noSelectionColumn && selection?.[row.uid] === true}\n disabled={disabledRows[row.uid]}\n data-testid={DATA_TESTID.DATA_TABLE_ROW_CONTENT}\n onMouseDown={handleSelectDisableRow}\n >\n <Cells row={row} isRowSelected={drilldownRowId === row.uid} isDragOverlay={isDragOverlay} key={row.uid} />\n </StyledCellContainer>\n {isExpandable && row.isExpanded && DetailsView && (\n <DetailsWrapper>\n <DetailsView row={row} detailsIndent={detailsIndent} />\n </DetailsWrapper>\n )}\n </>\n );\n }, [\n row,\n disabledRows,\n selection,\n isExpandable,\n expandedRows,\n gridTemplateColProps,\n backgroundColor,\n compact,\n dropIndicatorPosition,\n isDndActive,\n isDragging,\n isDragOverlay,\n noSelectionColumn,\n handleSelectDisableRow,\n drilldownRowId,\n detailsIndent,\n ]);\n\n return PureRowContent;\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -50,7 +50,7 @@ const RowRenderer = (props) => {
|
|
|
50
50
|
rowsLayout = [1],
|
|
51
51
|
CustomRowContentRenderer,
|
|
52
52
|
focusedRowId,
|
|
53
|
-
|
|
53
|
+
drilldownRowId,
|
|
54
54
|
isDragOverlay
|
|
55
55
|
} = props;
|
|
56
56
|
const ctx = useContext(DataTableContext);
|
|
@@ -72,12 +72,12 @@ const RowRenderer = (props) => {
|
|
|
72
72
|
items: flattenedData,
|
|
73
73
|
draggableProps,
|
|
74
74
|
isDragOverlay,
|
|
75
|
-
|
|
75
|
+
drilldownRowId
|
|
76
76
|
});
|
|
77
77
|
const rowContentProps = __spreadProps(__spreadValues({}, props), {
|
|
78
78
|
ctx,
|
|
79
79
|
focusedRowId,
|
|
80
|
-
|
|
80
|
+
drilldownRowId,
|
|
81
81
|
draggableProps,
|
|
82
82
|
dropIndicatorPosition
|
|
83
83
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/exported-related/RowRenderer/index.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\n/* eslint-disable react/prop-types */\nimport React, { useContext } from 'react';\nimport { DataTableContext } from '../../DataTableContext';\nimport { RowVariantProps } from '../../parts/RowVariants/types';\nimport { StyledFullsizeGrid } from '../../styled';\nimport { TypescriptRow } from '../../types/props';\nimport { DefaultRowContentRenderer } from './DefaultRowContentRenderer';\nimport { useRowRendererHandlers } from './useRowRendererHandlers';\nimport { useRowRendererProperties } from './useRowRendererProperties';\nimport { DropIndicator } from '../../parts/DropIndicator';\nimport { SortableItemContext } from '../../parts/HoC/SortableItemContext';\nimport { DATA_TESTID } from '../../configs/constants';\n\ninterface RowRendererProps {\n row: TypescriptRow;\n compact
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;ACEA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AAkBA,MAAM,oBACJ,qCAAC
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\n/* eslint-disable react/prop-types */\nimport React, { useContext } from 'react';\nimport { DataTableContext } from '../../DataTableContext';\nimport { RowVariantProps } from '../../parts/RowVariants/types';\nimport { StyledFullsizeGrid } from '../../styled';\nimport { TypescriptRow } from '../../types/props';\nimport { DefaultRowContentRenderer } from './DefaultRowContentRenderer';\nimport { useRowRendererHandlers } from './useRowRendererHandlers';\nimport { useRowRendererProperties } from './useRowRendererProperties';\nimport { DropIndicator } from '../../parts/DropIndicator';\nimport { SortableItemContext } from '../../parts/HoC/SortableItemContext';\nimport { DATA_TESTID } from '../../configs/constants';\n\ninterface RowRendererProps {\n row: TypescriptRow;\n compact?: boolean;\n itemIndex: number;\n isDragOverlay: boolean;\n minHeight: string;\n height: string;\n rowsLayout?: (string | number)[];\n colsLayout?: (string | number)[];\n CustomRowContentRenderer?: React.ComponentType<RowVariantProps>;\n focusedRowId: string | null;\n drilldownRowId: string | null;\n backgroundColor?: string;\n}\n\n// CSS don't let us modify the spacing between the dots, so one solution is to use SVG\nconst magicDottedBorder = (\n <svg width=\"100%\" height=\"1px\">\n <line\n x1=\"0\"\n y1=\"0\"\n x2=\"100%\"\n y2=\"0\"\n stroke=\"#B0B9C8FF\"\n strokeWidth=\"1.5\"\n strokeDasharray=\"0, 5\"\n strokeDashoffset=\"0\"\n strokeLinecap=\"round\"\n />\n </svg>\n);\n\nconst RowRenderer: React.ComponentType<RowRendererProps> = (props) => {\n const {\n row,\n itemIndex,\n minHeight = '36px',\n height = 'auto',\n rowsLayout = [1],\n CustomRowContentRenderer,\n focusedRowId,\n drilldownRowId,\n isDragOverlay,\n } = props;\n\n const ctx = useContext(DataTableContext);\n const { draggableProps } = useContext(SortableItemContext);\n const { flattenedData } = ctx;\n\n // ===========================================================================\n // Properties for the row\n // ===========================================================================\n\n const {\n userDataProperties,\n colsLayoutStyle,\n totalColumnsWidth,\n rowStyle,\n shouldAppendDottedBorder,\n dropIndicatorPosition,\n } = useRowRendererProperties({\n row,\n });\n\n // ===========================================================================\n // Handlers\n // ===========================================================================\n\n const { handleItemClick, handleKeyDown, handleOnBlur, handleOnFocus } = useRowRendererHandlers({\n row,\n itemIndex,\n items: flattenedData,\n draggableProps,\n isDragOverlay,\n drilldownRowId,\n });\n\n const rowContentProps: RowVariantProps = {\n ...props,\n ctx,\n focusedRowId,\n drilldownRowId,\n draggableProps,\n dropIndicatorPosition,\n };\n\n return (\n <StyledFullsizeGrid\n data-testid={DATA_TESTID.DATA_TABLE_ROW}\n key={row.uid}\n colsLayoutStyle={colsLayoutStyle}\n {...userDataProperties}\n totalColumnsWidth={totalColumnsWidth}\n style={rowStyle}\n onClick={handleItemClick}\n onKeyDown={handleKeyDown}\n onBlur={handleOnBlur}\n onFocus={handleOnFocus}\n data-expandable={Boolean(row.original.tableRowDetails)}\n data-is-row-expanded={row.isExpanded}\n rows={rowsLayout}\n minHeight={minHeight}\n height={height}\n >\n {CustomRowContentRenderer ? (\n <CustomRowContentRenderer {...rowContentProps} />\n ) : (\n <DefaultRowContentRenderer {...rowContentProps} key={row.uid} />\n )}\n {shouldAppendDottedBorder && magicDottedBorder}\n <DropIndicator\n vertical={false}\n dropIndicatorPosition={dropIndicatorPosition}\n isLast={row.index === flattenedData.length - 1 && draggableProps && draggableProps.isDragging}\n />\n </StyledFullsizeGrid>\n );\n};\n\nexport { RowRenderer };\nexport default RowRenderer;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;ACEA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AAkBA,MAAM,oBACJ,qCAAC;AAAA,EAAI,OAAM;AAAA,EAAO,QAAO;AAAA,GACvB,qCAAC;AAAA,EACC,IAAG;AAAA,EACH,IAAG;AAAA,EACH,IAAG;AAAA,EACH,IAAG;AAAA,EACH,QAAO;AAAA,EACP,aAAY;AAAA,EACZ,iBAAgB;AAAA,EAChB,kBAAiB;AAAA,EACjB,eAAc;AAAA,CAChB,CACF;AAGF,MAAM,cAAqD,CAAC,UAAU;AACpE,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,aAAa,CAAC,CAAC;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACE;AAEJ,QAAM,MAAM,WAAW,gBAAgB;AACvC,QAAM,EAAE,mBAAmB,WAAW,mBAAmB;AACzD,QAAM,EAAE,kBAAkB;AAM1B,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACE,yBAAyB;AAAA,IAC3B;AAAA,EACF,CAAC;AAMD,QAAM,EAAE,iBAAiB,eAAe,cAAc,kBAAkB,uBAAuB;AAAA,IAC7F;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,QAAM,kBAAmC,iCACpC,QADoC;AAAA,IAEvC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,SACE,qCAAC;AAAA,IACC,eAAa,YAAY;AAAA,IACzB,KAAK,IAAI;AAAA,IACT;AAAA,KACI,qBAJL;AAAA,IAKC;AAAA,IACA,OAAO;AAAA,IACP,SAAS;AAAA,IACT,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,mBAAiB,QAAQ,IAAI,SAAS,eAAe;AAAA,IACrD,wBAAsB,IAAI;AAAA,IAC1B,MAAM;AAAA,IACN;AAAA,IACA;AAAA,MAEC,2BACC,qCAAC,6CAA6B,gBAAiB,IAE/C,qCAAC,4DAA8B,kBAA9B;AAAA,IAA+C,KAAK,IAAI;AAAA,IAAK,GAE/D,4BAA4B,mBAC7B,qCAAC;AAAA,IACC,UAAU;AAAA,IACV;AAAA,IACA,QAAQ,IAAI,UAAU,cAAc,SAAS,KAAK,kBAAkB,eAAe;AAAA,GACrF,CACF;AAEJ;AAGA,IAAO,sBAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,21 +2,31 @@ import * as React from "react";
|
|
|
2
2
|
import { useCallback, useContext } from "react";
|
|
3
3
|
import { DATA_TESTID } from "../../configs/constants";
|
|
4
4
|
import { DataTableContext } from "../../DataTableContext";
|
|
5
|
-
import { useDispatchRowsActions } from "../../redux/reducers";
|
|
6
5
|
const useRowRendererHandlers = ({
|
|
7
6
|
row,
|
|
8
7
|
itemIndex,
|
|
9
8
|
items,
|
|
10
9
|
draggableProps,
|
|
11
10
|
isDragOverlay,
|
|
12
|
-
|
|
11
|
+
drilldownRowId
|
|
13
12
|
}) => {
|
|
14
13
|
const {
|
|
15
|
-
tableProps: { onRowClick, onRowFocus },
|
|
16
|
-
virtualListHelpers: { scrollToIndex }
|
|
14
|
+
tableProps: { onRowClick, onRowFocus, disabledRows },
|
|
15
|
+
virtualListHelpers: { scrollToIndex },
|
|
16
|
+
setDrilldownRowId,
|
|
17
|
+
setFocusedRowId
|
|
17
18
|
} = useContext(DataTableContext);
|
|
18
|
-
const
|
|
19
|
+
const isOptionFocuseable = (opt) => !disabledRows[opt.uid];
|
|
20
|
+
const findInCircularList = (list, from, criteria, step = 1) => {
|
|
21
|
+
for (let i = (from + step + list.length) % list.length; i !== from && from > -1; i = (i + step + list.length) % list.length) {
|
|
22
|
+
if (criteria(list[i]))
|
|
23
|
+
return i;
|
|
24
|
+
}
|
|
25
|
+
return from;
|
|
26
|
+
};
|
|
19
27
|
const handleItemClick = useCallback((e, { original, uid } = row) => {
|
|
28
|
+
if (disabledRows[uid])
|
|
29
|
+
return;
|
|
20
30
|
onRowClick(original, e, uid);
|
|
21
31
|
onRowFocus({
|
|
22
32
|
itemIndex,
|
|
@@ -25,7 +35,7 @@ const useRowRendererHandlers = ({
|
|
|
25
35
|
}) => scrollToIndex(itemIndex, opts),
|
|
26
36
|
original
|
|
27
37
|
}, e);
|
|
28
|
-
}, [row, onRowClick, onRowFocus, itemIndex, scrollToIndex]);
|
|
38
|
+
}, [row, disabledRows, onRowClick, onRowFocus, itemIndex, scrollToIndex]);
|
|
29
39
|
const isActive = draggableProps && draggableProps.active;
|
|
30
40
|
const handleKeyDown = useCallback((e) => {
|
|
31
41
|
if (isDragOverlay || isActive) {
|
|
@@ -34,8 +44,8 @@ const useRowRendererHandlers = ({
|
|
|
34
44
|
}
|
|
35
45
|
if (e.code === "Enter") {
|
|
36
46
|
e.preventDefault();
|
|
37
|
-
if (
|
|
38
|
-
|
|
47
|
+
if (drilldownRowId !== row.uid) {
|
|
48
|
+
setDrilldownRowId(row.uid);
|
|
39
49
|
setTimeout(() => {
|
|
40
50
|
const focuseableCell = row.cells.find((cell) => cell.ref.current !== null);
|
|
41
51
|
if (focuseableCell)
|
|
@@ -44,30 +54,46 @@ const useRowRendererHandlers = ({
|
|
|
44
54
|
}
|
|
45
55
|
}
|
|
46
56
|
if (e.code === "Space") {
|
|
47
|
-
e
|
|
57
|
+
const { currentTarget, target } = e;
|
|
58
|
+
const isChildEvent = currentTarget !== target && currentTarget.contains(target);
|
|
59
|
+
if (!isChildEvent) {
|
|
60
|
+
e.preventDefault();
|
|
61
|
+
}
|
|
48
62
|
handleItemClick(e, row);
|
|
49
63
|
}
|
|
50
64
|
if (e.code === "ArrowDown") {
|
|
51
65
|
e.preventDefault();
|
|
52
|
-
|
|
53
|
-
|
|
66
|
+
e.stopPropagation();
|
|
67
|
+
const next = findInCircularList(items, itemIndex, isOptionFocuseable);
|
|
68
|
+
setFocusedRowId(items[next].uid);
|
|
54
69
|
}
|
|
55
70
|
if (e.code === "ArrowUp") {
|
|
56
71
|
e.preventDefault();
|
|
57
|
-
|
|
58
|
-
|
|
72
|
+
const prev = findInCircularList(items, itemIndex, isOptionFocuseable, -1);
|
|
73
|
+
setFocusedRowId(items[prev].uid);
|
|
59
74
|
}
|
|
60
|
-
}, [
|
|
75
|
+
}, [
|
|
76
|
+
isDragOverlay,
|
|
77
|
+
isActive,
|
|
78
|
+
drilldownRowId,
|
|
79
|
+
row,
|
|
80
|
+
setDrilldownRowId,
|
|
81
|
+
handleItemClick,
|
|
82
|
+
items,
|
|
83
|
+
itemIndex,
|
|
84
|
+
isOptionFocuseable,
|
|
85
|
+
setFocusedRowId
|
|
86
|
+
]);
|
|
61
87
|
const handleOnBlur = useCallback((e) => {
|
|
62
88
|
if (e.relatedTarget?.getAttribute("data-testid") === "data-table-row-content") {
|
|
63
|
-
|
|
89
|
+
setDrilldownRowId(null);
|
|
64
90
|
}
|
|
65
|
-
}, [
|
|
91
|
+
}, [setDrilldownRowId]);
|
|
66
92
|
const handleOnFocus = useCallback((e) => {
|
|
67
|
-
if (e.target && e.target.getAttribute("data-testid") === DATA_TESTID.DATA_TABLE_ROW_CONTENT) {
|
|
93
|
+
if (!disabledRows[row.uid] && e.target && e.target.getAttribute("data-testid") === DATA_TESTID.DATA_TABLE_ROW_CONTENT) {
|
|
68
94
|
setFocusedRowId(row.uid);
|
|
69
95
|
}
|
|
70
|
-
}, [row.uid, setFocusedRowId]);
|
|
96
|
+
}, [row.uid, setFocusedRowId, disabledRows]);
|
|
71
97
|
return { handleItemClick, handleKeyDown, handleOnBlur, handleOnFocus };
|
|
72
98
|
};
|
|
73
99
|
export {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/exported-related/RowRenderer/useRowRendererHandlers.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "
|
|
5
|
-
"mappings": "AAAA;
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable complexity */\nimport React, { useCallback, useContext } from 'react';\nimport { DATA_TESTID } from '../../configs/constants';\nimport { DataTableContext } from '../../DataTableContext';\nimport { SortableItemContextType } from '../../parts/HoC/SortableItemContext';\nimport { TypescriptRow } from '../../types/props';\n\nexport const useRowRendererHandlers = ({\n row,\n itemIndex,\n items,\n draggableProps,\n isDragOverlay,\n drilldownRowId,\n}: {\n row: TypescriptRow;\n itemIndex: number;\n items: TypescriptRow[];\n draggableProps: SortableItemContextType['draggableProps'];\n isDragOverlay: boolean;\n drilldownRowId: string | null;\n}): {\n handleItemClick: React.MouseEventHandler;\n handleKeyDown: React.KeyboardEventHandler;\n handleOnBlur: React.FocusEventHandler;\n handleOnFocus: React.FocusEventHandler;\n} => {\n const {\n tableProps: { onRowClick, onRowFocus, disabledRows },\n virtualListHelpers: { scrollToIndex },\n setDrilldownRowId,\n setFocusedRowId,\n } = useContext(DataTableContext);\n\n const isOptionFocuseable = (opt): boolean => !disabledRows[opt.uid];\n\n const findInCircularList = (\n list,\n from: number,\n criteria: (item) => boolean,\n step = 1,\n // eslint-disable-next-line max-params\n ): number => {\n for (\n let i = (from + step + list.length) % list.length;\n i !== from && from > -1;\n i = (i + step + list.length) % list.length\n ) {\n if (criteria(list[i])) return i;\n }\n return from; // return same item\n };\n\n const handleItemClick = useCallback(\n (e, { original, uid } = row) => {\n if (disabledRows[uid]) return;\n onRowClick(original, e, uid);\n onRowFocus(\n {\n itemIndex,\n scrollToItem: (\n opts: { align: 'auto' | 'start' | 'center' | 'end' } = {\n align: 'start',\n },\n ) => scrollToIndex(itemIndex, opts),\n original,\n },\n e,\n );\n },\n [row, disabledRows, onRowClick, onRowFocus, itemIndex, scrollToIndex],\n );\n\n const isActive = draggableProps && draggableProps.active;\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (isDragOverlay || isActive) {\n e.preventDefault();\n return;\n }\n if (e.code === 'Enter') {\n e.preventDefault();\n if (drilldownRowId !== row.uid) {\n setDrilldownRowId(row.uid);\n setTimeout(() => {\n const focuseableCell = row.cells.find((cell) => cell.ref.current !== null);\n if (focuseableCell) focuseableCell.ref.current.focus();\n });\n }\n }\n if (e.code === 'Space') {\n const { currentTarget, target } = e;\n const isChildEvent = currentTarget !== target && currentTarget.contains(target);\n if (!isChildEvent) {\n e.preventDefault();\n }\n handleItemClick(e, row);\n }\n if (e.code === 'ArrowDown') {\n e.preventDefault();\n e.stopPropagation();\n const next = findInCircularList(items, itemIndex, isOptionFocuseable);\n setFocusedRowId(items[next].uid);\n }\n if (e.code === 'ArrowUp') {\n e.preventDefault();\n const prev = findInCircularList(items, itemIndex, isOptionFocuseable, -1);\n setFocusedRowId(items[prev].uid);\n }\n },\n [\n isDragOverlay,\n isActive,\n drilldownRowId,\n row,\n setDrilldownRowId,\n handleItemClick,\n items,\n itemIndex,\n isOptionFocuseable,\n setFocusedRowId,\n ],\n );\n\n const handleOnBlur = useCallback(\n (e) => {\n if (e.relatedTarget?.getAttribute('data-testid') === 'data-table-row-content') {\n setDrilldownRowId(null);\n }\n },\n [setDrilldownRowId],\n );\n\n const handleOnFocus: React.FocusEventHandler = useCallback(\n (e) => {\n if (\n !disabledRows[row.uid] &&\n e.target &&\n e.target.getAttribute('data-testid') === DATA_TESTID.DATA_TABLE_ROW_CONTENT\n ) {\n setFocusedRowId(row.uid);\n }\n },\n [row.uid, setFocusedRowId, disabledRows],\n );\n\n return { handleItemClick, handleKeyDown, handleOnBlur, handleOnFocus };\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/exported-related/RowRenderer/useRowRendererProperties.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { useContext, useMemo } from 'react';\nimport { ColsLayoutStyle } from '../../configs/constants';\nimport { DataTableContext } from '../../DataTableContext';\nimport { TypescriptRow } from '../../types/props';\nimport { useRowStyle } from './useRowStyle';\n\nexport const useRowRendererProperties = ({\n row,\n}: {\n row: TypescriptRow;\n}): {\n userDataProperties: Record<string, unknown>;\n colsLayoutStyle: ColsLayoutStyle;\n totalColumnsWidth: string | number;\n} & ReturnType<typeof useRowStyle> => {\n const {\n tableProps: { colsLayoutStyle },\n layoutHelpers: { totalColumnsWidth },\n } = useContext(DataTableContext);\n\n const userDataProperties = useMemo(\n () =>\n Object.keys(row.original).reduce((acc, cur) => {\n if (cur.startsWith('data-')) acc[cur] = row.original[cur];\n return acc;\n }, {}),\n [row],\n );\n\n const styleRelatedProps = useRowStyle(row);\n\n return {\n userDataProperties,\n colsLayoutStyle,\n totalColumnsWidth,\n ...styleRelatedProps,\n };\n};\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;AAAA;ACAA;AAEA;AAEA;AAEO,MAAM,2BAA2B,CAAC;AAAA,EACvC;AAAA,MAOoC;AACpC,QAAM;AAAA,IACJ,YAAY,EAAE;AAAA,IACd,eAAe,EAAE;AAAA,MACf,WAAW;
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;AAAA;ACAA;AAEA;AAEA;AAEO,MAAM,2BAA2B,CAAC;AAAA,EACvC;AAAA,MAOoC;AACpC,QAAM;AAAA,IACJ,YAAY,EAAE;AAAA,IACd,eAAe,EAAE;AAAA,MACf,WAAW,gBAAgB;AAE/B,QAAM,qBAAqB,QACzB,MACE,OAAO,KAAK,IAAI,QAAQ,EAAE,OAAO,CAAC,KAAK,QAAQ;AAC7C,QAAI,IAAI,WAAW,OAAO;AAAG,UAAI,OAAO,IAAI,SAAS;AACrD,WAAO;AAAA,EACT,GAAG,CAAC,CAAC,GACP,CAAC,GAAG,CACN;AAEA,QAAM,oBAAoB,YAAY,GAAG;AAEzC,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,KACG;AAEP;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|