@elliemae/ds-data-table 3.16.0 → 3.16.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/DataTable.js +11 -7
- package/dist/cjs/DataTable.js.map +2 -2
- package/dist/cjs/DataTableContext.js +6 -1
- package/dist/cjs/DataTableContext.js.map +2 -2
- package/dist/cjs/DataTableSchema.js +5 -1
- package/dist/cjs/DataTableSchema.js.map +2 -2
- package/dist/cjs/addons/Columns/ColumnAction/ColumnAction.js +5 -0
- package/dist/cjs/addons/Columns/ColumnAction/ColumnAction.js.map +2 -2
- package/dist/cjs/addons/Columns/ColumnDragHandle/ColumnDragHandle.js +9 -2
- package/dist/cjs/addons/Columns/ColumnDragHandle/ColumnDragHandle.js.map +2 -2
- package/dist/cjs/addons/Columns/ColumnExpand/ColumnExpand.js +10 -3
- package/dist/cjs/addons/Columns/ColumnExpand/ColumnExpand.js.map +2 -2
- package/dist/cjs/addons/Columns/ColumnSelectMultiple/ColumnSelectMultiple.js +7 -1
- package/dist/cjs/addons/Columns/ColumnSelectMultiple/ColumnSelectMultiple.js.map +2 -2
- package/dist/cjs/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.js +8 -1
- package/dist/cjs/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.js.map +2 -2
- package/dist/cjs/addons/Columns/index.js +9 -5
- package/dist/cjs/addons/Columns/index.js.map +2 -2
- package/dist/cjs/addons/Editables/ComboboxEditableCell/ComboboxEditableCell.js +6 -2
- package/dist/cjs/addons/Editables/ComboboxEditableCell/ComboboxEditableCell.js.map +2 -2
- package/dist/cjs/addons/Editables/DateEditableCell/DateEditableCell.js +6 -2
- package/dist/cjs/addons/Editables/DateEditableCell/DateEditableCell.js.map +2 -2
- package/dist/cjs/addons/Editables/TextEditableCell/TextEditableCell.js +6 -2
- package/dist/cjs/addons/Editables/TextEditableCell/TextEditableCell.js.map +2 -2
- package/dist/cjs/addons/Editables/index.js +6 -2
- package/dist/cjs/addons/Editables/index.js.map +2 -2
- package/dist/cjs/addons/Filters/Components/CurrencyRangeFilter/index.js +6 -2
- package/dist/cjs/addons/Filters/Components/CurrencyRangeFilter/index.js.map +2 -2
- package/dist/cjs/addons/Filters/Components/DateRangeFilter/index.js +6 -2
- package/dist/cjs/addons/Filters/Components/DateRangeFilter/index.js.map +2 -2
- package/dist/cjs/addons/Filters/Components/DateSwitcherFilter/index.js +6 -2
- package/dist/cjs/addons/Filters/Components/DateSwitcherFilter/index.js.map +2 -2
- package/dist/cjs/addons/Filters/Components/NumberRangeFilter/index.js +6 -2
- package/dist/cjs/addons/Filters/Components/NumberRangeFilter/index.js.map +2 -2
- package/dist/cjs/addons/Filters/Components/SelectFilter/BaseSelectFilter.js +6 -2
- package/dist/cjs/addons/Filters/Components/SelectFilter/BaseSelectFilter.js.map +2 -2
- package/dist/cjs/addons/Filters/Components/SelectFilter/MultiCreatableFilter.js +7 -3
- package/dist/cjs/addons/Filters/Components/SelectFilter/MultiCreatableFilter.js.map +2 -2
- package/dist/cjs/addons/Filters/Components/SelectFilter/MultiSelectFilter.js +7 -3
- package/dist/cjs/addons/Filters/Components/SelectFilter/MultiSelectFilter.js.map +2 -2
- package/dist/cjs/addons/Filters/Components/SelectFilter/SingleCreatableFilter.js +7 -3
- package/dist/cjs/addons/Filters/Components/SelectFilter/SingleCreatableFilter.js.map +2 -2
- package/dist/cjs/addons/Filters/Components/SelectFilter/SingleSelectFilter.js +7 -3
- package/dist/cjs/addons/Filters/Components/SelectFilter/SingleSelectFilter.js.map +2 -2
- package/dist/cjs/addons/Filters/Components/SingleDateFilter/index.js +6 -2
- package/dist/cjs/addons/Filters/Components/SingleDateFilter/index.js.map +2 -2
- package/dist/cjs/addons/Filters/Components/index.js +13 -9
- package/dist/cjs/addons/Filters/Components/index.js.map +2 -2
- package/dist/cjs/addons/Filters/index.js +5 -1
- package/dist/cjs/addons/Filters/index.js.map +2 -2
- package/dist/cjs/addons/Pagination/Pagination.js +5 -1
- package/dist/cjs/addons/Pagination/Pagination.js.map +2 -2
- package/dist/cjs/addons/Pagination/index.js +5 -1
- package/dist/cjs/addons/Pagination/index.js.map +2 -2
- package/dist/cjs/configs/constants.js +4 -0
- package/dist/cjs/configs/constants.js.map +1 -1
- package/dist/cjs/configs/fixedSizes.js +4 -0
- package/dist/cjs/configs/fixedSizes.js.map +1 -1
- package/dist/cjs/configs/index.js +9 -5
- package/dist/cjs/configs/index.js.map +2 -2
- package/dist/cjs/configs/useDatatableConfig.js +10 -6
- package/dist/cjs/configs/useDatatableConfig.js.map +2 -2
- package/dist/cjs/configs/useInternalStateConfig.js +4 -0
- package/dist/cjs/configs/useInternalStateConfig.js.map +2 -2
- package/dist/cjs/configs/usePaginationConfig.js +4 -0
- package/dist/cjs/configs/usePaginationConfig.js.map +2 -2
- package/dist/cjs/configs/useRowFlattenization.js +5 -1
- package/dist/cjs/configs/useRowFlattenization.js.map +2 -2
- package/dist/cjs/configs/useTableColsWithAddons.js +5 -1
- package/dist/cjs/configs/useTableColsWithAddons.js.map +2 -2
- package/dist/cjs/configs/zIndexInternalConfig.js +4 -0
- package/dist/cjs/configs/zIndexInternalConfig.js.map +1 -1
- package/dist/cjs/exported-related/EditableCell.js +6 -2
- package/dist/cjs/exported-related/EditableCell.js.map +2 -2
- package/dist/cjs/exported-related/FilterBar/FilterBarDropdownMenu.js +6 -2
- package/dist/cjs/exported-related/FilterBar/FilterBarDropdownMenu.js.map +2 -2
- package/dist/cjs/exported-related/FilterBar/index.js +5 -1
- package/dist/cjs/exported-related/FilterBar/index.js.map +2 -2
- package/dist/cjs/exported-related/FilterPopover/index.js +8 -4
- package/dist/cjs/exported-related/FilterPopover/index.js.map +2 -2
- package/dist/cjs/exported-related/FilterPopover/types.js +4 -0
- package/dist/cjs/exported-related/FilterPopover/types.js.map +2 -2
- package/dist/cjs/exported-related/FilterPopover/useGetFilterHandlers.js +5 -1
- package/dist/cjs/exported-related/FilterPopover/useGetFilterHandlers.js.map +2 -2
- package/dist/cjs/exported-related/FilterPopover/useGetFilterVisibility.js +4 -0
- package/dist/cjs/exported-related/FilterPopover/useGetFilterVisibility.js.map +2 -2
- package/dist/cjs/exported-related/FilterTypes.js +4 -0
- package/dist/cjs/exported-related/FilterTypes.js.map +1 -1
- package/dist/cjs/exported-related/Filters/applyOutOfTheBoxFilters.js +12 -8
- package/dist/cjs/exported-related/Filters/applyOutOfTheBoxFilters.js.map +2 -2
- package/dist/cjs/exported-related/Filters/currencyRangeFilterFn.js +4 -0
- package/dist/cjs/exported-related/Filters/currencyRangeFilterFn.js.map +2 -2
- package/dist/cjs/exported-related/Filters/dateRangeFilterFn.js +5 -1
- package/dist/cjs/exported-related/Filters/dateRangeFilterFn.js.map +2 -2
- package/dist/cjs/exported-related/Filters/dateSwitcherFilterFn.js +6 -2
- package/dist/cjs/exported-related/Filters/dateSwitcherFilterFn.js.map +2 -2
- package/dist/cjs/exported-related/Filters/index.js +11 -7
- package/dist/cjs/exported-related/Filters/index.js.map +2 -2
- package/dist/cjs/exported-related/Filters/multiSelectFilterFn.js +4 -0
- package/dist/cjs/exported-related/Filters/multiSelectFilterFn.js.map +2 -2
- package/dist/cjs/exported-related/Filters/numberRangeFilterFn.js +4 -0
- package/dist/cjs/exported-related/Filters/numberRangeFilterFn.js.map +2 -2
- package/dist/cjs/exported-related/Filters/singleDateFilterFn.js +5 -1
- package/dist/cjs/exported-related/Filters/singleDateFilterFn.js.map +2 -2
- package/dist/cjs/exported-related/Filters/singleSelectFilterFn.js +4 -0
- package/dist/cjs/exported-related/Filters/singleSelectFilterFn.js.map +2 -2
- package/dist/cjs/exported-related/Filters/types.js +4 -0
- package/dist/cjs/exported-related/Filters/types.js.map +2 -2
- package/dist/cjs/exported-related/Filters/utilities.js +4 -0
- package/dist/cjs/exported-related/Filters/utilities.js.map +1 -1
- package/dist/cjs/exported-related/RowRenderer/DefaultRowContentRenderer.js +14 -6
- package/dist/cjs/exported-related/RowRenderer/DefaultRowContentRenderer.js.map +2 -2
- package/dist/cjs/exported-related/RowRenderer/index.js +12 -8
- package/dist/cjs/exported-related/RowRenderer/index.js.map +2 -2
- package/dist/cjs/exported-related/RowRenderer/useRowRendererHandlers.js +5 -1
- package/dist/cjs/exported-related/RowRenderer/useRowRendererHandlers.js.map +2 -2
- package/dist/cjs/exported-related/RowRenderer/useRowRendererProperties.js +6 -2
- package/dist/cjs/exported-related/RowRenderer/useRowRendererProperties.js.map +2 -2
- package/dist/cjs/exported-related/RowRenderer/useRowStyle.js +6 -2
- package/dist/cjs/exported-related/RowRenderer/useRowStyle.js.map +2 -2
- package/dist/cjs/exported-related/RowVariants.js +4 -0
- package/dist/cjs/exported-related/RowVariants.js.map +1 -1
- package/dist/cjs/exported-related/Toolbar/Toolbar.js +5 -1
- package/dist/cjs/exported-related/Toolbar/Toolbar.js.map +2 -2
- package/dist/cjs/exported-related/Toolbar/index.js +5 -1
- package/dist/cjs/exported-related/Toolbar/index.js.map +2 -2
- package/dist/cjs/exported-related/groupBy.js +4 -0
- package/dist/cjs/exported-related/groupBy.js.map +1 -1
- package/dist/cjs/exported-related/index.js +12 -8
- package/dist/cjs/exported-related/index.js.map +2 -2
- package/dist/cjs/helpers/addCellData.js +4 -0
- package/dist/cjs/helpers/addCellData.js.map +2 -2
- package/dist/cjs/helpers/cellPadding.js +5 -1
- package/dist/cjs/helpers/cellPadding.js.map +2 -2
- package/dist/cjs/helpers/columnsToGrid.js +6 -2
- package/dist/cjs/helpers/columnsToGrid.js.map +2 -2
- package/dist/cjs/helpers/getIdFromUniqueRowAccessor.js +4 -0
- package/dist/cjs/helpers/getIdFromUniqueRowAccessor.js.map +2 -2
- package/dist/cjs/helpers/index.js +10 -6
- package/dist/cjs/helpers/index.js.map +2 -2
- package/dist/cjs/helpers/refs-helpers.js +4 -0
- package/dist/cjs/helpers/refs-helpers.js.map +1 -1
- package/dist/cjs/helpers/sizeToCss.js +4 -0
- package/dist/cjs/helpers/sizeToCss.js.map +1 -1
- package/dist/cjs/index.js +7 -3
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/package.json +7 -0
- package/dist/cjs/parts/Cells/Cell.js +20 -12
- package/dist/cjs/parts/Cells/Cell.js.map +2 -2
- package/dist/cjs/parts/Cells/index.js +8 -4
- package/dist/cjs/parts/Cells/index.js.map +2 -2
- package/dist/cjs/parts/Cells/useCellStyle.js +5 -1
- package/dist/cjs/parts/Cells/useCellStyle.js.map +2 -2
- package/dist/cjs/parts/DnDHandle.js +6 -2
- package/dist/cjs/parts/DnDHandle.js.map +2 -2
- package/dist/cjs/parts/DropIndicator.js +6 -2
- package/dist/cjs/parts/DropIndicator.js.map +2 -2
- package/dist/cjs/parts/EmptyContent.js +5 -1
- package/dist/cjs/parts/EmptyContent.js.map +2 -2
- package/dist/cjs/parts/FilterBar/FiltersBar.js +9 -5
- package/dist/cjs/parts/FilterBar/FiltersBar.js.map +2 -2
- package/dist/cjs/parts/FilterBar/components/DateRangePill.js +4 -0
- package/dist/cjs/parts/FilterBar/components/DateRangePill.js.map +2 -2
- package/dist/cjs/parts/FilterBar/components/DateSwitcherPill.js +4 -0
- package/dist/cjs/parts/FilterBar/components/DateSwitcherPill.js.map +2 -2
- package/dist/cjs/parts/FilterBar/components/MultiSelectPill.js +4 -0
- package/dist/cjs/parts/FilterBar/components/MultiSelectPill.js.map +2 -2
- package/dist/cjs/parts/FilterBar/components/NumberRangePill.js +4 -0
- package/dist/cjs/parts/FilterBar/components/NumberRangePill.js.map +2 -2
- package/dist/cjs/parts/FilterBar/components/SelectPill.js +4 -0
- package/dist/cjs/parts/FilterBar/components/SelectPill.js.map +2 -2
- package/dist/cjs/parts/FilterBar/components/SingleDatePill.js +4 -0
- package/dist/cjs/parts/FilterBar/components/SingleDatePill.js.map +2 -2
- package/dist/cjs/parts/FilterBar/components/index.js +10 -6
- package/dist/cjs/parts/FilterBar/components/index.js.map +2 -2
- package/dist/cjs/parts/FilterBar/index.js +5 -1
- package/dist/cjs/parts/FilterBar/index.js.map +2 -2
- package/dist/cjs/parts/FilterBar/styled.js +4 -0
- package/dist/cjs/parts/FilterBar/styled.js.map +1 -1
- package/dist/cjs/parts/FilterBar/types.js +4 -0
- package/dist/cjs/parts/FilterBar/types.js.map +1 -1
- package/dist/cjs/parts/Filters/index.js +7 -3
- package/dist/cjs/parts/Filters/index.js.map +2 -2
- package/dist/cjs/parts/Headers/EmptyChildrenGroup.js +4 -0
- package/dist/cjs/parts/Headers/EmptyChildrenGroup.js.map +1 -1
- package/dist/cjs/parts/Headers/HeaderCell.js +15 -11
- package/dist/cjs/parts/Headers/HeaderCell.js.map +2 -2
- package/dist/cjs/parts/Headers/HeaderCellGroup.js +12 -8
- package/dist/cjs/parts/Headers/HeaderCellGroup.js.map +2 -2
- package/dist/cjs/parts/Headers/HeaderCellTitle.js +6 -2
- package/dist/cjs/parts/Headers/HeaderCellTitle.js.map +2 -2
- package/dist/cjs/parts/Headers/HeaderResizer.js +8 -4
- package/dist/cjs/parts/Headers/HeaderResizer.js.map +2 -2
- package/dist/cjs/parts/Headers/RequiredDot.js +4 -0
- package/dist/cjs/parts/Headers/RequiredDot.js.map +1 -1
- package/dist/cjs/parts/Headers/index.js +9 -5
- package/dist/cjs/parts/Headers/index.js.map +2 -2
- package/dist/cjs/parts/Headers/useHeaderCellConfig.js +6 -2
- package/dist/cjs/parts/Headers/useHeaderCellConfig.js.map +2 -2
- package/dist/cjs/parts/Headers/useHeaderCellHandlers.js +6 -1
- package/dist/cjs/parts/Headers/useHeaderCellHandlers.js.map +2 -2
- package/dist/cjs/parts/HoC/DnDTreeContext.js +4 -0
- package/dist/cjs/parts/HoC/DnDTreeContext.js.map +2 -2
- package/dist/cjs/parts/HoC/SortableItemContext.js +4 -0
- package/dist/cjs/parts/HoC/SortableItemContext.js.map +2 -2
- package/dist/cjs/parts/HoC/withConditionalDnDColumnContext.js +7 -3
- package/dist/cjs/parts/HoC/withConditionalDnDColumnContext.js.map +2 -2
- package/dist/cjs/parts/HoC/withConditionalDnDRowContext.js +7 -3
- package/dist/cjs/parts/HoC/withConditionalDnDRowContext.js.map +2 -2
- package/dist/cjs/parts/HoC/withConditionalDnDSortableContext.js +5 -1
- package/dist/cjs/parts/HoC/withConditionalDnDSortableContext.js.map +2 -2
- package/dist/cjs/parts/HoC/withDnDSortableColumnContext.js +8 -4
- package/dist/cjs/parts/HoC/withDnDSortableColumnContext.js.map +2 -2
- package/dist/cjs/parts/HoC/withDnDSortableRowContext.js +7 -3
- package/dist/cjs/parts/HoC/withDnDSortableRowContext.js.map +2 -2
- package/dist/cjs/parts/Loader.js +4 -0
- package/dist/cjs/parts/Loader.js.map +1 -1
- package/dist/cjs/parts/Row.js +8 -4
- package/dist/cjs/parts/Row.js.map +2 -2
- package/dist/cjs/parts/RowVariants/RowVariantHeader.js +8 -4
- package/dist/cjs/parts/RowVariants/RowVariantHeader.js.map +2 -2
- package/dist/cjs/parts/RowVariants/RowVariantPrimary.js +5 -1
- package/dist/cjs/parts/RowVariants/RowVariantPrimary.js.map +2 -2
- package/dist/cjs/parts/RowVariants/RowVariantSecondary.js +5 -1
- package/dist/cjs/parts/RowVariants/RowVariantSecondary.js.map +2 -2
- package/dist/cjs/parts/RowVariants/RowVariantSkeleton.js +5 -1
- package/dist/cjs/parts/RowVariants/RowVariantSkeleton.js.map +2 -2
- package/dist/cjs/parts/RowVariants/index.js +10 -6
- package/dist/cjs/parts/RowVariants/index.js.map +2 -2
- package/dist/cjs/parts/RowVariants/types.js +4 -0
- package/dist/cjs/parts/RowVariants/types.js.map +2 -2
- package/dist/cjs/parts/Rows.js +10 -5
- package/dist/cjs/parts/Rows.js.map +2 -2
- package/dist/cjs/parts/SortByCaret.js +4 -0
- package/dist/cjs/parts/SortByCaret.js.map +1 -1
- package/dist/cjs/parts/SortableHeaderCell.js +6 -2
- package/dist/cjs/parts/SortableHeaderCell.js.map +2 -2
- package/dist/cjs/parts/TableContent.js +9 -5
- package/dist/cjs/parts/TableContent.js.map +2 -2
- package/dist/cjs/parts/VirtualRowsList.js +13 -8
- package/dist/cjs/parts/VirtualRowsList.js.map +2 -2
- package/dist/cjs/parts/internal.js +6 -2
- package/dist/cjs/parts/internal.js.map +2 -2
- package/dist/cjs/styled.js +7 -3
- package/dist/cjs/styled.js.map +2 -2
- package/dist/cjs/tests/utils/index.js +4 -0
- package/dist/cjs/tests/utils/index.js.map +1 -1
- package/dist/cjs/types/FunctionalHoC.js +4 -0
- package/dist/cjs/types/FunctionalHoC.js.map +1 -1
- package/dist/cjs/types/props.js +4 -0
- package/dist/cjs/types/props.js.map +2 -2
- package/dist/esm/DataTable.js +7 -7
- package/dist/esm/DataTable.js.map +1 -1
- package/dist/esm/DataTableContext.js +2 -1
- package/dist/esm/DataTableContext.js.map +2 -2
- package/dist/esm/DataTableSchema.js +1 -1
- package/dist/esm/DataTableSchema.js.map +1 -1
- package/dist/esm/addons/Columns/ColumnAction/ColumnAction.js +1 -0
- package/dist/esm/addons/Columns/ColumnAction/ColumnAction.js.map +2 -2
- package/dist/esm/addons/Columns/ColumnDragHandle/ColumnDragHandle.js +5 -2
- package/dist/esm/addons/Columns/ColumnDragHandle/ColumnDragHandle.js.map +2 -2
- package/dist/esm/addons/Columns/ColumnExpand/ColumnExpand.js +6 -3
- package/dist/esm/addons/Columns/ColumnExpand/ColumnExpand.js.map +2 -2
- package/dist/esm/addons/Columns/ColumnSelectMultiple/ColumnSelectMultiple.js +3 -1
- package/dist/esm/addons/Columns/ColumnSelectMultiple/ColumnSelectMultiple.js.map +2 -2
- package/dist/esm/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.js +4 -1
- package/dist/esm/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.js.map +2 -2
- package/dist/esm/addons/Columns/index.js +5 -5
- package/dist/esm/addons/Columns/index.js.map +1 -1
- package/dist/esm/addons/Editables/ComboboxEditableCell/ComboboxEditableCell.js +2 -2
- package/dist/esm/addons/Editables/ComboboxEditableCell/ComboboxEditableCell.js.map +2 -2
- package/dist/esm/addons/Editables/DateEditableCell/DateEditableCell.js +2 -2
- package/dist/esm/addons/Editables/DateEditableCell/DateEditableCell.js.map +1 -1
- package/dist/esm/addons/Editables/TextEditableCell/TextEditableCell.js +2 -2
- package/dist/esm/addons/Editables/TextEditableCell/TextEditableCell.js.map +2 -2
- package/dist/esm/addons/Editables/index.js +2 -2
- package/dist/esm/addons/Editables/index.js.map +1 -1
- package/dist/esm/addons/Filters/Components/CurrencyRangeFilter/index.js +2 -2
- package/dist/esm/addons/Filters/Components/CurrencyRangeFilter/index.js.map +1 -1
- package/dist/esm/addons/Filters/Components/DateRangeFilter/index.js +2 -2
- package/dist/esm/addons/Filters/Components/DateRangeFilter/index.js.map +1 -1
- package/dist/esm/addons/Filters/Components/DateSwitcherFilter/index.js +2 -2
- package/dist/esm/addons/Filters/Components/DateSwitcherFilter/index.js.map +1 -1
- package/dist/esm/addons/Filters/Components/NumberRangeFilter/index.js +2 -2
- package/dist/esm/addons/Filters/Components/NumberRangeFilter/index.js.map +1 -1
- package/dist/esm/addons/Filters/Components/SelectFilter/BaseSelectFilter.js +2 -2
- package/dist/esm/addons/Filters/Components/SelectFilter/BaseSelectFilter.js.map +2 -2
- package/dist/esm/addons/Filters/Components/SelectFilter/MultiCreatableFilter.js +3 -3
- package/dist/esm/addons/Filters/Components/SelectFilter/MultiCreatableFilter.js.map +1 -1
- package/dist/esm/addons/Filters/Components/SelectFilter/MultiSelectFilter.js +3 -3
- package/dist/esm/addons/Filters/Components/SelectFilter/MultiSelectFilter.js.map +1 -1
- package/dist/esm/addons/Filters/Components/SelectFilter/SingleCreatableFilter.js +3 -3
- package/dist/esm/addons/Filters/Components/SelectFilter/SingleCreatableFilter.js.map +1 -1
- package/dist/esm/addons/Filters/Components/SelectFilter/SingleSelectFilter.js +3 -3
- package/dist/esm/addons/Filters/Components/SelectFilter/SingleSelectFilter.js.map +1 -1
- package/dist/esm/addons/Filters/Components/SingleDateFilter/index.js +2 -2
- package/dist/esm/addons/Filters/Components/SingleDateFilter/index.js.map +1 -1
- package/dist/esm/addons/Filters/Components/index.js +9 -9
- package/dist/esm/addons/Filters/Components/index.js.map +1 -1
- package/dist/esm/addons/Filters/index.js +1 -1
- package/dist/esm/addons/Filters/index.js.map +1 -1
- package/dist/esm/addons/Pagination/Pagination.js +1 -1
- package/dist/esm/addons/Pagination/Pagination.js.map +1 -1
- package/dist/esm/addons/Pagination/index.js +1 -1
- package/dist/esm/addons/Pagination/index.js.map +1 -1
- package/dist/esm/configs/index.js +5 -5
- package/dist/esm/configs/index.js.map +1 -1
- package/dist/esm/configs/useDatatableConfig.js +6 -6
- package/dist/esm/configs/useDatatableConfig.js.map +1 -1
- package/dist/esm/configs/useInternalStateConfig.js.map +2 -2
- package/dist/esm/configs/usePaginationConfig.js.map +1 -1
- package/dist/esm/configs/useRowFlattenization.js +1 -1
- package/dist/esm/configs/useRowFlattenization.js.map +2 -2
- package/dist/esm/configs/useTableColsWithAddons.js +1 -1
- package/dist/esm/configs/useTableColsWithAddons.js.map +2 -2
- package/dist/esm/exported-related/EditableCell.js +2 -2
- package/dist/esm/exported-related/EditableCell.js.map +1 -1
- package/dist/esm/exported-related/FilterBar/FilterBarDropdownMenu.js +2 -2
- package/dist/esm/exported-related/FilterBar/FilterBarDropdownMenu.js.map +2 -2
- package/dist/esm/exported-related/FilterBar/index.js +1 -1
- package/dist/esm/exported-related/FilterBar/index.js.map +1 -1
- package/dist/esm/exported-related/FilterPopover/index.js +4 -4
- package/dist/esm/exported-related/FilterPopover/index.js.map +1 -1
- package/dist/esm/exported-related/FilterPopover/useGetFilterHandlers.js +1 -1
- package/dist/esm/exported-related/FilterPopover/useGetFilterHandlers.js.map +1 -1
- package/dist/esm/exported-related/FilterPopover/useGetFilterVisibility.js.map +1 -1
- package/dist/esm/exported-related/Filters/applyOutOfTheBoxFilters.js +8 -8
- package/dist/esm/exported-related/Filters/applyOutOfTheBoxFilters.js.map +2 -2
- package/dist/esm/exported-related/Filters/currencyRangeFilterFn.js.map +2 -2
- package/dist/esm/exported-related/Filters/dateRangeFilterFn.js +1 -1
- package/dist/esm/exported-related/Filters/dateRangeFilterFn.js.map +2 -2
- package/dist/esm/exported-related/Filters/dateSwitcherFilterFn.js +2 -2
- package/dist/esm/exported-related/Filters/dateSwitcherFilterFn.js.map +1 -1
- package/dist/esm/exported-related/Filters/index.js +7 -7
- package/dist/esm/exported-related/Filters/index.js.map +1 -1
- package/dist/esm/exported-related/Filters/multiSelectFilterFn.js.map +2 -2
- package/dist/esm/exported-related/Filters/numberRangeFilterFn.js.map +2 -2
- package/dist/esm/exported-related/Filters/singleDateFilterFn.js +1 -1
- package/dist/esm/exported-related/Filters/singleDateFilterFn.js.map +2 -2
- package/dist/esm/exported-related/Filters/singleSelectFilterFn.js.map +2 -2
- package/dist/esm/exported-related/RowRenderer/DefaultRowContentRenderer.js +21 -17
- package/dist/esm/exported-related/RowRenderer/DefaultRowContentRenderer.js.map +2 -2
- package/dist/esm/exported-related/RowRenderer/index.js +8 -8
- package/dist/esm/exported-related/RowRenderer/index.js.map +1 -1
- package/dist/esm/exported-related/RowRenderer/useRowRendererHandlers.js +1 -1
- package/dist/esm/exported-related/RowRenderer/useRowRendererHandlers.js.map +2 -2
- package/dist/esm/exported-related/RowRenderer/useRowRendererProperties.js +2 -2
- package/dist/esm/exported-related/RowRenderer/useRowRendererProperties.js.map +2 -2
- package/dist/esm/exported-related/RowRenderer/useRowStyle.js +2 -2
- package/dist/esm/exported-related/RowRenderer/useRowStyle.js.map +2 -2
- package/dist/esm/exported-related/Toolbar/Toolbar.js +1 -1
- package/dist/esm/exported-related/Toolbar/Toolbar.js.map +1 -1
- package/dist/esm/exported-related/Toolbar/index.js +1 -1
- package/dist/esm/exported-related/Toolbar/index.js.map +1 -1
- package/dist/esm/exported-related/groupBy.js.map +1 -1
- package/dist/esm/exported-related/index.js +8 -8
- package/dist/esm/exported-related/index.js.map +1 -1
- package/dist/esm/helpers/addCellData.js.map +2 -2
- package/dist/esm/helpers/cellPadding.js +1 -1
- package/dist/esm/helpers/cellPadding.js.map +1 -1
- package/dist/esm/helpers/columnsToGrid.js +2 -2
- package/dist/esm/helpers/columnsToGrid.js.map +1 -1
- package/dist/esm/helpers/getIdFromUniqueRowAccessor.js.map +2 -2
- package/dist/esm/helpers/index.js +6 -6
- package/dist/esm/helpers/index.js.map +1 -1
- package/dist/esm/index.js +3 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/package.json +7 -0
- package/dist/esm/parts/Cells/Cell.js +16 -12
- package/dist/esm/parts/Cells/Cell.js.map +2 -2
- package/dist/esm/parts/Cells/index.js +4 -4
- package/dist/esm/parts/Cells/index.js.map +1 -1
- package/dist/esm/parts/Cells/useCellStyle.js +1 -1
- package/dist/esm/parts/Cells/useCellStyle.js.map +1 -1
- package/dist/esm/parts/DnDHandle.js +2 -2
- package/dist/esm/parts/DnDHandle.js.map +2 -2
- package/dist/esm/parts/DropIndicator.js +2 -2
- package/dist/esm/parts/DropIndicator.js.map +2 -2
- package/dist/esm/parts/EmptyContent.js +1 -1
- package/dist/esm/parts/EmptyContent.js.map +2 -2
- package/dist/esm/parts/FilterBar/FiltersBar.js +5 -5
- 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 +2 -2
- 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/components/index.js +6 -6
- package/dist/esm/parts/FilterBar/components/index.js.map +1 -1
- package/dist/esm/parts/FilterBar/index.js +1 -1
- package/dist/esm/parts/FilterBar/index.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/Headers/EmptyChildrenGroup.js.map +1 -1
- package/dist/esm/parts/Headers/HeaderCell.js +11 -11
- package/dist/esm/parts/Headers/HeaderCell.js.map +2 -2
- package/dist/esm/parts/Headers/HeaderCellGroup.js +8 -8
- package/dist/esm/parts/Headers/HeaderCellGroup.js.map +2 -2
- package/dist/esm/parts/Headers/HeaderCellTitle.js +2 -2
- package/dist/esm/parts/Headers/HeaderCellTitle.js.map +1 -1
- package/dist/esm/parts/Headers/HeaderResizer.js +4 -4
- package/dist/esm/parts/Headers/HeaderResizer.js.map +2 -2
- package/dist/esm/parts/Headers/index.js +5 -5
- package/dist/esm/parts/Headers/index.js.map +1 -1
- package/dist/esm/parts/Headers/useHeaderCellConfig.js +2 -2
- package/dist/esm/parts/Headers/useHeaderCellConfig.js.map +2 -2
- package/dist/esm/parts/Headers/useHeaderCellHandlers.js +2 -1
- package/dist/esm/parts/Headers/useHeaderCellHandlers.js.map +2 -2
- package/dist/esm/parts/HoC/DnDTreeContext.js.map +1 -1
- package/dist/esm/parts/HoC/SortableItemContext.js.map +1 -1
- package/dist/esm/parts/HoC/withConditionalDnDColumnContext.js +3 -3
- package/dist/esm/parts/HoC/withConditionalDnDColumnContext.js.map +2 -2
- package/dist/esm/parts/HoC/withConditionalDnDRowContext.js +3 -3
- package/dist/esm/parts/HoC/withConditionalDnDRowContext.js.map +2 -2
- package/dist/esm/parts/HoC/withConditionalDnDSortableContext.js +1 -1
- package/dist/esm/parts/HoC/withConditionalDnDSortableContext.js.map +1 -1
- package/dist/esm/parts/HoC/withDnDSortableColumnContext.js +4 -4
- package/dist/esm/parts/HoC/withDnDSortableColumnContext.js.map +1 -1
- package/dist/esm/parts/HoC/withDnDSortableRowContext.js +3 -3
- package/dist/esm/parts/HoC/withDnDSortableRowContext.js.map +1 -1
- package/dist/esm/parts/Row.js +4 -4
- package/dist/esm/parts/Row.js.map +2 -2
- 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 +1 -1
- package/dist/esm/parts/RowVariants/RowVariantPrimary.js.map +1 -1
- package/dist/esm/parts/RowVariants/RowVariantSecondary.js +1 -1
- package/dist/esm/parts/RowVariants/RowVariantSecondary.js.map +1 -1
- package/dist/esm/parts/RowVariants/RowVariantSkeleton.js +1 -1
- package/dist/esm/parts/RowVariants/RowVariantSkeleton.js.map +1 -1
- package/dist/esm/parts/RowVariants/index.js +6 -6
- package/dist/esm/parts/RowVariants/index.js.map +2 -2
- package/dist/esm/parts/Rows.js +6 -5
- package/dist/esm/parts/Rows.js.map +2 -2
- package/dist/esm/parts/SortableHeaderCell.js +2 -2
- package/dist/esm/parts/SortableHeaderCell.js.map +2 -2
- package/dist/esm/parts/TableContent.js +5 -5
- package/dist/esm/parts/TableContent.js.map +1 -1
- package/dist/esm/parts/VirtualRowsList.js +9 -8
- package/dist/esm/parts/VirtualRowsList.js.map +2 -2
- package/dist/esm/parts/internal.js +2 -2
- package/dist/esm/parts/internal.js.map +1 -1
- package/dist/esm/styled.js +3 -3
- package/dist/esm/styled.js.map +2 -2
- package/dist/esm/types/props.js.map +1 -1
- package/dist/types/DataTable.d.ts +26 -26
- package/dist/types/DataTableContext.d.ts +1 -1
- package/dist/types/addons/Columns/ColumnAction/ColumnAction.d.ts +1 -1
- package/dist/types/addons/Columns/ColumnDragHandle/ColumnDragHandle.d.ts +1 -1
- package/dist/types/addons/Columns/ColumnExpand/ColumnExpand.d.ts +1 -1
- package/dist/types/addons/Columns/ColumnSelectMultiple/ColumnSelectMultiple.d.ts +1 -1
- package/dist/types/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.d.ts +1 -1
- package/dist/types/addons/Columns/index.d.ts +5 -5
- package/dist/types/addons/Filters/Components/CurrencyRangeFilter/index.d.ts +1 -1
- package/dist/types/addons/Filters/Components/DateRangeFilter/index.d.ts +1 -1
- package/dist/types/addons/Filters/Components/DateSwitcherFilter/index.d.ts +1 -1
- package/dist/types/addons/Filters/Components/NumberRangeFilter/index.d.ts +1 -1
- package/dist/types/addons/Filters/Components/SelectFilter/BaseSelectFilter.d.ts +1 -1
- package/dist/types/addons/Filters/Components/SelectFilter/MultiCreatableFilter.d.ts +1 -1
- package/dist/types/addons/Filters/Components/SelectFilter/MultiSelectFilter.d.ts +1 -1
- package/dist/types/addons/Filters/Components/SelectFilter/SingleCreatableFilter.d.ts +1 -1
- package/dist/types/addons/Filters/Components/SelectFilter/SingleSelectFilter.d.ts +1 -1
- package/dist/types/addons/Filters/Components/SingleDateFilter/index.d.ts +1 -1
- package/dist/types/addons/Filters/Components/index.d.ts +9 -9
- package/dist/types/addons/Filters/index.d.ts +1 -1
- package/dist/types/addons/Pagination/index.d.ts +1 -1
- package/dist/types/configs/index.d.ts +5 -5
- package/dist/types/configs/useDatatableConfig.d.ts +1 -1
- package/dist/types/configs/useInternalStateConfig.d.ts +1 -1
- package/dist/types/configs/usePaginationConfig.d.ts +1 -1
- package/dist/types/configs/useRowFlattenization.d.ts +1 -1
- package/dist/types/configs/useTableColsWithAddons.d.ts +1 -1
- package/dist/types/exported-related/FilterBar/index.d.ts +1 -1
- package/dist/types/exported-related/FilterPopover/index.d.ts +1 -1
- package/dist/types/exported-related/FilterPopover/types.d.ts +1 -1
- package/dist/types/exported-related/FilterPopover/useGetFilterHandlers.d.ts +1 -1
- package/dist/types/exported-related/FilterPopover/useGetFilterVisibility.d.ts +1 -1
- package/dist/types/exported-related/Filters/applyOutOfTheBoxFilters.d.ts +1 -1
- package/dist/types/exported-related/Filters/currencyRangeFilterFn.d.ts +1 -1
- package/dist/types/exported-related/Filters/dateRangeFilterFn.d.ts +1 -1
- package/dist/types/exported-related/Filters/dateSwitcherFilterFn.d.ts +1 -1
- package/dist/types/exported-related/Filters/index.d.ts +7 -7
- package/dist/types/exported-related/Filters/multiSelectFilterFn.d.ts +1 -1
- package/dist/types/exported-related/Filters/numberRangeFilterFn.d.ts +1 -1
- package/dist/types/exported-related/Filters/singleDateFilterFn.d.ts +1 -1
- package/dist/types/exported-related/Filters/singleSelectFilterFn.d.ts +1 -1
- package/dist/types/exported-related/Filters/types.d.ts +1 -1
- package/dist/types/exported-related/RowRenderer/DefaultRowContentRenderer.d.ts +1 -1
- package/dist/types/exported-related/RowRenderer/index.d.ts +2 -2
- package/dist/types/exported-related/RowRenderer/useRowRendererHandlers.d.ts +2 -2
- package/dist/types/exported-related/RowRenderer/useRowRendererProperties.d.ts +4 -4
- package/dist/types/exported-related/RowRenderer/useRowStyle.d.ts +1 -1
- package/dist/types/exported-related/Toolbar/Toolbar.d.ts +1 -1
- package/dist/types/exported-related/Toolbar/index.d.ts +1 -1
- package/dist/types/exported-related/index.d.ts +8 -8
- package/dist/types/helpers/addCellData.d.ts +1 -1
- package/dist/types/helpers/columnsToGrid.d.ts +2 -2
- package/dist/types/helpers/getIdFromUniqueRowAccessor.d.ts +1 -1
- package/dist/types/helpers/index.d.ts +6 -6
- package/dist/types/index.d.ts +3 -3
- package/dist/types/parts/Cells/Cell.d.ts +1 -1
- package/dist/types/parts/Cells/index.d.ts +1 -1
- package/dist/types/parts/Cells/useCellStyle.d.ts +1 -1
- package/dist/types/parts/DropIndicator.d.ts +1 -1
- package/dist/types/parts/FilterBar/components/DateRangePill.d.ts +1 -1
- package/dist/types/parts/FilterBar/components/DateSwitcherPill.d.ts +1 -1
- package/dist/types/parts/FilterBar/components/MultiSelectPill.d.ts +1 -1
- package/dist/types/parts/FilterBar/components/NumberRangePill.d.ts +1 -1
- package/dist/types/parts/FilterBar/components/SelectPill.d.ts +1 -1
- package/dist/types/parts/FilterBar/components/SingleDatePill.d.ts +1 -1
- package/dist/types/parts/FilterBar/components/index.d.ts +6 -6
- package/dist/types/parts/FilterBar/index.d.ts +1 -1
- package/dist/types/parts/Filters/index.d.ts +1 -1
- package/dist/types/parts/Headers/HeaderCell.d.ts +1 -1
- package/dist/types/parts/Headers/HeaderCellGroup.d.ts +1 -1
- package/dist/types/parts/Headers/HeaderCellTitle.d.ts +2 -2
- package/dist/types/parts/Headers/HeaderResizer.d.ts +1 -1
- package/dist/types/parts/Headers/useHeaderCellConfig.d.ts +1 -1
- package/dist/types/parts/Headers/useHeaderCellHandlers.d.ts +1 -1
- package/dist/types/parts/HoC/DnDTreeContext.d.ts +1 -1
- package/dist/types/parts/HoC/SortableItemContext.d.ts +1 -1
- package/dist/types/parts/HoC/withConditionalDnDColumnContext.d.ts +1 -1
- package/dist/types/parts/HoC/withConditionalDnDRowContext.d.ts +1 -1
- package/dist/types/parts/HoC/withConditionalDnDSortableContext.d.ts +2 -2
- package/dist/types/parts/HoC/withDnDSortableColumnContext.d.ts +1 -1
- package/dist/types/parts/HoC/withDnDSortableRowContext.d.ts +1 -1
- package/dist/types/parts/RowVariants/RowVariantHeader.d.ts +1 -1
- package/dist/types/parts/RowVariants/RowVariantPrimary.d.ts +1 -1
- package/dist/types/parts/RowVariants/RowVariantSecondary.d.ts +1 -1
- package/dist/types/parts/RowVariants/RowVariantSkeleton.d.ts +1 -1
- package/dist/types/parts/RowVariants/index.d.ts +1 -1
- package/dist/types/parts/RowVariants/types.d.ts +2 -2
- package/dist/types/parts/SortableHeaderCell.d.ts +1 -1
- package/dist/types/parts/internal.d.ts +2 -2
- package/dist/types/styled.d.ts +12 -12
- package/dist/types/types/props.d.ts +1 -1
- package/package.json +21 -21
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../src/addons/Columns/ColumnExpand/ColumnExpand.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\nimport React, { useMemo, useCallback } from 'react';\nimport { ArrowheadDown, ArrowheadRight, ArrowShortReturn } from '@elliemae/ds-icons';\nimport { styled, css } from '@elliemae/ds-system';\nimport type { TypescriptColumn } from '../../../types/props';\nimport { StyledFocusWithin } from '../../../styled';\nimport { DATA_TESTID } from '../../../configs/constants';\n\nconst disabledCaret = css`\n cursor: not-allowed;\n pointer-events: none;\n`;\nconst StyledSpan = styled.span<{ disabled: boolean }>`\n cursor: pointer;\n box-sizing: border-box;\n outline: none;\n display: flex;\n justify-content: center;\n align-items: center;\n ${({ disabled }) => disabled && disabledCaret}\n`;\n\nconst ArrowDown = ({ color = ['brand-primary', '600'], ...rest }) => (\n <ArrowheadDown size=\"s\" color={color} data-testid={DATA_TESTID.DATA_TABLE_ICON_ARROW_DOWN} {...rest} />\n);\n\nconst ArrowMixed = () => (\n <ArrowheadRight\n size=\"s\"\n color={['brand-primary', '600']}\n data-testid={DATA_TESTID.DATA_TABLE_ICON_ARROW_MIXED}\n style={{ transform: 'rotate(45deg)' }}\n />\n);\n\nconst ArrowRight = ({ color = ['brand-primary', '600'], ...rest }) => (\n <ArrowheadRight size=\"s\" color={color} data-testid={DATA_TESTID.DATA_TABLE_ICON_ARROW_RIGHT} {...rest} />\n);\n\nexport const expandRowColumn: TypescriptColumn<HTMLSpanElement> = {\n // Build our expander column\n id: 'expander', // Make sure it has an ID\n accessor: 'expandRowColumn',\n Header: ({ ctx }) => {\n const {\n tableProps: { expandedRows, onRowExpand, disabledRows },\n allDataFlattened,\n } = ctx;\n\n const allExpandable = useMemo(() => {\n const expandable: Record<string, boolean> = {};\n allDataFlattened.forEach((row) => {\n const isExpandableRow = row.original.subRows || row.original.tableRowDetails || row.original.dimsumHeaderValue;\n if (!disabledRows[row.uid] && isExpandableRow) expandable[row.uid] = true;\n });\n return expandable;\n }, [allDataFlattened, disabledRows]);\n\n const isAllRowsExpanded = useMemo(\n () => Object.keys(allExpandable).length === Object.keys(expandedRows).length,\n [allExpandable, expandedRows],\n );\n\n const onExpandedAllHandler = useCallback(() => {\n if (isAllRowsExpanded) onRowExpand({}, 'All');\n else onRowExpand({ ...allExpandable }, 'All');\n }, [allExpandable, isAllRowsExpanded, onRowExpand]);\n\n const onKeyDownHandler = useCallback(\n (e: React.KeyboardEvent) => {\n if (['Enter', 'Space'].includes(e.code)) {\n onExpandedAllHandler();\n e.preventDefault();\n }\n },\n [onExpandedAllHandler],\n );\n\n const GlobalExpandIcon = useMemo(() => {\n if (isAllRowsExpanded) return <ArrowDown />;\n if (Object.keys(expandedRows).length) return <ArrowMixed />;\n return <ArrowRight />;\n }, [expandedRows, isAllRowsExpanded]);\n\n return (\n <StyledFocusWithin>\n <StyledSpan\n role=\"button\"\n tabIndex={0}\n title=\"Toggle All Rows Expanded\"\n onClick={onExpandedAllHandler}\n onKeyDown={onKeyDownHandler}\n data-testid={DATA_TESTID.DATA_TABLE_GLOBAL_EXPAND_CELL}\n aria-expanded={isAllRowsExpanded}\n style={{ width: '24px', height: '24px' }}\n >\n {GlobalExpandIcon}\n </StyledSpan>\n </StyledFocusWithin>\n );\n },\n Cell: ({ cell, row, isRowSelected, ctx, draggableProps }) => {\n const {\n tableProps: { dragAndDropRows, expandedRows, onRowExpand, disabledRows },\n } = ctx;\n\n const uniqueId = row.uid;\n\n const isExpanded = !!expandedRows[uniqueId];\n\n const shouldPrintCaret = useMemo(\n () =>\n (row.original.subRows?.length && row.depth === 0) || // only allows 1 level of expands\n row.original.tableRowDetails ||\n row.original.dimsumHeaderValue,\n [row.depth, row.original.dimsumHeaderValue, row.original.subRows?.length, row.original.tableRowDetails],\n );\n\n const onRowExpandHandler = useCallback(\n (e: React.MouseEvent | React.KeyboardEvent) => {\n if (disabledRows[row.uid]) return;\n e.stopPropagation(); // to prevent on row click\n if (expandedRows[uniqueId]) {\n delete expandedRows[uniqueId];\n } else {\n expandedRows[uniqueId] = true;\n }\n onRowExpand({ ...expandedRows }, uniqueId);\n },\n [disabledRows, row.uid, expandedRows, uniqueId, onRowExpand],\n );\n\n const onKeyDownHandler = useCallback(\n (e: React.KeyboardEvent) => {\n if (['Enter', 'Space'].includes(e.code)) {\n e.preventDefault();\n onRowExpandHandler(e);\n }\n },\n [onRowExpandHandler],\n );\n\n const isDragging = draggableProps && draggableProps.isDragging;\n const isDragOverlay = dragAndDropRows && !draggableProps;\n\n const indentStyle: React.CSSProperties = useMemo(\n () => ({\n marginLeft: `${row.depth * 32}px`,\n marginRight: '12px',\n paddingLeft: '3px',\n paddingRight: '2px',\n position: 'relative',\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n }),\n [row.depth],\n );\n\n const PureCaretIcon = useMemo(() => {\n const Caret = isExpanded && !isDragging && !isDragOverlay ? ArrowDown : ArrowRight;\n return (\n <Caret\n data-is-col-expanded={isExpanded}\n data-role=\"row-expander-col\"\n color={disabledRows[row.uid] ? ['neutral', '400'] : ['brand-primary', '600']}\n />\n );\n }, [isExpanded, isDragging, isDragOverlay, disabledRows, row.uid]);\n\n if (shouldPrintCaret)\n return (\n <StyledFocusWithin style={indentStyle}>\n <StyledSpan\n role=\"button\"\n key={`${row.uid}-expand-button`}\n title=\"Toggle Row Expanded\"\n onClick={onRowExpandHandler}\n onKeyDown={onKeyDownHandler}\n ref={cell.ref}\n tabIndex={isRowSelected && !disabledRows[row.uid] ? 0 : -1}\n data-testid=\"data-table-row-expand-cell\"\n aria-expanded={isExpanded}\n isRightArrow={!isExpanded || isDragging || isDragOverlay}\n disabled={disabledRows[row.uid]}\n aria-disabled={disabledRows[row.uid]}\n >\n {PureCaretIcon}\n </StyledSpan>\n </StyledFocusWithin>\n );\n\n if (row.depth !== 0)\n return (\n <span style={indentStyle}>\n <ArrowShortReturn\n size=\"s\"\n data-testid={DATA_TESTID.DATA_TABLE_ICON_CHILD}\n style={{ transform: 'rotate(90deg) scaleY(-1)' }}\n color={['brand-primary', '600']}\n />\n </span>\n );\n\n return <div style={{ width: '36px' }} />;\n },\n textWrap: 'wrap',\n canResize: false,\n width: 25,\n padding: 0,\n isFocuseable: false,\n disableDnD: true,\n};\n"],
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;ACuBrB;AAtBF,SAAgB,SAAS,mBAAmB;AAC5C,SAAS,eAAe,gBAAgB,wBAAwB;AAChE,SAAS,QAAQ,WAAW;AAE5B,SAAS,yBAAyB;AAClC,SAAS,mBAAmB;AAE5B,MAAM,gBAAgB;AAAA;AAAA;AAAA;AAItB,MAAM,aAAa,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOtB,CAAC,EAAE,SAAS,MAAM,YAAY;AAAA;AAGlC,MAAM,YAAY,CAAC,EAAE,QAAQ,CAAC,iBAAiB,KAAK,
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\nimport React, { useMemo, useCallback } from 'react';\nimport { ArrowheadDown, ArrowheadRight, ArrowShortReturn } from '@elliemae/ds-icons';\nimport { styled, css } from '@elliemae/ds-system';\nimport type { TypescriptColumn } from '../../../types/props.js';\nimport { StyledFocusWithin } from '../../../styled.js';\nimport { DATA_TESTID } from '../../../configs/constants.js';\n\nconst disabledCaret = css`\n cursor: not-allowed;\n pointer-events: none;\n`;\nconst StyledSpan = styled.span<{ disabled: boolean }>`\n cursor: pointer;\n box-sizing: border-box;\n outline: none;\n display: flex;\n justify-content: center;\n align-items: center;\n ${({ disabled }) => disabled && disabledCaret}\n`;\n\nconst ArrowDown = ({ color = ['brand-primary', '600'], ...rest }) => (\n <ArrowheadDown size=\"s\" color={color} data-testid={DATA_TESTID.DATA_TABLE_ICON_ARROW_DOWN} {...rest} />\n);\n\nconst ArrowMixed = () => (\n <ArrowheadRight\n size=\"s\"\n color={['brand-primary', '600']}\n data-testid={DATA_TESTID.DATA_TABLE_ICON_ARROW_MIXED}\n style={{ transform: 'rotate(45deg)' }}\n />\n);\n\nconst ArrowRight = ({ color = ['brand-primary', '600'], ...rest }) => (\n <ArrowheadRight size=\"s\" color={color} data-testid={DATA_TESTID.DATA_TABLE_ICON_ARROW_RIGHT} {...rest} />\n);\n\nexport const expandRowColumn: TypescriptColumn<HTMLSpanElement> = {\n // Build our expander column\n id: 'expander', // Make sure it has an ID\n accessor: 'expandRowColumn',\n Header: ({ ctx }) => {\n const {\n tableProps: { expandedRows, onRowExpand, disabledRows },\n allDataFlattened,\n } = ctx;\n\n const allExpandable = useMemo(() => {\n const expandable: Record<string, boolean> = {};\n allDataFlattened.forEach((row) => {\n const isExpandableRow = row.original.subRows || row.original.tableRowDetails || row.original.dimsumHeaderValue;\n if (!disabledRows[row.uid] && isExpandableRow) expandable[row.uid] = true;\n });\n return expandable;\n }, [allDataFlattened, disabledRows]);\n\n const isAllRowsExpanded = useMemo(\n () => Object.keys(allExpandable).length === Object.keys(expandedRows).length,\n [allExpandable, expandedRows],\n );\n\n const onExpandedAllHandler = useCallback(() => {\n if (isAllRowsExpanded) onRowExpand({}, 'All');\n else onRowExpand({ ...allExpandable }, 'All');\n }, [allExpandable, isAllRowsExpanded, onRowExpand]);\n\n const onKeyDownHandler = useCallback(\n (e: React.KeyboardEvent) => {\n if (['Enter', 'Space'].includes(e.code)) {\n onExpandedAllHandler();\n e.preventDefault();\n }\n },\n [onExpandedAllHandler],\n );\n\n const GlobalExpandIcon = useMemo(() => {\n if (isAllRowsExpanded) return <ArrowDown />;\n if (Object.keys(expandedRows).length) return <ArrowMixed />;\n return <ArrowRight />;\n }, [expandedRows, isAllRowsExpanded]);\n\n return (\n <StyledFocusWithin>\n <StyledSpan\n role=\"button\"\n tabIndex={0}\n title=\"Toggle All Rows Expanded\"\n onClick={onExpandedAllHandler}\n onKeyDown={onKeyDownHandler}\n data-testid={DATA_TESTID.DATA_TABLE_GLOBAL_EXPAND_CELL}\n aria-expanded={isAllRowsExpanded}\n style={{ width: '24px', height: '24px' }}\n >\n {GlobalExpandIcon}\n </StyledSpan>\n </StyledFocusWithin>\n );\n },\n Cell: ({ cell, row, isRowSelected, ctx, draggableProps }) => {\n const {\n tableProps: { dragAndDropRows, expandedRows, onRowExpand, disabledRows },\n } = ctx;\n\n const uniqueId = row.uid;\n\n const isExpanded = !!expandedRows[uniqueId];\n\n const shouldPrintCaret = useMemo(\n () =>\n (row.original.subRows?.length && row.depth === 0) || // only allows 1 level of expands\n row.original.tableRowDetails ||\n row.original.dimsumHeaderValue,\n [row.depth, row.original.dimsumHeaderValue, row.original.subRows?.length, row.original.tableRowDetails],\n );\n\n const onRowExpandHandler = useCallback(\n (e: React.MouseEvent | React.KeyboardEvent) => {\n if (disabledRows[row.uid]) return;\n e.stopPropagation(); // to prevent on row click\n if (expandedRows[uniqueId]) {\n delete expandedRows[uniqueId];\n } else {\n expandedRows[uniqueId] = true;\n }\n onRowExpand({ ...expandedRows }, uniqueId);\n },\n [disabledRows, row.uid, expandedRows, uniqueId, onRowExpand],\n );\n\n const onKeyDownHandler = useCallback(\n (e: React.KeyboardEvent) => {\n if (['Enter', 'Space'].includes(e.code)) {\n e.preventDefault();\n onRowExpandHandler(e);\n }\n },\n [onRowExpandHandler],\n );\n\n const isDragging = draggableProps && draggableProps.isDragging;\n const isDragOverlay = dragAndDropRows && !draggableProps;\n\n const indentStyle: React.CSSProperties = useMemo(\n () => ({\n marginLeft: `${row.depth * 32}px`,\n marginRight: '12px',\n paddingLeft: '3px',\n paddingRight: '2px',\n position: 'relative',\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n }),\n [row.depth],\n );\n\n const PureCaretIcon = useMemo(() => {\n const Caret = isExpanded && !isDragging && !isDragOverlay ? ArrowDown : ArrowRight;\n return (\n <Caret\n data-is-col-expanded={isExpanded}\n data-role=\"row-expander-col\"\n color={disabledRows[row.uid] ? ['neutral', '400'] : ['brand-primary', '600']}\n />\n );\n }, [isExpanded, isDragging, isDragOverlay, disabledRows, row.uid]);\n\n if (shouldPrintCaret)\n return (\n <StyledFocusWithin style={indentStyle}>\n <StyledSpan\n role=\"button\"\n key={`${row.uid}-expand-button`}\n title=\"Toggle Row Expanded\"\n onClick={onRowExpandHandler}\n onKeyDown={onKeyDownHandler}\n ref={cell.ref}\n tabIndex={isRowSelected && !disabledRows[row.uid] ? 0 : -1}\n data-testid=\"data-table-row-expand-cell\"\n aria-expanded={isExpanded}\n isRightArrow={!isExpanded || isDragging || isDragOverlay}\n disabled={disabledRows[row.uid]}\n aria-disabled={disabledRows[row.uid]}\n >\n {PureCaretIcon}\n </StyledSpan>\n </StyledFocusWithin>\n );\n\n if (row.depth !== 0)\n return (\n <span style={indentStyle}>\n <ArrowShortReturn\n size=\"s\"\n data-testid={DATA_TESTID.DATA_TABLE_ICON_CHILD}\n style={{ transform: 'rotate(90deg) scaleY(-1)' }}\n color={['brand-primary', '600']}\n />\n </span>\n );\n\n return <div style={{ width: '36px' }} />;\n },\n textWrap: 'wrap',\n canResize: false,\n width: 25,\n padding: 0,\n isFocuseable: false,\n disableDnD: true,\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,9 +2,11 @@ import * as React from "react";
|
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
import { useMemo, useRef, useCallback } from "react";
|
|
4
4
|
import { DSControlledCheckbox } from "@elliemae/ds-controlled-form";
|
|
5
|
-
import { DATA_TESTID } from "../../../configs/constants";
|
|
5
|
+
import { DATA_TESTID } from "../../../configs/constants.js";
|
|
6
6
|
const multiSelectColumn = {
|
|
7
|
+
// Build our multiSelecter column
|
|
7
8
|
id: "multiSelecter",
|
|
9
|
+
// Make sure it has an ID
|
|
8
10
|
Header: ({ ctx }) => {
|
|
9
11
|
const {
|
|
10
12
|
tableProps: { onSelectionChange, selection, disabledRows },
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../src/addons/Columns/ColumnSelectMultiple/ColumnSelectMultiple.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useMemo, useRef, useCallback } from 'react';\nimport { DSControlledCheckbox } from '@elliemae/ds-controlled-form';\nimport type { TypescriptColumn, TypescriptSelection } from '../../../types/props';\nimport { DATA_TESTID } from '../../../configs/constants';\n\nexport const multiSelectColumn: TypescriptColumn<HTMLInputElement> = {\n // Build our multiSelecter column\n id: 'multiSelecter', // Make sure it has an ID\n Header: ({ ctx }) => {\n const {\n tableProps: { onSelectionChange, selection, disabledRows },\n allDataFlattened,\n flattenedData,\n } = ctx;\n\n // We for sure have selection, so we just typecast it for TS reasons\n const dtSelection = selection ?? {};\n const selectionKeyCount = Object.keys(dtSelection).filter((selection) => dtSelection[selection]).length;\n\n const currentGlobalState = useMemo(\n () =>\n selectionKeyCount > 0 && selectionKeyCount < flattenedData.filter((datum) => !disabledRows[datum.id]).length\n ? 'mixed'\n : selectionKeyCount > 0,\n [selectionKeyCount, flattenedData, disabledRows],\n );\n\n // global state toggling: false to true, mixed to true, true to false\n const newGlobalStateAfterToggle = useMemo(() => currentGlobalState !== true, [currentGlobalState]);\n\n const newSelection: TypescriptSelection = useMemo(() => {\n if (!newGlobalStateAfterToggle) return {};\n\n return allDataFlattened.reduce<TypescriptSelection>((newSelectionObject, datum) => {\n newSelectionObject[datum.uid] = !disabledRows[datum.uid];\n return newSelectionObject;\n }, {});\n }, [newGlobalStateAfterToggle, allDataFlattened, disabledRows]);\n\n const onChangeHandler = useCallback(\n (newState: boolean, e: React.ChangeEvent) => {\n onSelectionChange(newSelection, 'All', e);\n },\n [newSelection, onSelectionChange],\n );\n\n const ariaControls = useMemo(\n () => allDataFlattened.map((datum) => `data-table-checkbox-${datum.uid}`).join(' '),\n [allDataFlattened],\n );\n\n return (\n <DSControlledCheckbox\n aria-controls={ariaControls}\n data-testid={DATA_TESTID.DATA_TABLE_GLOBAL_CHECKBOX}\n aria-label=\"Toggle all rows selected\"\n checked={currentGlobalState}\n onChange={onChangeHandler}\n />\n );\n },\n Cell: ({ cell, row, isRowSelected, ctx }) => {\n const {\n tableProps: { onSelectionChange, selection, disabledRows },\n isShiftPressed,\n setIsShiftPressed,\n flattenedData,\n lastSelected,\n } = ctx;\n\n const { uid } = row;\n const selectedState = selection?.[uid] ?? false;\n\n const isShiftPressedKeyRef = useRef(false);\n const onChangeHandler = useCallback(\n (newState: boolean, e: React.ChangeEvent) => {\n const newSelection = { ...selection, [uid]: newState }; // we only want true and mixed values\n if (!newState) delete newSelection[uid]; // if newState is false, remove from the new selection\n const now = Number.parseInt(uid, 10);\n if ((isShiftPressed || isShiftPressedKeyRef.current) && lastSelected.current > -1) {\n for (let i = Math.min(lastSelected.current, now); i <= Math.max(lastSelected.current, now); i += 1) {\n const correctDataIndex = flattenedData[i].id;\n if (!Object.keys(disabledRows).includes(correctDataIndex))\n newSelection[correctDataIndex] = newSelection[lastSelected.current];\n if (!newSelection[correctDataIndex]) delete newSelection[correctDataIndex];\n }\n }\n lastSelected.current = now;\n onSelectionChange(newSelection, uid, e);\n },\n [disabledRows, flattenedData, isShiftPressed, lastSelected, onSelectionChange, selection, uid],\n );\n\n const onKeyDownHandler: React.KeyboardEventHandler = useCallback(\n (e) => {\n setIsShiftPressed(e.code === 'Shift' || e.shiftKey);\n e.stopPropagation();\n },\n [setIsShiftPressed],\n );\n\n const onKeyUpHandler: React.KeyboardEventHandler = useCallback(\n (e) => {\n setIsShiftPressed(false);\n isShiftPressedKeyRef.current = false;\n e.stopPropagation();\n },\n [setIsShiftPressed],\n );\n\n const stopThePropagation = useCallback((e: React.MouseEvent | React.KeyboardEvent) => {\n if (e.shiftKey) {\n isShiftPressedKeyRef.current = true;\n }\n e.stopPropagation();\n }, []);\n\n return (\n <div role=\"presentation\" onClick={stopThePropagation} onKeyDown={onKeyDownHandler} onKeyUp={onKeyUpHandler}>\n <DSControlledCheckbox\n id={`data-table-checkbox-${uid}`}\n data-testid={DATA_TESTID.DATA_TABLE_CHECKBOX}\n aria-label=\"Toggle row selected\"\n checked={selectedState}\n onChange={onChangeHandler}\n disabled={disabledRows[row.uid]}\n innerRef={cell.ref}\n tabIndex={isRowSelected ? 0 : -1}\n />\n </div>\n );\n },\n textWrap: 'wrap',\n width: 32,\n padding: 7,\n canResize: false,\n isFocuseable: false,\n disableDnD: true,\n};\n"],
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;ACoDjB;AApDN,SAAgB,SAAS,QAAQ,mBAAmB;AACpD,SAAS,4BAA4B;AAErC,SAAS,mBAAmB;AAErB,MAAM,oBAAwD;AAAA,EAEnE,IAAI;AAAA,EACJ,QAAQ,CAAC,EAAE,IAAI,MAAM;AACnB,UAAM;AAAA,MACJ,YAAY,EAAE,mBAAmB,WAAW,aAAa;AAAA,MACzD;AAAA,MACA;AAAA,IACF,IAAI;AAGJ,UAAM,cAAc,aAAa,CAAC;AAClC,UAAM,oBAAoB,OAAO,KAAK,WAAW,EAAE,OAAO,CAACA,eAAc,YAAYA,
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useMemo, useRef, useCallback } from 'react';\nimport { DSControlledCheckbox } from '@elliemae/ds-controlled-form';\nimport type { TypescriptColumn, TypescriptSelection } from '../../../types/props.js';\nimport { DATA_TESTID } from '../../../configs/constants.js';\n\nexport const multiSelectColumn: TypescriptColumn<HTMLInputElement> = {\n // Build our multiSelecter column\n id: 'multiSelecter', // Make sure it has an ID\n Header: ({ ctx }) => {\n const {\n tableProps: { onSelectionChange, selection, disabledRows },\n allDataFlattened,\n flattenedData,\n } = ctx;\n\n // We for sure have selection, so we just typecast it for TS reasons\n const dtSelection = selection ?? {};\n const selectionKeyCount = Object.keys(dtSelection).filter((selection) => dtSelection[selection]).length;\n\n const currentGlobalState = useMemo(\n () =>\n selectionKeyCount > 0 && selectionKeyCount < flattenedData.filter((datum) => !disabledRows[datum.id]).length\n ? 'mixed'\n : selectionKeyCount > 0,\n [selectionKeyCount, flattenedData, disabledRows],\n );\n\n // global state toggling: false to true, mixed to true, true to false\n const newGlobalStateAfterToggle = useMemo(() => currentGlobalState !== true, [currentGlobalState]);\n\n const newSelection: TypescriptSelection = useMemo(() => {\n if (!newGlobalStateAfterToggle) return {};\n\n return allDataFlattened.reduce<TypescriptSelection>((newSelectionObject, datum) => {\n newSelectionObject[datum.uid] = !disabledRows[datum.uid];\n return newSelectionObject;\n }, {});\n }, [newGlobalStateAfterToggle, allDataFlattened, disabledRows]);\n\n const onChangeHandler = useCallback(\n (newState: boolean, e: React.ChangeEvent) => {\n onSelectionChange(newSelection, 'All', e);\n },\n [newSelection, onSelectionChange],\n );\n\n const ariaControls = useMemo(\n () => allDataFlattened.map((datum) => `data-table-checkbox-${datum.uid}`).join(' '),\n [allDataFlattened],\n );\n\n return (\n <DSControlledCheckbox\n aria-controls={ariaControls}\n data-testid={DATA_TESTID.DATA_TABLE_GLOBAL_CHECKBOX}\n aria-label=\"Toggle all rows selected\"\n checked={currentGlobalState}\n onChange={onChangeHandler}\n />\n );\n },\n Cell: ({ cell, row, isRowSelected, ctx }) => {\n const {\n tableProps: { onSelectionChange, selection, disabledRows },\n isShiftPressed,\n setIsShiftPressed,\n flattenedData,\n lastSelected,\n } = ctx;\n\n const { uid } = row;\n const selectedState = selection?.[uid] ?? false;\n\n const isShiftPressedKeyRef = useRef(false);\n const onChangeHandler = useCallback(\n (newState: boolean, e: React.ChangeEvent) => {\n const newSelection = { ...selection, [uid]: newState }; // we only want true and mixed values\n if (!newState) delete newSelection[uid]; // if newState is false, remove from the new selection\n const now = Number.parseInt(uid, 10);\n if ((isShiftPressed || isShiftPressedKeyRef.current) && lastSelected.current > -1) {\n for (let i = Math.min(lastSelected.current, now); i <= Math.max(lastSelected.current, now); i += 1) {\n const correctDataIndex = flattenedData[i].id;\n if (!Object.keys(disabledRows).includes(correctDataIndex))\n newSelection[correctDataIndex] = newSelection[lastSelected.current];\n if (!newSelection[correctDataIndex]) delete newSelection[correctDataIndex];\n }\n }\n lastSelected.current = now;\n onSelectionChange(newSelection, uid, e);\n },\n [disabledRows, flattenedData, isShiftPressed, lastSelected, onSelectionChange, selection, uid],\n );\n\n const onKeyDownHandler: React.KeyboardEventHandler = useCallback(\n (e) => {\n setIsShiftPressed(e.code === 'Shift' || e.shiftKey);\n e.stopPropagation();\n },\n [setIsShiftPressed],\n );\n\n const onKeyUpHandler: React.KeyboardEventHandler = useCallback(\n (e) => {\n setIsShiftPressed(false);\n isShiftPressedKeyRef.current = false;\n e.stopPropagation();\n },\n [setIsShiftPressed],\n );\n\n const stopThePropagation = useCallback((e: React.MouseEvent | React.KeyboardEvent) => {\n if (e.shiftKey) {\n isShiftPressedKeyRef.current = true;\n }\n e.stopPropagation();\n }, []);\n\n return (\n <div role=\"presentation\" onClick={stopThePropagation} onKeyDown={onKeyDownHandler} onKeyUp={onKeyUpHandler}>\n <DSControlledCheckbox\n id={`data-table-checkbox-${uid}`}\n data-testid={DATA_TESTID.DATA_TABLE_CHECKBOX}\n aria-label=\"Toggle row selected\"\n checked={selectedState}\n onChange={onChangeHandler}\n disabled={disabledRows[row.uid]}\n innerRef={cell.ref}\n tabIndex={isRowSelected ? 0 : -1}\n />\n </div>\n );\n },\n textWrap: 'wrap',\n width: 32,\n padding: 7,\n canResize: false,\n isFocuseable: false,\n disableDnD: true,\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["selection"]
|
|
7
7
|
}
|
|
@@ -3,7 +3,7 @@ import { jsx } from "react/jsx-runtime";
|
|
|
3
3
|
import { useCallback } from "react";
|
|
4
4
|
import { DSControlledRadio } from "@elliemae/ds-controlled-form";
|
|
5
5
|
import { styled } from "@elliemae/ds-system";
|
|
6
|
-
import { DATA_TESTID } from "../../../configs/constants";
|
|
6
|
+
import { DATA_TESTID } from "../../../configs/constants.js";
|
|
7
7
|
const CenteredContent = styled.div`
|
|
8
8
|
display: flex;
|
|
9
9
|
height: 100%;
|
|
@@ -13,7 +13,10 @@ const CenteredContent = styled.div`
|
|
|
13
13
|
`;
|
|
14
14
|
const stopThePropagation = (e) => e.stopPropagation();
|
|
15
15
|
const singleSelectColumn = {
|
|
16
|
+
// Build our singleSelecter column
|
|
16
17
|
id: "singleSelecter",
|
|
18
|
+
// Make sure it has an ID
|
|
19
|
+
// The header doesn't need anything for single selection
|
|
17
20
|
Header: () => /* @__PURE__ */ jsx("div", {}),
|
|
18
21
|
Cell: ({ cell, row, isRowSelected, ctx }) => {
|
|
19
22
|
const {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../src/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useCallback } from 'react';\nimport { DSControlledRadio } from '@elliemae/ds-controlled-form';\nimport { styled } from '@elliemae/ds-system';\nimport type { TypescriptColumn } from '../../../types/props';\nimport { DATA_TESTID } from '../../../configs/constants';\n\nconst CenteredContent = styled.div`\n display: flex;\n height: 100%;\n width: 100%;\n justify-content: center;\n align-items: center;\n`;\n\nconst stopThePropagation = (e: React.MouseEvent | React.KeyboardEvent) => e.stopPropagation();\n\nexport const singleSelectColumn: TypescriptColumn<HTMLInputElement> = {\n // Build our singleSelecter column\n id: 'singleSelecter', // Make sure it has an ID\n // The header doesn't need anything for single selection\n Header: () => <div />,\n Cell: ({ cell, row, isRowSelected, ctx }) => {\n const {\n tableProps: { onSelectionChange, selection, disabledRows },\n } = ctx;\n const { uid } = row;\n const selectedState = !!selection?.[uid];\n\n const onChangeHandler = useCallback(\n (newValue: string, e: React.ChangeEvent) => {\n // in single select we only allow one item to be selected\n onSelectionChange({ [uid]: !selectedState }, uid, e);\n },\n [onSelectionChange, selectedState, uid],\n );\n\n return (\n <CenteredContent onClick={stopThePropagation} onKeyDown={stopThePropagation}>\n <DSControlledRadio\n aria-checked={selectedState}\n aria-disabled={disabledRows[row.uid]}\n title=\"Toggle row selected\"\n aria-label=\"Toggle row selected\"\n checked={selectedState}\n onChange={onChangeHandler}\n data-testid={DATA_TESTID.DATA_TABLE_RADIO}\n disabled={disabledRows[row.uid]}\n innerRef={cell.ref}\n value={uid}\n tabIndex={isRowSelected ? 0 : -1}\n />\n </CenteredContent>\n );\n },\n textWrap: 'wrap',\n width: 32,\n padding: 4,\n canResize: false,\n isFocuseable: false,\n disableDnD: true,\n};\n"],
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;ACoBP;AApBhB,SAAgB,mBAAmB;AACnC,SAAS,yBAAyB;AAClC,SAAS,cAAc;AAEvB,SAAS,mBAAmB;AAE5B,MAAM,kBAAkB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQ/B,MAAM,qBAAqB,CAAC,MAA8C,EAAE,gBAAgB;AAErF,MAAM,qBAAyD;AAAA,EAEpE,IAAI;AAAA,EAEJ,QAAQ,MAAM,oBAAC,SAAI;AAAA,EACnB,MAAM,CAAC,EAAE,MAAM,KAAK,eAAe,IAAI,MAAM;AAC3C,UAAM;AAAA,MACJ,YAAY,EAAE,mBAAmB,WAAW,aAAa;AAAA,IAC3D,IAAI;AACJ,UAAM,EAAE,IAAI,IAAI;AAChB,UAAM,gBAAgB,CAAC,CAAC,YAAY;
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useCallback } from 'react';\nimport { DSControlledRadio } from '@elliemae/ds-controlled-form';\nimport { styled } from '@elliemae/ds-system';\nimport type { TypescriptColumn } from '../../../types/props.js';\nimport { DATA_TESTID } from '../../../configs/constants.js';\n\nconst CenteredContent = styled.div`\n display: flex;\n height: 100%;\n width: 100%;\n justify-content: center;\n align-items: center;\n`;\n\nconst stopThePropagation = (e: React.MouseEvent | React.KeyboardEvent) => e.stopPropagation();\n\nexport const singleSelectColumn: TypescriptColumn<HTMLInputElement> = {\n // Build our singleSelecter column\n id: 'singleSelecter', // Make sure it has an ID\n // The header doesn't need anything for single selection\n Header: () => <div />,\n Cell: ({ cell, row, isRowSelected, ctx }) => {\n const {\n tableProps: { onSelectionChange, selection, disabledRows },\n } = ctx;\n const { uid } = row;\n const selectedState = !!selection?.[uid];\n\n const onChangeHandler = useCallback(\n (newValue: string, e: React.ChangeEvent) => {\n // in single select we only allow one item to be selected\n onSelectionChange({ [uid]: !selectedState }, uid, e);\n },\n [onSelectionChange, selectedState, uid],\n );\n\n return (\n <CenteredContent onClick={stopThePropagation} onKeyDown={stopThePropagation}>\n <DSControlledRadio\n aria-checked={selectedState}\n aria-disabled={disabledRows[row.uid]}\n title=\"Toggle row selected\"\n aria-label=\"Toggle row selected\"\n checked={selectedState}\n onChange={onChangeHandler}\n data-testid={DATA_TESTID.DATA_TABLE_RADIO}\n disabled={disabledRows[row.uid]}\n innerRef={cell.ref}\n value={uid}\n tabIndex={isRowSelected ? 0 : -1}\n />\n </CenteredContent>\n );\n },\n textWrap: 'wrap',\n width: 32,\n padding: 4,\n canResize: false,\n isFocuseable: false,\n disableDnD: true,\n};\n"],
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;ACoBP;AApBhB,SAAgB,mBAAmB;AACnC,SAAS,yBAAyB;AAClC,SAAS,cAAc;AAEvB,SAAS,mBAAmB;AAE5B,MAAM,kBAAkB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQ/B,MAAM,qBAAqB,CAAC,MAA8C,EAAE,gBAAgB;AAErF,MAAM,qBAAyD;AAAA;AAAA,EAEpE,IAAI;AAAA;AAAA;AAAA,EAEJ,QAAQ,MAAM,oBAAC,SAAI;AAAA,EACnB,MAAM,CAAC,EAAE,MAAM,KAAK,eAAe,IAAI,MAAM;AAC3C,UAAM;AAAA,MACJ,YAAY,EAAE,mBAAmB,WAAW,aAAa;AAAA,IAC3D,IAAI;AACJ,UAAM,EAAE,IAAI,IAAI;AAChB,UAAM,gBAAgB,CAAC,CAAC,YAAY,GAAG;AAEvC,UAAM,kBAAkB;AAAA,MACtB,CAAC,UAAkB,MAAyB;AAE1C,0BAAkB,EAAE,CAAC,GAAG,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC;AAAA,MACrD;AAAA,MACA,CAAC,mBAAmB,eAAe,GAAG;AAAA,IACxC;AAEA,WACE,oBAAC,mBAAgB,SAAS,oBAAoB,WAAW,oBACvD;AAAA,MAAC;AAAA;AAAA,QACC,gBAAc;AAAA,QACd,iBAAe,aAAa,IAAI,GAAG;AAAA,QACnC,OAAM;AAAA,QACN,cAAW;AAAA,QACX,SAAS;AAAA,QACT,UAAU;AAAA,QACV,eAAa,YAAY;AAAA,QACzB,UAAU,aAAa,IAAI,GAAG;AAAA,QAC9B,UAAU,KAAK;AAAA,QACf,OAAO;AAAA,QACP,UAAU,gBAAgB,IAAI;AAAA;AAAA,IAChC,GACF;AAAA,EAEJ;AAAA,EACA,UAAU;AAAA,EACV,OAAO;AAAA,EACP,SAAS;AAAA,EACT,WAAW;AAAA,EACX,cAAc;AAAA,EACd,YAAY;AACd;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import { actionColumn } from "./ColumnAction/ColumnAction";
|
|
3
|
-
import { expandRowColumn } from "./ColumnExpand/ColumnExpand";
|
|
4
|
-
import { multiSelectColumn } from "./ColumnSelectMultiple/ColumnSelectMultiple";
|
|
5
|
-
import { singleSelectColumn } from "./ColumnSelectSingle/ColumnSelectSingle";
|
|
6
|
-
import { dragHandleColumn } from "./ColumnDragHandle/ColumnDragHandle";
|
|
2
|
+
import { actionColumn } from "./ColumnAction/ColumnAction.js";
|
|
3
|
+
import { expandRowColumn } from "./ColumnExpand/ColumnExpand.js";
|
|
4
|
+
import { multiSelectColumn } from "./ColumnSelectMultiple/ColumnSelectMultiple.js";
|
|
5
|
+
import { singleSelectColumn } from "./ColumnSelectSingle/ColumnSelectSingle.js";
|
|
6
|
+
import { dragHandleColumn } from "./ColumnDragHandle/ColumnDragHandle.js";
|
|
7
7
|
const INTERNAL_COLUMNS = ["rowActions", "expander", "multiSelecter", "singleSelecter", "dragHandleColumn"];
|
|
8
8
|
export {
|
|
9
9
|
INTERNAL_COLUMNS,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/addons/Columns/index.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export { actionColumn } from './ColumnAction/ColumnAction';\nexport { expandRowColumn } from './ColumnExpand/ColumnExpand';\nexport { multiSelectColumn } from './ColumnSelectMultiple/ColumnSelectMultiple';\nexport { singleSelectColumn } from './ColumnSelectSingle/ColumnSelectSingle';\nexport { dragHandleColumn } from './ColumnDragHandle/ColumnDragHandle';\n\nexport const INTERNAL_COLUMNS = ['rowActions', 'expander', 'multiSelecter', 'singleSelecter', 'dragHandleColumn'];\n"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export { actionColumn } from './ColumnAction/ColumnAction.js';\nexport { expandRowColumn } from './ColumnExpand/ColumnExpand.js';\nexport { multiSelectColumn } from './ColumnSelectMultiple/ColumnSelectMultiple.js';\nexport { singleSelectColumn } from './ColumnSelectSingle/ColumnSelectSingle.js';\nexport { dragHandleColumn } from './ColumnDragHandle/ColumnDragHandle.js';\n\nexport const INTERNAL_COLUMNS = ['rowActions', 'expander', 'multiSelecter', 'singleSelecter', 'dragHandleColumn'];\n"],
|
|
5
5
|
"mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,oBAAoB;AAC7B,SAAS,uBAAuB;AAChC,SAAS,yBAAyB;AAClC,SAAS,0BAA0B;AACnC,SAAS,wBAAwB;AAE1B,MAAM,mBAAmB,CAAC,cAAc,YAAY,iBAAiB,kBAAkB,kBAAkB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,8 +2,8 @@ import * as React from "react";
|
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
import { useContext, useState, useCallback, useMemo } from "react";
|
|
4
4
|
import { DSComboBox } from "@elliemae/ds-controlled-form";
|
|
5
|
-
import { EditableCell } from "../../../exported-related";
|
|
6
|
-
import { DataTableContext } from "../../../DataTableContext";
|
|
5
|
+
import { EditableCell } from "../../../exported-related/index.js";
|
|
6
|
+
import { DataTableContext } from "../../../DataTableContext.js";
|
|
7
7
|
const ComboboxEditableCell = (props) => {
|
|
8
8
|
const { cell, DefaultCellRender, isRowSelected } = props;
|
|
9
9
|
const {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../src/addons/Editables/ComboboxEditableCell/ComboboxEditableCell.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable jsx-a11y/no-autofocus */\nimport React, { useContext, useState, useCallback, useMemo } from 'react';\nimport { DSComboBox } from '@elliemae/ds-controlled-form';\nimport { EditableCell } from '../../../exported-related';\nimport { DataTableContext } from '../../../DataTableContext';\n\nexport const ComboboxEditableCell: React.ComponentType<any> = (props) => {\n const { cell, DefaultCellRender, isRowSelected } = props;\n\n const {\n tableProps: { onCellValueChange },\n flattenedData,\n } = useContext(DataTableContext);\n\n const cellValue = useMemo(() => cell.value, [cell.value]);\n const columnId = useMemo(() => cell.column.id, [cell.column.id]);\n\n const [value, setValue] = useState({\n dsId: cellValue,\n type: 'option',\n value: cellValue,\n label: cellValue,\n });\n\n const uniqueOptions = useMemo(() => {\n if (cell.column.editOptions) return cell.column.editOptions;\n const uniqueValuesMap: Record<string, boolean> = {};\n return flattenedData.reduce((optionsSoFar, currRow) => {\n const currValue = currRow.original[columnId] as string;\n if (!uniqueValuesMap[currValue]) {\n optionsSoFar.push({ dsId: currValue, type: 'option', value: currValue, label: currValue });\n uniqueValuesMap[currValue] = true;\n }\n return optionsSoFar;\n }, [] as { dsId: string; type: string; value: string; label: string }[]);\n }, [flattenedData, columnId]);\n\n const [currentOptions, setCurrentOptions] = useState(uniqueOptions);\n\n const handleOnBlur = useCallback(() => {\n const property = columnId;\n onCellValueChange({ value: value?.value, property, rowIndex: cell.row.index });\n }, [columnId, onCellValueChange, value?.value, cell]);\n\n return (\n <EditableCell\n StandardRender={DefaultCellRender}\n EditableRenderer={\n <DSComboBox\n selectedValues={value}\n autoFocus\n withoutPortal={false}\n onBlur={handleOnBlur}\n onChange={setValue}\n allOptions={uniqueOptions}\n onFilter={setCurrentOptions}\n filteredOptions={currentOptions}\n />\n }\n cell={cell}\n isRowSelected={isRowSelected}\n />\n );\n};\n"],
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;ACgDf;AA/CR,SAAgB,YAAY,UAAU,aAAa,eAAe;AAClE,SAAS,kBAAkB;AAC3B,SAAS,oBAAoB;AAC7B,SAAS,wBAAwB;AAE1B,MAAM,uBAAiD,CAAC,UAAU;AACvE,QAAM,EAAE,MAAM,mBAAmB,cAAc,IAAI;AAEnD,QAAM;AAAA,IACJ,YAAY,EAAE,kBAAkB;AAAA,IAChC;AAAA,EACF,IAAI,WAAW,gBAAgB;AAE/B,QAAM,YAAY,QAAQ,MAAM,KAAK,OAAO,CAAC,KAAK,KAAK,CAAC;AACxD,QAAM,WAAW,QAAQ,MAAM,KAAK,OAAO,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC;AAE/D,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS;AAAA,IACjC,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,EACT,CAAC;AAED,QAAM,gBAAgB,QAAQ,MAAM;AAClC,QAAI,KAAK,OAAO;AAAa,aAAO,KAAK,OAAO;AAChD,UAAM,kBAA2C,CAAC;AAClD,WAAO,cAAc,OAAO,CAAC,cAAc,YAAY;AACrD,YAAM,YAAY,QAAQ,SAAS;
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable jsx-a11y/no-autofocus */\nimport React, { useContext, useState, useCallback, useMemo } from 'react';\nimport { DSComboBox } from '@elliemae/ds-controlled-form';\nimport { EditableCell } from '../../../exported-related/index.js';\nimport { DataTableContext } from '../../../DataTableContext.js';\n\nexport const ComboboxEditableCell: React.ComponentType<any> = (props) => {\n const { cell, DefaultCellRender, isRowSelected } = props;\n\n const {\n tableProps: { onCellValueChange },\n flattenedData,\n } = useContext(DataTableContext);\n\n const cellValue = useMemo(() => cell.value, [cell.value]);\n const columnId = useMemo(() => cell.column.id, [cell.column.id]);\n\n const [value, setValue] = useState({\n dsId: cellValue,\n type: 'option',\n value: cellValue,\n label: cellValue,\n });\n\n const uniqueOptions = useMemo(() => {\n if (cell.column.editOptions) return cell.column.editOptions;\n const uniqueValuesMap: Record<string, boolean> = {};\n return flattenedData.reduce((optionsSoFar, currRow) => {\n const currValue = currRow.original[columnId] as string;\n if (!uniqueValuesMap[currValue]) {\n optionsSoFar.push({ dsId: currValue, type: 'option', value: currValue, label: currValue });\n uniqueValuesMap[currValue] = true;\n }\n return optionsSoFar;\n }, [] as { dsId: string; type: string; value: string; label: string }[]);\n }, [flattenedData, columnId]);\n\n const [currentOptions, setCurrentOptions] = useState(uniqueOptions);\n\n const handleOnBlur = useCallback(() => {\n const property = columnId;\n onCellValueChange({ value: value?.value, property, rowIndex: cell.row.index });\n }, [columnId, onCellValueChange, value?.value, cell]);\n\n return (\n <EditableCell\n StandardRender={DefaultCellRender}\n EditableRenderer={\n <DSComboBox\n selectedValues={value}\n autoFocus\n withoutPortal={false}\n onBlur={handleOnBlur}\n onChange={setValue}\n allOptions={uniqueOptions}\n onFilter={setCurrentOptions}\n filteredOptions={currentOptions}\n />\n }\n cell={cell}\n isRowSelected={isRowSelected}\n />\n );\n};\n"],
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;ACgDf;AA/CR,SAAgB,YAAY,UAAU,aAAa,eAAe;AAClE,SAAS,kBAAkB;AAC3B,SAAS,oBAAoB;AAC7B,SAAS,wBAAwB;AAE1B,MAAM,uBAAiD,CAAC,UAAU;AACvE,QAAM,EAAE,MAAM,mBAAmB,cAAc,IAAI;AAEnD,QAAM;AAAA,IACJ,YAAY,EAAE,kBAAkB;AAAA,IAChC;AAAA,EACF,IAAI,WAAW,gBAAgB;AAE/B,QAAM,YAAY,QAAQ,MAAM,KAAK,OAAO,CAAC,KAAK,KAAK,CAAC;AACxD,QAAM,WAAW,QAAQ,MAAM,KAAK,OAAO,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC;AAE/D,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS;AAAA,IACjC,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,EACT,CAAC;AAED,QAAM,gBAAgB,QAAQ,MAAM;AAClC,QAAI,KAAK,OAAO;AAAa,aAAO,KAAK,OAAO;AAChD,UAAM,kBAA2C,CAAC;AAClD,WAAO,cAAc,OAAO,CAAC,cAAc,YAAY;AACrD,YAAM,YAAY,QAAQ,SAAS,QAAQ;AAC3C,UAAI,CAAC,gBAAgB,SAAS,GAAG;AAC/B,qBAAa,KAAK,EAAE,MAAM,WAAW,MAAM,UAAU,OAAO,WAAW,OAAO,UAAU,CAAC;AACzF,wBAAgB,SAAS,IAAI;AAAA,MAC/B;AACA,aAAO;AAAA,IACT,GAAG,CAAC,CAAmE;AAAA,EACzE,GAAG,CAAC,eAAe,QAAQ,CAAC;AAE5B,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAAS,aAAa;AAElE,QAAM,eAAe,YAAY,MAAM;AACrC,UAAM,WAAW;AACjB,sBAAkB,EAAE,OAAO,OAAO,OAAO,UAAU,UAAU,KAAK,IAAI,MAAM,CAAC;AAAA,EAC/E,GAAG,CAAC,UAAU,mBAAmB,OAAO,OAAO,IAAI,CAAC;AAEpD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,gBAAgB;AAAA,MAChB,kBACE;AAAA,QAAC;AAAA;AAAA,UACC,gBAAgB;AAAA,UAChB,WAAS;AAAA,UACT,eAAe;AAAA,UACf,QAAQ;AAAA,UACR,UAAU;AAAA,UACV,YAAY;AAAA,UACZ,UAAU;AAAA,UACV,iBAAiB;AAAA;AAAA,MACnB;AAAA,MAEF;AAAA,MACA;AAAA;AAAA,EACF;AAEJ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
import { useContext, useState, useCallback } from "react";
|
|
4
|
-
import { EditableCell } from "../../../exported-related";
|
|
5
|
-
import { DataTableContext } from "../../../DataTableContext";
|
|
4
|
+
import { EditableCell } from "../../../exported-related/index.js";
|
|
5
|
+
import { DataTableContext } from "../../../DataTableContext.js";
|
|
6
6
|
const DateEditableCell = (props) => {
|
|
7
7
|
const { cell, DefaultCellRender } = props;
|
|
8
8
|
const {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../src/addons/Editables/DateEditableCell/DateEditableCell.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable jsx-a11y/no-autofocus */\nimport React, { useContext, useState, useCallback } from 'react';\nimport { EditableCell } from '../../../exported-related';\nimport { DataTableContext } from '../../../DataTableContext';\n\nexport const DateEditableCell = (props) => {\n const { cell, DefaultCellRender } = props;\n\n const {\n tableProps: { onCellValueChange },\n } = useContext(DataTableContext);\n\n const [value, setValue] = useState(cell.value);\n\n const handleOnChange = useCallback(\n (e) => {\n const {\n target: { value: tValue },\n } = e;\n setValue(tValue);\n },\n [onCellValueChange, value],\n );\n const handleOnBlur = useCallback(() => {\n const property = cell.column.id;\n const rowIndex = cell.row.index;\n onCellValueChange({ value, property, rowIndex });\n }, [value, onCellValueChange, cell.column.id, cell.row.index]);\n\n return (\n <EditableCell\n StandardRender={DefaultCellRender}\n EditableRenderer={<input value={value} onChange={handleOnChange} onBlur={handleOnBlur} autoFocus />}\n cell={cell}\n />\n );\n};\n"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable jsx-a11y/no-autofocus */\nimport React, { useContext, useState, useCallback } from 'react';\nimport { EditableCell } from '../../../exported-related/index.js';\nimport { DataTableContext } from '../../../DataTableContext.js';\n\nexport const DateEditableCell = (props) => {\n const { cell, DefaultCellRender } = props;\n\n const {\n tableProps: { onCellValueChange },\n } = useContext(DataTableContext);\n\n const [value, setValue] = useState(cell.value);\n\n const handleOnChange = useCallback(\n (e) => {\n const {\n target: { value: tValue },\n } = e;\n setValue(tValue);\n },\n [onCellValueChange, value],\n );\n const handleOnBlur = useCallback(() => {\n const property = cell.column.id;\n const rowIndex = cell.row.index;\n onCellValueChange({ value, property, rowIndex });\n }, [value, onCellValueChange, cell.column.id, cell.row.index]);\n\n return (\n <EditableCell\n StandardRender={DefaultCellRender}\n EditableRenderer={<input value={value} onChange={handleOnChange} onBlur={handleOnBlur} autoFocus />}\n cell={cell}\n />\n );\n};\n"],
|
|
5
5
|
"mappings": "AAAA,YAAY,WAAW;ACgCC;AA/BxB,SAAgB,YAAY,UAAU,mBAAmB;AACzD,SAAS,oBAAoB;AAC7B,SAAS,wBAAwB;AAE1B,MAAM,mBAAmB,CAAC,UAAU;AACzC,QAAM,EAAE,MAAM,kBAAkB,IAAI;AAEpC,QAAM;AAAA,IACJ,YAAY,EAAE,kBAAkB;AAAA,EAClC,IAAI,WAAW,gBAAgB;AAE/B,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,KAAK,KAAK;AAE7C,QAAM,iBAAiB;AAAA,IACrB,CAAC,MAAM;AACL,YAAM;AAAA,QACJ,QAAQ,EAAE,OAAO,OAAO;AAAA,MAC1B,IAAI;AACJ,eAAS,MAAM;AAAA,IACjB;AAAA,IACA,CAAC,mBAAmB,KAAK;AAAA,EAC3B;AACA,QAAM,eAAe,YAAY,MAAM;AACrC,UAAM,WAAW,KAAK,OAAO;AAC7B,UAAM,WAAW,KAAK,IAAI;AAC1B,sBAAkB,EAAE,OAAO,UAAU,SAAS,CAAC;AAAA,EACjD,GAAG,CAAC,OAAO,mBAAmB,KAAK,OAAO,IAAI,KAAK,IAAI,KAAK,CAAC;AAE7D,SACE;AAAA,IAAC;AAAA;AAAA,MACC,gBAAgB;AAAA,MAChB,kBAAkB,oBAAC,WAAM,OAAc,UAAU,gBAAgB,QAAQ,cAAc,WAAS,MAAC;AAAA,MACjG;AAAA;AAAA,EACF;AAEJ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,8 +2,8 @@ import * as React from "react";
|
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
import { useContext, useState, useCallback } from "react";
|
|
4
4
|
import { styled } from "@elliemae/ds-system";
|
|
5
|
-
import { EditableCell } from "../../../exported-related";
|
|
6
|
-
import { DataTableContext } from "../../../DataTableContext";
|
|
5
|
+
import { EditableCell } from "../../../exported-related/index.js";
|
|
6
|
+
import { DataTableContext } from "../../../DataTableContext.js";
|
|
7
7
|
const StyledInput = styled.input`
|
|
8
8
|
outline: none;
|
|
9
9
|
:focus {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../src/addons/Editables/TextEditableCell/TextEditableCell.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable jsx-a11y/no-autofocus */\nimport React, { useContext, useState, useRef, useCallback } from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { EditableCell } from '../../../exported-related';\nimport { DataTableContext } from '../../../DataTableContext';\n\nconst StyledInput = styled.input`\n outline: none;\n :focus {\n border: 2px solid ${(props) => props.theme.colors.brand[700]};\n }\n max-width: 100%;\n`;\n\nexport const TextEditableCell: React.ComponentType<any> = (props) => {\n const { cell, DefaultCellRender, isRowSelected } = props;\n const {\n tableProps: { onCellValueChange },\n } = useContext(DataTableContext);\n\n const [value, setValue] = useState<string>(cell.value);\n\n const handleOnChange = useCallback((e) => {\n const {\n target: { value: tValue },\n } = e;\n setValue(tValue);\n }, []);\n\n const handleOnBlur = useCallback(() => {\n const property = cell.column.id;\n const rowIndex = cell.row.index;\n onCellValueChange({ value, property, rowIndex });\n }, [value, onCellValueChange, cell.column.id, cell.row.index]);\n\n const handleOnKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.code === 'Enter') {\n cell.ref.current.focus();\n // will exec on blur callback from input and save new value\n }\n if (e.code === 'Escape') {\n setValue(cell.value);\n const auxRef = cell.ref.current;\n // this prevent the on blur\n setTimeout(() => {\n auxRef.focus();\n });\n }\n },\n [cell],\n );\n return (\n <EditableCell\n StandardRender={DefaultCellRender}\n EditableRenderer={\n <StyledInput\n value={value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n onBlur={handleOnBlur}\n autoFocus\n />\n }\n cell={cell}\n setValue={setValue}\n isRowSelected={isRowSelected}\n />\n );\n};\n"],
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;ACwDf;AAvDR,SAAgB,YAAY,UAAkB,mBAAmB;AACjE,SAAS,cAAc;AACvB,SAAS,oBAAoB;AAC7B,SAAS,wBAAwB;AAEjC,MAAM,cAAc,OAAO;AAAA;AAAA;AAAA,wBAGH,CAAC,UAAU,MAAM,MAAM,OAAO,MAAM;AAAA;AAAA;AAAA;
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable jsx-a11y/no-autofocus */\nimport React, { useContext, useState, useRef, useCallback } from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { EditableCell } from '../../../exported-related/index.js';\nimport { DataTableContext } from '../../../DataTableContext.js';\n\nconst StyledInput = styled.input`\n outline: none;\n :focus {\n border: 2px solid ${(props) => props.theme.colors.brand[700]};\n }\n max-width: 100%;\n`;\n\nexport const TextEditableCell: React.ComponentType<any> = (props) => {\n const { cell, DefaultCellRender, isRowSelected } = props;\n const {\n tableProps: { onCellValueChange },\n } = useContext(DataTableContext);\n\n const [value, setValue] = useState<string>(cell.value);\n\n const handleOnChange = useCallback((e) => {\n const {\n target: { value: tValue },\n } = e;\n setValue(tValue);\n }, []);\n\n const handleOnBlur = useCallback(() => {\n const property = cell.column.id;\n const rowIndex = cell.row.index;\n onCellValueChange({ value, property, rowIndex });\n }, [value, onCellValueChange, cell.column.id, cell.row.index]);\n\n const handleOnKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.code === 'Enter') {\n cell.ref.current.focus();\n // will exec on blur callback from input and save new value\n }\n if (e.code === 'Escape') {\n setValue(cell.value);\n const auxRef = cell.ref.current;\n // this prevent the on blur\n setTimeout(() => {\n auxRef.focus();\n });\n }\n },\n [cell],\n );\n return (\n <EditableCell\n StandardRender={DefaultCellRender}\n EditableRenderer={\n <StyledInput\n value={value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n onBlur={handleOnBlur}\n autoFocus\n />\n }\n cell={cell}\n setValue={setValue}\n isRowSelected={isRowSelected}\n />\n );\n};\n"],
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;ACwDf;AAvDR,SAAgB,YAAY,UAAkB,mBAAmB;AACjE,SAAS,cAAc;AACvB,SAAS,oBAAoB;AAC7B,SAAS,wBAAwB;AAEjC,MAAM,cAAc,OAAO;AAAA;AAAA;AAAA,wBAGH,CAAC,UAAU,MAAM,MAAM,OAAO,MAAM,GAAG;AAAA;AAAA;AAAA;AAKxD,MAAM,mBAA6C,CAAC,UAAU;AACnE,QAAM,EAAE,MAAM,mBAAmB,cAAc,IAAI;AACnD,QAAM;AAAA,IACJ,YAAY,EAAE,kBAAkB;AAAA,EAClC,IAAI,WAAW,gBAAgB;AAE/B,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAiB,KAAK,KAAK;AAErD,QAAM,iBAAiB,YAAY,CAAC,MAAM;AACxC,UAAM;AAAA,MACJ,QAAQ,EAAE,OAAO,OAAO;AAAA,IAC1B,IAAI;AACJ,aAAS,MAAM;AAAA,EACjB,GAAG,CAAC,CAAC;AAEL,QAAM,eAAe,YAAY,MAAM;AACrC,UAAM,WAAW,KAAK,OAAO;AAC7B,UAAM,WAAW,KAAK,IAAI;AAC1B,sBAAkB,EAAE,OAAO,UAAU,SAAS,CAAC;AAAA,EACjD,GAAG,CAAC,OAAO,mBAAmB,KAAK,OAAO,IAAI,KAAK,IAAI,KAAK,CAAC;AAE7D,QAAM,kBAAkB;AAAA,IACtB,CAAC,MAA2B;AAC1B,UAAI,EAAE,SAAS,SAAS;AACtB,aAAK,IAAI,QAAQ,MAAM;AAAA,MAEzB;AACA,UAAI,EAAE,SAAS,UAAU;AACvB,iBAAS,KAAK,KAAK;AACnB,cAAM,SAAS,KAAK,IAAI;AAExB,mBAAW,MAAM;AACf,iBAAO,MAAM;AAAA,QACf,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA,CAAC,IAAI;AAAA,EACP;AACA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,gBAAgB;AAAA,MAChB,kBACE;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,WAAW;AAAA,UACX,UAAU;AAAA,UACV,QAAQ;AAAA,UACR,WAAS;AAAA;AAAA,MACX;AAAA,MAEF;AAAA,MACA;AAAA,MACA;AAAA;AAAA,EACF;AAEJ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import { TextEditableCell } from "./TextEditableCell/TextEditableCell";
|
|
3
|
-
import { ComboboxEditableCell } from "./ComboboxEditableCell/ComboboxEditableCell";
|
|
2
|
+
import { TextEditableCell } from "./TextEditableCell/TextEditableCell.js";
|
|
3
|
+
import { ComboboxEditableCell } from "./ComboboxEditableCell/ComboboxEditableCell.js";
|
|
4
4
|
const outOfTheBoxEditables = {
|
|
5
5
|
"ds-edit-text": { EditableComponent: TextEditableCell },
|
|
6
6
|
"ds-edit-combobox": {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/addons/Editables/index.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import type React from 'react';\nimport { TextEditableCell } from './TextEditableCell/TextEditableCell';\nimport { ComboboxEditableCell } from './ComboboxEditableCell/ComboboxEditableCell';\n\nexport const outOfTheBoxEditables: Record<string, { EditableComponent: React.ComponentType<any> }> = {\n 'ds-edit-text': { EditableComponent: TextEditableCell },\n 'ds-edit-combobox': {\n EditableComponent: ComboboxEditableCell,\n },\n};\n"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import type React from 'react';\nimport { TextEditableCell } from './TextEditableCell/TextEditableCell.js';\nimport { ComboboxEditableCell } from './ComboboxEditableCell/ComboboxEditableCell.js';\n\nexport const outOfTheBoxEditables: Record<string, { EditableComponent: React.ComponentType<any> }> = {\n 'ds-edit-text': { EditableComponent: TextEditableCell },\n 'ds-edit-combobox': {\n EditableComponent: ComboboxEditableCell,\n },\n};\n"],
|
|
5
5
|
"mappings": "AAAA,YAAY,WAAW;ACCvB,SAAS,wBAAwB;AACjC,SAAS,4BAA4B;AAE9B,MAAM,uBAAwF;AAAA,EACnG,gBAAgB,EAAE,mBAAmB,iBAAiB;AAAA,EACtD,oBAAoB;AAAA,IAClB,mBAAmB;AAAA,EACrB;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -5,8 +5,8 @@ import { Grid } from "@elliemae/ds-grid";
|
|
|
5
5
|
import { DSInputMask, MASK_TYPES } from "@elliemae/ds-form";
|
|
6
6
|
import { DSFormLayoutBlockItem } from "@elliemae/ds-form-layout-blocks";
|
|
7
7
|
import { SearchXsmall } from "@elliemae/ds-icons";
|
|
8
|
-
import { FilterPopover, FILTER_TYPES } from "../../../../exported-related";
|
|
9
|
-
import { DATA_TESTID } from "../../../../configs/constants";
|
|
8
|
+
import { FilterPopover, FILTER_TYPES } from "../../../../exported-related/index.js";
|
|
9
|
+
import { DATA_TESTID } from "../../../../configs/constants.js";
|
|
10
10
|
const opts = {
|
|
11
11
|
prefix: "",
|
|
12
12
|
suffix: "",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../../src/addons/Filters/Components/CurrencyRangeFilter/index.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useRef, useEffect, useCallback } from 'react';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSInputMask, MASK_TYPES } from '@elliemae/ds-form';\nimport { DSFormLayoutBlockItem } from '@elliemae/ds-form-layout-blocks';\nimport { SearchXsmall } from '@elliemae/ds-icons';\nimport { FilterPopover, FILTER_TYPES } from '../../../../exported-related';\nimport type { FilterProps } from '../../../../types/props';\nimport { DATA_TESTID } from '../../../../configs/constants';\n\nconst opts = {\n prefix: '',\n suffix: '',\n allowDecimal: true,\n decimalLimit: 2,\n includeThousandsSeparator: false,\n requireDecimal: true,\n allowNegative: true,\n};\n\nexport const CurrencyRangeFilter: React.ComponentType<FilterProps> = (props) => {\n const { column, filterValue = { from: null, to: null }, reduxHeader, patchHeader, onValueChange, innerRef } = props;\n\n const ref = useRef();\n const shouldFocus = useRef();\n const handleFromChange = (e) => {\n const nextValue = {\n ...filterValue,\n from: e.target.value,\n };\n onValueChange(FILTER_TYPES.CURRENCY_RANGE, nextValue);\n };\n const handleToChange = (e) => {\n const nextValue = {\n ...filterValue,\n to: e.target.value,\n };\n onValueChange(FILTER_TYPES.CURRENCY_RANGE, nextValue);\n };\n\n // workaround to close menu with esc key since DSInputMask has stoppropagation on key down\n const closePopover = (e) => {\n if (e.code === 'Escape') {\n patchHeader(column.id, { hideFilterMenu: true, hideFilterButton: false });\n innerRef.current.focus();\n }\n };\n\n const handleRef = useCallback(\n (newRef) => {\n if (ref.current) ref.current = newRef;\n if (shouldFocus.current) {\n setTimeout(() => {\n newRef?.focus();\n shouldFocus.current = false;\n });\n }\n },\n [shouldFocus],\n );\n\n useEffect(() => {\n if (reduxHeader?.hideFilterMenu) {\n shouldFocus.current = true;\n }\n }, [reduxHeader?.hideFilterMenu]);\n\n const idPreffix = 'datatable-currency-range';\n return (\n <FilterPopover\n reduxHeader={reduxHeader}\n column={column}\n columnId={column.id}\n menuContent={\n <Grid\n data-testid={DATA_TESTID.DATA_TABLE_CURRENCY_RANGE_CONTROLLER}\n gutter=\"xxxs\"\n padding=\"xxs\"\n cols={['auto', 'auto']}\n style={{ background: 'white' }}\n >\n <DSFormLayoutBlockItem label=\"Min\" inputID={`${idPreffix}-min-${column.id}`}>\n <DSInputMask\n containerProps={{ style: { textAlign: 'right' } }}\n id={`${idPreffix}-min-${column.id}`}\n value={`${filterValue?.from ?? ''}`}\n onChange={handleFromChange}\n placeholder=\"0.00\"\n mask={(number) => MASK_TYPES.NUMBER(opts)(number)}\n innerRef={handleRef}\n onKeyDown={(e) => {\n closePopover(e);\n }}\n />\n </DSFormLayoutBlockItem>\n <DSFormLayoutBlockItem label=\"Max\" inputID={`${idPreffix}-max-${column.id}`}>\n <DSInputMask\n containerProps={{ style: { textAlign: 'right' } }}\n id={`${idPreffix}-max-${column.id}`}\n value={`${filterValue?.to ?? ''}`}\n onChange={handleToChange}\n placeholder=\"0.00\"\n mask={(number) => MASK_TYPES.NUMBER(opts)(number)}\n onKeyDown={(e) => {\n closePopover(e);\n }}\n />\n </DSFormLayoutBlockItem>\n </Grid>\n }\n triggerIcon={<SearchXsmall />}\n customStyles={{ width: column.ref?.current?.offsetWidth ?? '0px' }}\n innerRef={innerRef}\n ariaLabel=\"Open Currency Range Filter\"\n />\n );\n};\n"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useRef, useEffect, useCallback } from 'react';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSInputMask, MASK_TYPES } from '@elliemae/ds-form';\nimport { DSFormLayoutBlockItem } from '@elliemae/ds-form-layout-blocks';\nimport { SearchXsmall } from '@elliemae/ds-icons';\nimport { FilterPopover, FILTER_TYPES } from '../../../../exported-related/index.js';\nimport type { FilterProps } from '../../../../types/props.js';\nimport { DATA_TESTID } from '../../../../configs/constants.js';\n\nconst opts = {\n prefix: '',\n suffix: '',\n allowDecimal: true,\n decimalLimit: 2,\n includeThousandsSeparator: false,\n requireDecimal: true,\n allowNegative: true,\n};\n\nexport const CurrencyRangeFilter: React.ComponentType<FilterProps> = (props) => {\n const { column, filterValue = { from: null, to: null }, reduxHeader, patchHeader, onValueChange, innerRef } = props;\n\n const ref = useRef();\n const shouldFocus = useRef();\n const handleFromChange = (e) => {\n const nextValue = {\n ...filterValue,\n from: e.target.value,\n };\n onValueChange(FILTER_TYPES.CURRENCY_RANGE, nextValue);\n };\n const handleToChange = (e) => {\n const nextValue = {\n ...filterValue,\n to: e.target.value,\n };\n onValueChange(FILTER_TYPES.CURRENCY_RANGE, nextValue);\n };\n\n // workaround to close menu with esc key since DSInputMask has stoppropagation on key down\n const closePopover = (e) => {\n if (e.code === 'Escape') {\n patchHeader(column.id, { hideFilterMenu: true, hideFilterButton: false });\n innerRef.current.focus();\n }\n };\n\n const handleRef = useCallback(\n (newRef) => {\n if (ref.current) ref.current = newRef;\n if (shouldFocus.current) {\n setTimeout(() => {\n newRef?.focus();\n shouldFocus.current = false;\n });\n }\n },\n [shouldFocus],\n );\n\n useEffect(() => {\n if (reduxHeader?.hideFilterMenu) {\n shouldFocus.current = true;\n }\n }, [reduxHeader?.hideFilterMenu]);\n\n const idPreffix = 'datatable-currency-range';\n return (\n <FilterPopover\n reduxHeader={reduxHeader}\n column={column}\n columnId={column.id}\n menuContent={\n <Grid\n data-testid={DATA_TESTID.DATA_TABLE_CURRENCY_RANGE_CONTROLLER}\n gutter=\"xxxs\"\n padding=\"xxs\"\n cols={['auto', 'auto']}\n style={{ background: 'white' }}\n >\n <DSFormLayoutBlockItem label=\"Min\" inputID={`${idPreffix}-min-${column.id}`}>\n <DSInputMask\n containerProps={{ style: { textAlign: 'right' } }}\n id={`${idPreffix}-min-${column.id}`}\n value={`${filterValue?.from ?? ''}`}\n onChange={handleFromChange}\n placeholder=\"0.00\"\n mask={(number) => MASK_TYPES.NUMBER(opts)(number)}\n innerRef={handleRef}\n onKeyDown={(e) => {\n closePopover(e);\n }}\n />\n </DSFormLayoutBlockItem>\n <DSFormLayoutBlockItem label=\"Max\" inputID={`${idPreffix}-max-${column.id}`}>\n <DSInputMask\n containerProps={{ style: { textAlign: 'right' } }}\n id={`${idPreffix}-max-${column.id}`}\n value={`${filterValue?.to ?? ''}`}\n onChange={handleToChange}\n placeholder=\"0.00\"\n mask={(number) => MASK_TYPES.NUMBER(opts)(number)}\n onKeyDown={(e) => {\n closePopover(e);\n }}\n />\n </DSFormLayoutBlockItem>\n </Grid>\n }\n triggerIcon={<SearchXsmall />}\n customStyles={{ width: column.ref?.current?.offsetWidth ?? '0px' }}\n innerRef={innerRef}\n ariaLabel=\"Open Currency Range Filter\"\n />\n );\n};\n"],
|
|
5
5
|
"mappings": "AAAA,YAAY,WAAW;ACyEf,SAQI,KARJ;AAzER,SAAgB,QAAQ,WAAW,mBAAmB;AACtD,SAAS,YAAY;AACrB,SAAS,aAAa,kBAAkB;AACxC,SAAS,6BAA6B;AACtC,SAAS,oBAAoB;AAC7B,SAAS,eAAe,oBAAoB;AAE5C,SAAS,mBAAmB;AAE5B,MAAM,OAAO;AAAA,EACX,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,cAAc;AAAA,EACd,2BAA2B;AAAA,EAC3B,gBAAgB;AAAA,EAChB,eAAe;AACjB;AAEO,MAAM,sBAAwD,CAAC,UAAU;AAC9E,QAAM,EAAE,QAAQ,cAAc,EAAE,MAAM,MAAM,IAAI,KAAK,GAAG,aAAa,aAAa,eAAe,SAAS,IAAI;AAE9G,QAAM,MAAM,OAAO;AACnB,QAAM,cAAc,OAAO;AAC3B,QAAM,mBAAmB,CAAC,MAAM;AAC9B,UAAM,YAAY;AAAA,MAChB,GAAG;AAAA,MACH,MAAM,EAAE,OAAO;AAAA,IACjB;AACA,kBAAc,aAAa,gBAAgB,SAAS;AAAA,EACtD;AACA,QAAM,iBAAiB,CAAC,MAAM;AAC5B,UAAM,YAAY;AAAA,MAChB,GAAG;AAAA,MACH,IAAI,EAAE,OAAO;AAAA,IACf;AACA,kBAAc,aAAa,gBAAgB,SAAS;AAAA,EACtD;AAGA,QAAM,eAAe,CAAC,MAAM;AAC1B,QAAI,EAAE,SAAS,UAAU;AACvB,kBAAY,OAAO,IAAI,EAAE,gBAAgB,MAAM,kBAAkB,MAAM,CAAC;AACxE,eAAS,QAAQ,MAAM;AAAA,IACzB;AAAA,EACF;AAEA,QAAM,YAAY;AAAA,IAChB,CAAC,WAAW;AACV,UAAI,IAAI;AAAS,YAAI,UAAU;AAC/B,UAAI,YAAY,SAAS;AACvB,mBAAW,MAAM;AACf,kBAAQ,MAAM;AACd,sBAAY,UAAU;AAAA,QACxB,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA,CAAC,WAAW;AAAA,EACd;AAEA,YAAU,MAAM;AACd,QAAI,aAAa,gBAAgB;AAC/B,kBAAY,UAAU;AAAA,IACxB;AAAA,EACF,GAAG,CAAC,aAAa,cAAc,CAAC;AAEhC,QAAM,YAAY;AAClB,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,UAAU,OAAO;AAAA,MACjB,aACE;AAAA,QAAC;AAAA;AAAA,UACC,eAAa,YAAY;AAAA,UACzB,QAAO;AAAA,UACP,SAAQ;AAAA,UACR,MAAM,CAAC,QAAQ,MAAM;AAAA,UACrB,OAAO,EAAE,YAAY,QAAQ;AAAA,UAE7B;AAAA,gCAAC,yBAAsB,OAAM,OAAM,SAAS,GAAG,iBAAiB,OAAO,MACrE;AAAA,cAAC;AAAA;AAAA,gBACC,gBAAgB,EAAE,OAAO,EAAE,WAAW,QAAQ,EAAE;AAAA,gBAChD,IAAI,GAAG,iBAAiB,OAAO;AAAA,gBAC/B,OAAO,GAAG,aAAa,QAAQ;AAAA,gBAC/B,UAAU;AAAA,gBACV,aAAY;AAAA,gBACZ,MAAM,CAAC,WAAW,WAAW,OAAO,IAAI,EAAE,MAAM;AAAA,gBAChD,UAAU;AAAA,gBACV,WAAW,CAAC,MAAM;AAChB,+BAAa,CAAC;AAAA,gBAChB;AAAA;AAAA,YACF,GACF;AAAA,YACA,oBAAC,yBAAsB,OAAM,OAAM,SAAS,GAAG,iBAAiB,OAAO,MACrE;AAAA,cAAC;AAAA;AAAA,gBACC,gBAAgB,EAAE,OAAO,EAAE,WAAW,QAAQ,EAAE;AAAA,gBAChD,IAAI,GAAG,iBAAiB,OAAO;AAAA,gBAC/B,OAAO,GAAG,aAAa,MAAM;AAAA,gBAC7B,UAAU;AAAA,gBACV,aAAY;AAAA,gBACZ,MAAM,CAAC,WAAW,WAAW,OAAO,IAAI,EAAE,MAAM;AAAA,gBAChD,WAAW,CAAC,MAAM;AAChB,+BAAa,CAAC;AAAA,gBAChB;AAAA;AAAA,YACF,GACF;AAAA;AAAA;AAAA,MACF;AAAA,MAEF,aAAa,oBAAC,gBAAa;AAAA,MAC3B,cAAc,EAAE,OAAO,OAAO,KAAK,SAAS,eAAe,MAAM;AAAA,MACjE;AAAA,MACA,WAAU;AAAA;AAAA,EACZ;AAEJ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -4,8 +4,8 @@ import { useEffect, useCallback, useRef, useState } from "react";
|
|
|
4
4
|
import { DatePicker2 } from "@elliemae/ds-icons";
|
|
5
5
|
import { Grid } from "@elliemae/ds-grid";
|
|
6
6
|
import { DSControlledDateRangePicker } from "@elliemae/ds-controlled-form";
|
|
7
|
-
import { FilterPopover, FILTER_TYPES } from "../../../../exported-related";
|
|
8
|
-
import { DATA_TESTID } from "../../../../configs/constants";
|
|
7
|
+
import { FilterPopover, FILTER_TYPES } from "../../../../exported-related/index.js";
|
|
8
|
+
import { DATA_TESTID } from "../../../../configs/constants.js";
|
|
9
9
|
const emptyFilterValue = { startDate: null, endDate: null };
|
|
10
10
|
const DateRangeFilter = (props) => {
|
|
11
11
|
const {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../../src/addons/Filters/Components/DateRangeFilter/index.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useEffect, useCallback, useRef, useState } from 'react';\nimport { DatePicker2 } from '@elliemae/ds-icons';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSControlledDateRangePicker } from '@elliemae/ds-controlled-form';\nimport { FilterPopover, FILTER_TYPES } from '../../../../exported-related';\nimport type { FilterProps } from '../../../../types/props';\nimport { DATA_TESTID } from '../../../../configs/constants';\n\nconst emptyFilterValue = { startDate: null, endDate: null };\n\nexport const DateRangeFilter: React.ComponentType<FilterProps> = (props) => {\n const {\n column,\n column: { id },\n filterValue = emptyFilterValue,\n onValueChange,\n patchHeaderFilterButtonAndMenu,\n reduxHeader,\n innerRef,\n } = props;\n\n const dateRange = filterValue;\n\n const [startDate, setStartDate] = useState(dateRange.startDate || '');\n const [endDate, setEndDate] = useState(dateRange.endDate || '');\n\n useEffect(() => {\n setStartDate(dateRange.startDate || '');\n setEndDate(dateRange.endDate || '');\n }, [dateRange]);\n\n useEffect(() => {\n if (startDate && endDate && !startDate.includes('_') && !endDate.includes('_')) {\n onValueChange(FILTER_TYPES.DATE_RANGE, { startDate, endDate });\n }\n // We are missing onValueChange on purpose, this is an internal function and won't cause any problems\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [startDate, endDate]);\n\n const ref = useRef();\n const shouldFocus = useRef(true);\n const handleRef = useCallback((newRef) => {\n if (ref.current) ref.current = newRef;\n if (shouldFocus.current) {\n setTimeout(() => {\n newRef?.focus();\n shouldFocus.current = false;\n });\n }\n }, []);\n\n useEffect(() => {\n if (reduxHeader?.hideFilterMenu) {\n shouldFocus.current = true;\n }\n }, [reduxHeader?.hideFilterMenu]);\n\n return (\n <FilterPopover\n reduxHeader={reduxHeader}\n column={column}\n columnId={id}\n menuContent={\n <Grid width=\"260px\" data-testid={DATA_TESTID.DATA_TABLE_DATE_RANGE_CONTROLLER}>\n <Grid p=\"xxs\" style={{ background: 'white' }}>\n <DSControlledDateRangePicker\n fromDate={startDate}\n onFromDateChange={setStartDate}\n toDate={endDate}\n onToDateChange={setEndDate}\n type=\"date-range-inputs\"\n innerRef={handleRef}\n />\n </Grid>\n <Grid\n onKeyDown={(e) =>\n e.code === 'Enter' &&\n setTimeout(() => patchHeaderFilterButtonAndMenu(id, !!(dateRange.startDate || dateRange.endDate)), 0)\n }\n >\n <DSControlledDateRangePicker\n fromDate={startDate}\n onFromDateChange={setStartDate}\n toDate={endDate}\n onToDateChange={setEndDate}\n type=\"date-range-picker-controller-only\"\n />\n </Grid>\n </Grid>\n }\n triggerIcon={<DatePicker2 />}\n innerRef={innerRef}\n ariaLabel=\"Open Date Range Filter\"\n />\n );\n};\n"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useEffect, useCallback, useRef, useState } from 'react';\nimport { DatePicker2 } from '@elliemae/ds-icons';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSControlledDateRangePicker } from '@elliemae/ds-controlled-form';\nimport { FilterPopover, FILTER_TYPES } from '../../../../exported-related/index.js';\nimport type { FilterProps } from '../../../../types/props.js';\nimport { DATA_TESTID } from '../../../../configs/constants.js';\n\nconst emptyFilterValue = { startDate: null, endDate: null };\n\nexport const DateRangeFilter: React.ComponentType<FilterProps> = (props) => {\n const {\n column,\n column: { id },\n filterValue = emptyFilterValue,\n onValueChange,\n patchHeaderFilterButtonAndMenu,\n reduxHeader,\n innerRef,\n } = props;\n\n const dateRange = filterValue;\n\n const [startDate, setStartDate] = useState(dateRange.startDate || '');\n const [endDate, setEndDate] = useState(dateRange.endDate || '');\n\n useEffect(() => {\n setStartDate(dateRange.startDate || '');\n setEndDate(dateRange.endDate || '');\n }, [dateRange]);\n\n useEffect(() => {\n if (startDate && endDate && !startDate.includes('_') && !endDate.includes('_')) {\n onValueChange(FILTER_TYPES.DATE_RANGE, { startDate, endDate });\n }\n // We are missing onValueChange on purpose, this is an internal function and won't cause any problems\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [startDate, endDate]);\n\n const ref = useRef();\n const shouldFocus = useRef(true);\n const handleRef = useCallback((newRef) => {\n if (ref.current) ref.current = newRef;\n if (shouldFocus.current) {\n setTimeout(() => {\n newRef?.focus();\n shouldFocus.current = false;\n });\n }\n }, []);\n\n useEffect(() => {\n if (reduxHeader?.hideFilterMenu) {\n shouldFocus.current = true;\n }\n }, [reduxHeader?.hideFilterMenu]);\n\n return (\n <FilterPopover\n reduxHeader={reduxHeader}\n column={column}\n columnId={id}\n menuContent={\n <Grid width=\"260px\" data-testid={DATA_TESTID.DATA_TABLE_DATE_RANGE_CONTROLLER}>\n <Grid p=\"xxs\" style={{ background: 'white' }}>\n <DSControlledDateRangePicker\n fromDate={startDate}\n onFromDateChange={setStartDate}\n toDate={endDate}\n onToDateChange={setEndDate}\n type=\"date-range-inputs\"\n innerRef={handleRef}\n />\n </Grid>\n <Grid\n onKeyDown={(e) =>\n e.code === 'Enter' &&\n setTimeout(() => patchHeaderFilterButtonAndMenu(id, !!(dateRange.startDate || dateRange.endDate)), 0)\n }\n >\n <DSControlledDateRangePicker\n fromDate={startDate}\n onFromDateChange={setStartDate}\n toDate={endDate}\n onToDateChange={setEndDate}\n type=\"date-range-picker-controller-only\"\n />\n </Grid>\n </Grid>\n }\n triggerIcon={<DatePicker2 />}\n innerRef={innerRef}\n ariaLabel=\"Open Date Range Filter\"\n />\n );\n};\n"],
|
|
5
5
|
"mappings": "AAAA,YAAY,WAAW;AC+Df,SAEI,KAFJ;AA/DR,SAAgB,WAAW,aAAa,QAAQ,gBAAgB;AAChE,SAAS,mBAAmB;AAC5B,SAAS,YAAY;AACrB,SAAS,mCAAmC;AAC5C,SAAS,eAAe,oBAAoB;AAE5C,SAAS,mBAAmB;AAE5B,MAAM,mBAAmB,EAAE,WAAW,MAAM,SAAS,KAAK;AAEnD,MAAM,kBAAoD,CAAC,UAAU;AAC1E,QAAM;AAAA,IACJ;AAAA,IACA,QAAQ,EAAE,GAAG;AAAA,IACb,cAAc;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,QAAM,YAAY;AAElB,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,UAAU,aAAa,EAAE;AACpE,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,UAAU,WAAW,EAAE;AAE9D,YAAU,MAAM;AACd,iBAAa,UAAU,aAAa,EAAE;AACtC,eAAW,UAAU,WAAW,EAAE;AAAA,EACpC,GAAG,CAAC,SAAS,CAAC;AAEd,YAAU,MAAM;AACd,QAAI,aAAa,WAAW,CAAC,UAAU,SAAS,GAAG,KAAK,CAAC,QAAQ,SAAS,GAAG,GAAG;AAC9E,oBAAc,aAAa,YAAY,EAAE,WAAW,QAAQ,CAAC;AAAA,IAC/D;AAAA,EAGF,GAAG,CAAC,WAAW,OAAO,CAAC;AAEvB,QAAM,MAAM,OAAO;AACnB,QAAM,cAAc,OAAO,IAAI;AAC/B,QAAM,YAAY,YAAY,CAAC,WAAW;AACxC,QAAI,IAAI;AAAS,UAAI,UAAU;AAC/B,QAAI,YAAY,SAAS;AACvB,iBAAW,MAAM;AACf,gBAAQ,MAAM;AACd,oBAAY,UAAU;AAAA,MACxB,CAAC;AAAA,IACH;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,YAAU,MAAM;AACd,QAAI,aAAa,gBAAgB;AAC/B,kBAAY,UAAU;AAAA,IACxB;AAAA,EACF,GAAG,CAAC,aAAa,cAAc,CAAC;AAEhC,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,UAAU;AAAA,MACV,aACE,qBAAC,QAAK,OAAM,SAAQ,eAAa,YAAY,kCAC3C;AAAA,4BAAC,QAAK,GAAE,OAAM,OAAO,EAAE,YAAY,QAAQ,GACzC;AAAA,UAAC;AAAA;AAAA,YACC,UAAU;AAAA,YACV,kBAAkB;AAAA,YAClB,QAAQ;AAAA,YACR,gBAAgB;AAAA,YAChB,MAAK;AAAA,YACL,UAAU;AAAA;AAAA,QACZ,GACF;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,WAAW,CAAC,MACV,EAAE,SAAS,WACX,WAAW,MAAM,+BAA+B,IAAI,CAAC,EAAE,UAAU,aAAa,UAAU,QAAQ,GAAG,CAAC;AAAA,YAGtG;AAAA,cAAC;AAAA;AAAA,gBACC,UAAU;AAAA,gBACV,kBAAkB;AAAA,gBAClB,QAAQ;AAAA,gBACR,gBAAgB;AAAA,gBAChB,MAAK;AAAA;AAAA,YACP;AAAA;AAAA,QACF;AAAA,SACF;AAAA,MAEF,aAAa,oBAAC,eAAY;AAAA,MAC1B;AAAA,MACA,WAAU;AAAA;AAAA,EACZ;AAEJ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -8,8 +8,8 @@ import {
|
|
|
8
8
|
DSControlledDateTimePicker,
|
|
9
9
|
DSControlledCheckbox
|
|
10
10
|
} from "@elliemae/ds-controlled-form";
|
|
11
|
-
import { FilterPopover, FILTER_TYPES } from "../../../../exported-related";
|
|
12
|
-
import { DATA_TESTID } from "../../../../configs/constants";
|
|
11
|
+
import { FilterPopover, FILTER_TYPES } from "../../../../exported-related/index.js";
|
|
12
|
+
import { DATA_TESTID } from "../../../../configs/constants.js";
|
|
13
13
|
const emptyFilterValue = { startDate: null, endDate: null };
|
|
14
14
|
const DateSwitcherFilter = (props) => {
|
|
15
15
|
const {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../../src/addons/Filters/Components/DateSwitcherFilter/index.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\nimport React, { useEffect, useRef, useCallback, useState } from 'react';\nimport { DatePicker2 } from '@elliemae/ds-icons';\nimport { Grid } from '@elliemae/ds-grid';\nimport {\n DSControlledDateRangePicker,\n DSControlledDateTimePicker,\n DSControlledCheckbox,\n} from '@elliemae/ds-controlled-form';\nimport { FilterPopover, FILTER_TYPES } from '../../../../exported-related';\nimport type { FilterProps } from '../../../../types/props';\nimport { DATA_TESTID } from '../../../../configs/constants';\n\nconst emptyFilterValue = { startDate: null, endDate: null };\n\nexport const DateSwitcherFilter: React.ComponentType<FilterProps> = (props) => {\n const {\n column,\n column: { id },\n filterValue = emptyFilterValue,\n onValueChange,\n patchHeaderFilterButtonAndMenu,\n reduxHeader,\n innerRef,\n } = props;\n\n const ref = useRef();\n const dateRange = filterValue;\n\n const [startDate, setStartDate] = useState(dateRange.startDate || '');\n const [endDate, setEndDate] = useState(dateRange.endDate || '');\n const [isDateRange, setIsDateRange] = useState(false);\n\n useEffect(() => {\n setStartDate(dateRange.startDate || '');\n setEndDate(dateRange.endDate || '');\n }, [dateRange]);\n\n useEffect(() => {\n if (startDate && endDate && !startDate.includes('_') && !endDate.includes('_')) {\n onValueChange(FILTER_TYPES.DATE_SWITCHER, { startDate, endDate, isDateRange });\n }\n // We are missing onValueChange on purpose, this is an internal function and won't cause any problems\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [startDate, endDate, isDateRange]);\n\n const handleRef = useCallback(\n (newRef) => {\n if (ref.current) ref.current = newRef;\n if (!reduxHeader?.hideFilterMenu) {\n setTimeout(() => newRef?.focus());\n }\n },\n [reduxHeader?.hideFilterMenu],\n );\n\n return (\n <FilterPopover\n reduxHeader={reduxHeader}\n column={column}\n columnId={id}\n menuContent={\n <Grid width=\"260px\" data-testid={DATA_TESTID.DATA_TABLE_DATE_RANGE_CONTROLLER}>\n <Grid p=\"xxs\" gutter=\"xxs\" style={{ background: 'white' }}>\n <div data-testid={DATA_TESTID.DATA_TABLE_DATE_RANGE_CONTROLLER_CHECKBOX_SWITCHER}>\n <DSControlledCheckbox\n checked={isDateRange}\n name=\"Date range\"\n label=\"Date Range\"\n id=\"date-range-switcher-id-internal\"\n onChange={() => {\n setIsDateRange(!isDateRange);\n setStartDate('');\n setEndDate('');\n }}\n innerRef={handleRef}\n />\n </div>\n {isDateRange ? (\n <DSControlledDateRangePicker\n fromDate={startDate}\n onFromDateChange={setStartDate}\n toDate={endDate}\n onToDateChange={setEndDate}\n type=\"date-range-inputs\"\n />\n ) : (\n <DSControlledDateTimePicker\n date={startDate}\n onDateChange={(_date) => {\n setStartDate(_date);\n setEndDate(_date);\n }}\n type=\"date-inputs\"\n />\n )}\n </Grid>\n <Grid\n onKeyDown={(e) =>\n e.code === 'Enter' &&\n setTimeout(() => patchHeaderFilterButtonAndMenu(id, !!(dateRange.startDate || dateRange.endDate)), 0)\n }\n >\n {isDateRange ? (\n <DSControlledDateRangePicker\n fromDate={startDate}\n onFromDateChange={setStartDate}\n toDate={endDate}\n onToDateChange={setEndDate}\n type=\"date-range-picker-controller-only\"\n />\n ) : (\n <DSControlledDateTimePicker\n date={startDate}\n onDateChange={(_date) => {\n setStartDate(_date);\n setEndDate(_date);\n }}\n type=\"date-picker-controller-only\"\n />\n )}\n </Grid>\n </Grid>\n }\n triggerIcon={<DatePicker2 />}\n innerRef={innerRef}\n ariaLabel=\"Open Date Range Filter\"\n />\n );\n};\n"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\nimport React, { useEffect, useRef, useCallback, useState } from 'react';\nimport { DatePicker2 } from '@elliemae/ds-icons';\nimport { Grid } from '@elliemae/ds-grid';\nimport {\n DSControlledDateRangePicker,\n DSControlledDateTimePicker,\n DSControlledCheckbox,\n} from '@elliemae/ds-controlled-form';\nimport { FilterPopover, FILTER_TYPES } from '../../../../exported-related/index.js';\nimport type { FilterProps } from '../../../../types/props.js';\nimport { DATA_TESTID } from '../../../../configs/constants.js';\n\nconst emptyFilterValue = { startDate: null, endDate: null };\n\nexport const DateSwitcherFilter: React.ComponentType<FilterProps> = (props) => {\n const {\n column,\n column: { id },\n filterValue = emptyFilterValue,\n onValueChange,\n patchHeaderFilterButtonAndMenu,\n reduxHeader,\n innerRef,\n } = props;\n\n const ref = useRef();\n const dateRange = filterValue;\n\n const [startDate, setStartDate] = useState(dateRange.startDate || '');\n const [endDate, setEndDate] = useState(dateRange.endDate || '');\n const [isDateRange, setIsDateRange] = useState(false);\n\n useEffect(() => {\n setStartDate(dateRange.startDate || '');\n setEndDate(dateRange.endDate || '');\n }, [dateRange]);\n\n useEffect(() => {\n if (startDate && endDate && !startDate.includes('_') && !endDate.includes('_')) {\n onValueChange(FILTER_TYPES.DATE_SWITCHER, { startDate, endDate, isDateRange });\n }\n // We are missing onValueChange on purpose, this is an internal function and won't cause any problems\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [startDate, endDate, isDateRange]);\n\n const handleRef = useCallback(\n (newRef) => {\n if (ref.current) ref.current = newRef;\n if (!reduxHeader?.hideFilterMenu) {\n setTimeout(() => newRef?.focus());\n }\n },\n [reduxHeader?.hideFilterMenu],\n );\n\n return (\n <FilterPopover\n reduxHeader={reduxHeader}\n column={column}\n columnId={id}\n menuContent={\n <Grid width=\"260px\" data-testid={DATA_TESTID.DATA_TABLE_DATE_RANGE_CONTROLLER}>\n <Grid p=\"xxs\" gutter=\"xxs\" style={{ background: 'white' }}>\n <div data-testid={DATA_TESTID.DATA_TABLE_DATE_RANGE_CONTROLLER_CHECKBOX_SWITCHER}>\n <DSControlledCheckbox\n checked={isDateRange}\n name=\"Date range\"\n label=\"Date Range\"\n id=\"date-range-switcher-id-internal\"\n onChange={() => {\n setIsDateRange(!isDateRange);\n setStartDate('');\n setEndDate('');\n }}\n innerRef={handleRef}\n />\n </div>\n {isDateRange ? (\n <DSControlledDateRangePicker\n fromDate={startDate}\n onFromDateChange={setStartDate}\n toDate={endDate}\n onToDateChange={setEndDate}\n type=\"date-range-inputs\"\n />\n ) : (\n <DSControlledDateTimePicker\n date={startDate}\n onDateChange={(_date) => {\n setStartDate(_date);\n setEndDate(_date);\n }}\n type=\"date-inputs\"\n />\n )}\n </Grid>\n <Grid\n onKeyDown={(e) =>\n e.code === 'Enter' &&\n setTimeout(() => patchHeaderFilterButtonAndMenu(id, !!(dateRange.startDate || dateRange.endDate)), 0)\n }\n >\n {isDateRange ? (\n <DSControlledDateRangePicker\n fromDate={startDate}\n onFromDateChange={setStartDate}\n toDate={endDate}\n onToDateChange={setEndDate}\n type=\"date-range-picker-controller-only\"\n />\n ) : (\n <DSControlledDateTimePicker\n date={startDate}\n onDateChange={(_date) => {\n setStartDate(_date);\n setEndDate(_date);\n }}\n type=\"date-picker-controller-only\"\n />\n )}\n </Grid>\n </Grid>\n }\n triggerIcon={<DatePicker2 />}\n innerRef={innerRef}\n ariaLabel=\"Open Date Range Filter\"\n />\n );\n};\n"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -5,8 +5,8 @@ import { Grid } from "@elliemae/ds-grid";
|
|
|
5
5
|
import { DSInputMask, MASK_TYPES } from "@elliemae/ds-form";
|
|
6
6
|
import { DSFormLayoutBlockItem } from "@elliemae/ds-form-layout-blocks";
|
|
7
7
|
import { SearchXsmall } from "@elliemae/ds-icons";
|
|
8
|
-
import { FilterPopover, FILTER_TYPES } from "../../../../exported-related";
|
|
9
|
-
import { DATA_TESTID } from "../../../../configs/constants";
|
|
8
|
+
import { FilterPopover, FILTER_TYPES } from "../../../../exported-related/index.js";
|
|
9
|
+
import { DATA_TESTID } from "../../../../configs/constants.js";
|
|
10
10
|
const opts = {
|
|
11
11
|
prefix: "",
|
|
12
12
|
suffix: "",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../../src/addons/Filters/Components/NumberRangeFilter/index.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useRef, useEffect, useCallback } from 'react';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSInputMask, MASK_TYPES } from '@elliemae/ds-form';\nimport { DSFormLayoutBlockItem } from '@elliemae/ds-form-layout-blocks';\nimport { SearchXsmall } from '@elliemae/ds-icons';\nimport { FilterPopover, FILTER_TYPES } from '../../../../exported-related';\nimport type { FilterProps } from '../../../../types/props';\nimport { DATA_TESTID } from '../../../../configs/constants';\n\nconst opts = {\n prefix: '',\n suffix: '',\n allowDecimal: false,\n includeThousandsSeparator: false,\n requireDecimal: false,\n allowNegative: true,\n};\n\nexport const NumberRangeFilter: React.ComponentType<FilterProps> = (props) => {\n const { column, filterValue = { from: null, to: null }, reduxHeader, patchHeader, onValueChange, innerRef } = props;\n\n const handleFromChange = (e) => {\n const from = e.target.value !== '' ? parseInt(e.target.value, 10) : '';\n const nextValue = {\n ...filterValue,\n from,\n };\n onValueChange(FILTER_TYPES.CURRENCY_RANGE, nextValue);\n };\n const handleToChange = (e) => {\n const to = e.target.value !== '' ? parseInt(e.target.value, 10) : '';\n const nextValue = {\n ...filterValue,\n to,\n };\n onValueChange(FILTER_TYPES.CURRENCY_RANGE, nextValue);\n };\n\n // workaround to close menu with esc key since DSInputMask has stoppropagation on key down\n const closePopover = (e) => {\n if (e.code === 'Escape') {\n patchHeader(column.id, { hideFilterMenu: true, hideFilterButton: false });\n innerRef.current.focus();\n }\n };\n const idPreffix = 'datatable-number-range';\n\n const ref = useRef();\n const shouldFocus = useRef(true);\n const handleRef = useCallback(\n (newRef) => {\n if (ref.current) ref.current = newRef;\n if (shouldFocus.current) {\n setTimeout(() => {\n newRef?.focus();\n shouldFocus.current = false;\n });\n }\n },\n [shouldFocus],\n );\n\n useEffect(() => {\n if (reduxHeader?.hideFilterMenu) {\n shouldFocus.current = true;\n }\n }, [reduxHeader?.hideFilterMenu]);\n\n return (\n <FilterPopover\n reduxHeader={reduxHeader}\n column={column}\n columnId={column.id}\n menuContent={\n <Grid\n data-testid={DATA_TESTID.DATA_TABLE_NUMBER_RANGE_CONTROLLER}\n gutter=\"xxxs\"\n padding=\"xxs\"\n cols={['auto', 'auto']}\n style={{ background: 'white' }}\n >\n <DSFormLayoutBlockItem label=\"Low\" inputID={`${idPreffix}-low-${column.id}`}>\n <DSInputMask\n containerProps={{ style: { textAlign: 'right' } }}\n id={`${idPreffix}-low-${column.id}`}\n value={`${filterValue?.from ?? ''}`}\n onChange={handleFromChange}\n placeholder=\"0\"\n mask={(number) => MASK_TYPES.NUMBER(opts)(number)}\n innerRef={handleRef}\n onKeyDown={(e) => {\n closePopover(e);\n }}\n />\n </DSFormLayoutBlockItem>\n <DSFormLayoutBlockItem label=\"High\" inputID={`${idPreffix}-high-${column.id}`}>\n <DSInputMask\n containerProps={{ style: { textAlign: 'right' } }}\n id={`${idPreffix}-high-${column.id}`}\n value={`${filterValue?.to ?? ''}`}\n onChange={handleToChange}\n placeholder=\"0\"\n mask={(number) => MASK_TYPES.NUMBER(opts)(number)}\n onKeyDown={(e) => {\n closePopover(e);\n }}\n />\n </DSFormLayoutBlockItem>\n </Grid>\n }\n triggerIcon={<SearchXsmall />}\n customStyles={{ width: column.ref?.current?.offsetWidth ?? '0px' }}\n innerRef={innerRef}\n ariaLabel=\"Open Number Range Filter\"\n />\n );\n};\n"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useRef, useEffect, useCallback } from 'react';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSInputMask, MASK_TYPES } from '@elliemae/ds-form';\nimport { DSFormLayoutBlockItem } from '@elliemae/ds-form-layout-blocks';\nimport { SearchXsmall } from '@elliemae/ds-icons';\nimport { FilterPopover, FILTER_TYPES } from '../../../../exported-related/index.js';\nimport type { FilterProps } from '../../../../types/props.js';\nimport { DATA_TESTID } from '../../../../configs/constants.js';\n\nconst opts = {\n prefix: '',\n suffix: '',\n allowDecimal: false,\n includeThousandsSeparator: false,\n requireDecimal: false,\n allowNegative: true,\n};\n\nexport const NumberRangeFilter: React.ComponentType<FilterProps> = (props) => {\n const { column, filterValue = { from: null, to: null }, reduxHeader, patchHeader, onValueChange, innerRef } = props;\n\n const handleFromChange = (e) => {\n const from = e.target.value !== '' ? parseInt(e.target.value, 10) : '';\n const nextValue = {\n ...filterValue,\n from,\n };\n onValueChange(FILTER_TYPES.CURRENCY_RANGE, nextValue);\n };\n const handleToChange = (e) => {\n const to = e.target.value !== '' ? parseInt(e.target.value, 10) : '';\n const nextValue = {\n ...filterValue,\n to,\n };\n onValueChange(FILTER_TYPES.CURRENCY_RANGE, nextValue);\n };\n\n // workaround to close menu with esc key since DSInputMask has stoppropagation on key down\n const closePopover = (e) => {\n if (e.code === 'Escape') {\n patchHeader(column.id, { hideFilterMenu: true, hideFilterButton: false });\n innerRef.current.focus();\n }\n };\n const idPreffix = 'datatable-number-range';\n\n const ref = useRef();\n const shouldFocus = useRef(true);\n const handleRef = useCallback(\n (newRef) => {\n if (ref.current) ref.current = newRef;\n if (shouldFocus.current) {\n setTimeout(() => {\n newRef?.focus();\n shouldFocus.current = false;\n });\n }\n },\n [shouldFocus],\n );\n\n useEffect(() => {\n if (reduxHeader?.hideFilterMenu) {\n shouldFocus.current = true;\n }\n }, [reduxHeader?.hideFilterMenu]);\n\n return (\n <FilterPopover\n reduxHeader={reduxHeader}\n column={column}\n columnId={column.id}\n menuContent={\n <Grid\n data-testid={DATA_TESTID.DATA_TABLE_NUMBER_RANGE_CONTROLLER}\n gutter=\"xxxs\"\n padding=\"xxs\"\n cols={['auto', 'auto']}\n style={{ background: 'white' }}\n >\n <DSFormLayoutBlockItem label=\"Low\" inputID={`${idPreffix}-low-${column.id}`}>\n <DSInputMask\n containerProps={{ style: { textAlign: 'right' } }}\n id={`${idPreffix}-low-${column.id}`}\n value={`${filterValue?.from ?? ''}`}\n onChange={handleFromChange}\n placeholder=\"0\"\n mask={(number) => MASK_TYPES.NUMBER(opts)(number)}\n innerRef={handleRef}\n onKeyDown={(e) => {\n closePopover(e);\n }}\n />\n </DSFormLayoutBlockItem>\n <DSFormLayoutBlockItem label=\"High\" inputID={`${idPreffix}-high-${column.id}`}>\n <DSInputMask\n containerProps={{ style: { textAlign: 'right' } }}\n id={`${idPreffix}-high-${column.id}`}\n value={`${filterValue?.to ?? ''}`}\n onChange={handleToChange}\n placeholder=\"0\"\n mask={(number) => MASK_TYPES.NUMBER(opts)(number)}\n onKeyDown={(e) => {\n closePopover(e);\n }}\n />\n </DSFormLayoutBlockItem>\n </Grid>\n }\n triggerIcon={<SearchXsmall />}\n customStyles={{ width: column.ref?.current?.offsetWidth ?? '0px' }}\n innerRef={innerRef}\n ariaLabel=\"Open Number Range Filter\"\n />\n );\n};\n"],
|
|
5
5
|
"mappings": "AAAA,YAAY,WAAW;AC0Ef,SAQI,KARJ;AA1ER,SAAgB,QAAQ,WAAW,mBAAmB;AACtD,SAAS,YAAY;AACrB,SAAS,aAAa,kBAAkB;AACxC,SAAS,6BAA6B;AACtC,SAAS,oBAAoB;AAC7B,SAAS,eAAe,oBAAoB;AAE5C,SAAS,mBAAmB;AAE5B,MAAM,OAAO;AAAA,EACX,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,2BAA2B;AAAA,EAC3B,gBAAgB;AAAA,EAChB,eAAe;AACjB;AAEO,MAAM,oBAAsD,CAAC,UAAU;AAC5E,QAAM,EAAE,QAAQ,cAAc,EAAE,MAAM,MAAM,IAAI,KAAK,GAAG,aAAa,aAAa,eAAe,SAAS,IAAI;AAE9G,QAAM,mBAAmB,CAAC,MAAM;AAC9B,UAAM,OAAO,EAAE,OAAO,UAAU,KAAK,SAAS,EAAE,OAAO,OAAO,EAAE,IAAI;AACpE,UAAM,YAAY;AAAA,MAChB,GAAG;AAAA,MACH;AAAA,IACF;AACA,kBAAc,aAAa,gBAAgB,SAAS;AAAA,EACtD;AACA,QAAM,iBAAiB,CAAC,MAAM;AAC5B,UAAM,KAAK,EAAE,OAAO,UAAU,KAAK,SAAS,EAAE,OAAO,OAAO,EAAE,IAAI;AAClE,UAAM,YAAY;AAAA,MAChB,GAAG;AAAA,MACH;AAAA,IACF;AACA,kBAAc,aAAa,gBAAgB,SAAS;AAAA,EACtD;AAGA,QAAM,eAAe,CAAC,MAAM;AAC1B,QAAI,EAAE,SAAS,UAAU;AACvB,kBAAY,OAAO,IAAI,EAAE,gBAAgB,MAAM,kBAAkB,MAAM,CAAC;AACxE,eAAS,QAAQ,MAAM;AAAA,IACzB;AAAA,EACF;AACA,QAAM,YAAY;AAElB,QAAM,MAAM,OAAO;AACnB,QAAM,cAAc,OAAO,IAAI;AAC/B,QAAM,YAAY;AAAA,IAChB,CAAC,WAAW;AACV,UAAI,IAAI;AAAS,YAAI,UAAU;AAC/B,UAAI,YAAY,SAAS;AACvB,mBAAW,MAAM;AACf,kBAAQ,MAAM;AACd,sBAAY,UAAU;AAAA,QACxB,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA,CAAC,WAAW;AAAA,EACd;AAEA,YAAU,MAAM;AACd,QAAI,aAAa,gBAAgB;AAC/B,kBAAY,UAAU;AAAA,IACxB;AAAA,EACF,GAAG,CAAC,aAAa,cAAc,CAAC;AAEhC,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,UAAU,OAAO;AAAA,MACjB,aACE;AAAA,QAAC;AAAA;AAAA,UACC,eAAa,YAAY;AAAA,UACzB,QAAO;AAAA,UACP,SAAQ;AAAA,UACR,MAAM,CAAC,QAAQ,MAAM;AAAA,UACrB,OAAO,EAAE,YAAY,QAAQ;AAAA,UAE7B;AAAA,gCAAC,yBAAsB,OAAM,OAAM,SAAS,GAAG,iBAAiB,OAAO,MACrE;AAAA,cAAC;AAAA;AAAA,gBACC,gBAAgB,EAAE,OAAO,EAAE,WAAW,QAAQ,EAAE;AAAA,gBAChD,IAAI,GAAG,iBAAiB,OAAO;AAAA,gBAC/B,OAAO,GAAG,aAAa,QAAQ;AAAA,gBAC/B,UAAU;AAAA,gBACV,aAAY;AAAA,gBACZ,MAAM,CAAC,WAAW,WAAW,OAAO,IAAI,EAAE,MAAM;AAAA,gBAChD,UAAU;AAAA,gBACV,WAAW,CAAC,MAAM;AAChB,+BAAa,CAAC;AAAA,gBAChB;AAAA;AAAA,YACF,GACF;AAAA,YACA,oBAAC,yBAAsB,OAAM,QAAO,SAAS,GAAG,kBAAkB,OAAO,MACvE;AAAA,cAAC;AAAA;AAAA,gBACC,gBAAgB,EAAE,OAAO,EAAE,WAAW,QAAQ,EAAE;AAAA,gBAChD,IAAI,GAAG,kBAAkB,OAAO;AAAA,gBAChC,OAAO,GAAG,aAAa,MAAM;AAAA,gBAC7B,UAAU;AAAA,gBACV,aAAY;AAAA,gBACZ,MAAM,CAAC,WAAW,WAAW,OAAO,IAAI,EAAE,MAAM;AAAA,gBAChD,WAAW,CAAC,MAAM;AAChB,+BAAa,CAAC;AAAA,gBAChB;AAAA;AAAA,YACF,GACF;AAAA;AAAA;AAAA,MACF;AAAA,MAEF,aAAa,oBAAC,gBAAa;AAAA,MAC3B,cAAc,EAAE,OAAO,OAAO,KAAK,SAAS,eAAe,MAAM;AAAA,MACjE;AAAA,MACA,WAAU;AAAA;AAAA,EACZ;AAEJ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -5,8 +5,8 @@ import { Grid } from "@elliemae/ds-grid";
|
|
|
5
5
|
import { DSComboBox } from "@elliemae/ds-controlled-form";
|
|
6
6
|
import { SearchXsmall } from "@elliemae/ds-icons";
|
|
7
7
|
import { uid } from "uid";
|
|
8
|
-
import { FilterPopover } from "../../../../exported-related";
|
|
9
|
-
import { DATA_TESTID } from "../../../../configs";
|
|
8
|
+
import { FilterPopover } from "../../../../exported-related/index.js";
|
|
9
|
+
import { DATA_TESTID } from "../../../../configs/index.js";
|
|
10
10
|
const BaseSelectFilter = (props) => {
|
|
11
11
|
const {
|
|
12
12
|
isMulti = false,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../../src/addons/Filters/Components/SelectFilter/BaseSelectFilter.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useState, useRef, useCallback, useEffect, useMemo } from 'react';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSComboBox } from '@elliemae/ds-controlled-form';\nimport { SearchXsmall } from '@elliemae/ds-icons';\nimport { uid } from 'uid';\nimport { FilterPopover } from '../../../../exported-related';\nimport type { FilterProps } from '../../../../types/props';\nimport { DATA_TESTID } from '../../../../configs';\n\ninterface FilterOptionT {\n dsId: string;\n type: string;\n value: string;\n label: string;\n}\n\ninterface BaseSelectProps {\n isMulti?: boolean;\n creatable?: boolean;\n selectedItems?: FilterOptionT[] | FilterOptionT;\n type: string;\n}\n\nexport const BaseSelectFilter: React.ComponentType<FilterProps & BaseSelectProps> = (props) => {\n const {\n isMulti = false,\n selectedItems = null,\n creatable = false,\n column,\n type,\n column: { id, filterOptions: userFilterOptions, filterMinWidth },\n ctx: {\n tableProps: { data },\n },\n reduxHeader,\n patchHeaderFilterButtonAndMenu,\n innerRef,\n onValueChange,\n } = props;\n\n const ref = useRef();\n const shouldFocus = useRef(true);\n const filterOptions: FilterOptionT[] = useMemo(() => {\n // If the user didn't provide options, use the available ones\n if (!userFilterOptions) {\n const automaticFilters = [\n ...new Set(data.map((datum) => datum?.[id]?.toString()).filter((val) => val !== undefined)),\n ].map((item) => ({\n type: 'option',\n dsId: item,\n value: item,\n label: item,\n }));\n\n return automaticFilters;\n }\n\n // If user provided the array itself, use it\n if (Array.isArray(userFilterOptions)) return userFilterOptions;\n // Otherwise, it is a function\n return userFilterOptions();\n }, [data, id, userFilterOptions]);\n\n const [filters, setFilteredOptions] = useState(filterOptions);\n\n useEffect(() => setFilteredOptions(filterOptions), [filterOptions]);\n\n const handleOnChange = (value) => {\n if (isMulti) {\n onValueChange(type, value.length !== 0 ? value : undefined);\n } else {\n onValueChange(type, value !== null ? value : undefined);\n patchHeaderFilterButtonAndMenu(column.id, true);\n }\n };\n\n const handleOnCreate = (label: string) => {\n if (label.trim() === '') {\n return;\n }\n if (filterOptions.some((item) => item.label === label)) {\n return;\n }\n const newId = uid();\n const newItem = {\n dsId: newId,\n value: newId,\n label,\n type: 'option',\n };\n filterOptions.unshift(newItem);\n handleOnChange(Array.isArray(selectedItems) ? [...selectedItems, newItem] : newItem);\n setFilteredOptions([...filterOptions]);\n };\n\n const handleRef = useCallback(\n (newRef) => {\n if (ref.current) ref.current = newRef;\n if (shouldFocus.current) {\n setTimeout(() => {\n newRef?.focus();\n shouldFocus.current = false;\n });\n }\n },\n [shouldFocus],\n );\n\n useEffect(() => {\n if (reduxHeader?.hideFilterMenu) {\n shouldFocus.current = true;\n }\n }, [reduxHeader?.hideFilterMenu]);\n\n const Select = (\n <Grid\n data-testid={\n isMulti ? DATA_TESTID.DATA_TABLE_MULTISELECT_CONTROLLER : DATA_TESTID.DATA_TABLE_SINGLESELECT_CONTROLLER\n }\n style={{ background: '#fff', position: 'relative', width: filterMinWidth ?? column.ref?.current?.offsetWidth }}\n >\n <DSComboBox\n inline\n innerRef={handleRef}\n allOptions={filters}\n onCreate={creatable ? handleOnCreate : undefined}\n onChange={handleOnChange}\n selectedValues={selectedItems}\n menuMaxHeight={300}\n />\n </Grid>\n );\n\n const handleOnClickOutside = () => {\n setFilteredOptions(filterOptions);\n };\n return (\n <FilterPopover\n reduxHeader={reduxHeader}\n column={column}\n columnId={column.id}\n menuContent={Select}\n triggerIcon={<SearchXsmall />}\n innerRef={innerRef}\n ariaLabel=\"Open Selection Filter\"\n onClickOutsideMenu={handleOnClickOutside}\n />\n );\n};\n"],
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;ACyHjB;AAzHN,SAAgB,UAAU,QAAQ,aAAa,WAAW,eAAe;AACzE,SAAS,YAAY;AACrB,SAAS,kBAAkB;AAC3B,SAAS,oBAAoB;AAC7B,SAAS,WAAW;AACpB,SAAS,qBAAqB;AAE9B,SAAS,mBAAmB;AAgBrB,MAAM,mBAAuE,CAAC,UAAU;AAC7F,QAAM;AAAA,IACJ,UAAU;AAAA,IACV,gBAAgB;AAAA,IAChB,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA,QAAQ,EAAE,IAAI,eAAe,mBAAmB,eAAe;AAAA,IAC/D,KAAK;AAAA,MACH,YAAY,EAAE,KAAK;AAAA,IACrB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,QAAM,MAAM,OAAO;AACnB,QAAM,cAAc,OAAO,IAAI;AAC/B,QAAM,gBAAiC,QAAQ,MAAM;AAEnD,QAAI,CAAC,mBAAmB;AACtB,YAAM,mBAAmB;AAAA,QACvB,GAAG,IAAI,IAAI,KAAK,IAAI,CAAC,UAAU,QAAQ,
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useState, useRef, useCallback, useEffect, useMemo } from 'react';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSComboBox } from '@elliemae/ds-controlled-form';\nimport { SearchXsmall } from '@elliemae/ds-icons';\nimport { uid } from 'uid';\nimport { FilterPopover } from '../../../../exported-related/index.js';\nimport type { FilterProps } from '../../../../types/props.js';\nimport { DATA_TESTID } from '../../../../configs/index.js';\n\ninterface FilterOptionT {\n dsId: string;\n type: string;\n value: string;\n label: string;\n}\n\ninterface BaseSelectProps {\n isMulti?: boolean;\n creatable?: boolean;\n selectedItems?: FilterOptionT[] | FilterOptionT;\n type: string;\n}\n\nexport const BaseSelectFilter: React.ComponentType<FilterProps & BaseSelectProps> = (props) => {\n const {\n isMulti = false,\n selectedItems = null,\n creatable = false,\n column,\n type,\n column: { id, filterOptions: userFilterOptions, filterMinWidth },\n ctx: {\n tableProps: { data },\n },\n reduxHeader,\n patchHeaderFilterButtonAndMenu,\n innerRef,\n onValueChange,\n } = props;\n\n const ref = useRef();\n const shouldFocus = useRef(true);\n const filterOptions: FilterOptionT[] = useMemo(() => {\n // If the user didn't provide options, use the available ones\n if (!userFilterOptions) {\n const automaticFilters = [\n ...new Set(data.map((datum) => datum?.[id]?.toString()).filter((val) => val !== undefined)),\n ].map((item) => ({\n type: 'option',\n dsId: item,\n value: item,\n label: item,\n }));\n\n return automaticFilters;\n }\n\n // If user provided the array itself, use it\n if (Array.isArray(userFilterOptions)) return userFilterOptions;\n // Otherwise, it is a function\n return userFilterOptions();\n }, [data, id, userFilterOptions]);\n\n const [filters, setFilteredOptions] = useState(filterOptions);\n\n useEffect(() => setFilteredOptions(filterOptions), [filterOptions]);\n\n const handleOnChange = (value) => {\n if (isMulti) {\n onValueChange(type, value.length !== 0 ? value : undefined);\n } else {\n onValueChange(type, value !== null ? value : undefined);\n patchHeaderFilterButtonAndMenu(column.id, true);\n }\n };\n\n const handleOnCreate = (label: string) => {\n if (label.trim() === '') {\n return;\n }\n if (filterOptions.some((item) => item.label === label)) {\n return;\n }\n const newId = uid();\n const newItem = {\n dsId: newId,\n value: newId,\n label,\n type: 'option',\n };\n filterOptions.unshift(newItem);\n handleOnChange(Array.isArray(selectedItems) ? [...selectedItems, newItem] : newItem);\n setFilteredOptions([...filterOptions]);\n };\n\n const handleRef = useCallback(\n (newRef) => {\n if (ref.current) ref.current = newRef;\n if (shouldFocus.current) {\n setTimeout(() => {\n newRef?.focus();\n shouldFocus.current = false;\n });\n }\n },\n [shouldFocus],\n );\n\n useEffect(() => {\n if (reduxHeader?.hideFilterMenu) {\n shouldFocus.current = true;\n }\n }, [reduxHeader?.hideFilterMenu]);\n\n const Select = (\n <Grid\n data-testid={\n isMulti ? DATA_TESTID.DATA_TABLE_MULTISELECT_CONTROLLER : DATA_TESTID.DATA_TABLE_SINGLESELECT_CONTROLLER\n }\n style={{ background: '#fff', position: 'relative', width: filterMinWidth ?? column.ref?.current?.offsetWidth }}\n >\n <DSComboBox\n inline\n innerRef={handleRef}\n allOptions={filters}\n onCreate={creatable ? handleOnCreate : undefined}\n onChange={handleOnChange}\n selectedValues={selectedItems}\n menuMaxHeight={300}\n />\n </Grid>\n );\n\n const handleOnClickOutside = () => {\n setFilteredOptions(filterOptions);\n };\n return (\n <FilterPopover\n reduxHeader={reduxHeader}\n column={column}\n columnId={column.id}\n menuContent={Select}\n triggerIcon={<SearchXsmall />}\n innerRef={innerRef}\n ariaLabel=\"Open Selection Filter\"\n onClickOutsideMenu={handleOnClickOutside}\n />\n );\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
|
-
import { BaseSelectFilter } from "./BaseSelectFilter";
|
|
4
|
-
import { FILTER_TYPES } from "../../../../exported-related";
|
|
5
|
-
import { DATA_TESTID } from "../../../../configs/constants";
|
|
3
|
+
import { BaseSelectFilter } from "./BaseSelectFilter.js";
|
|
4
|
+
import { FILTER_TYPES } from "../../../../exported-related/index.js";
|
|
5
|
+
import { DATA_TESTID } from "../../../../configs/constants.js";
|
|
6
6
|
const MultiCreatableFilter = ({
|
|
7
7
|
column,
|
|
8
8
|
ctx,
|