@elliemae/ds-data-table 3.80.0-next.64 → 3.80.0-next.67
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/TruncatedTooltipText.js +1 -3
- package/dist/cjs/TruncatedTooltipText.js.map +2 -2
- package/dist/cjs/addons/Columns/ColumnAction/ColumnAction.js.map +2 -2
- package/dist/cjs/addons/Columns/ColumnDragHandle/ColumnDragHandle.js +27 -19
- package/dist/cjs/addons/Columns/ColumnDragHandle/ColumnDragHandle.js.map +2 -2
- package/dist/cjs/addons/Columns/ColumnExpand/ColumnExpand.js +25 -17
- package/dist/cjs/addons/Columns/ColumnExpand/ColumnExpand.js.map +2 -2
- package/dist/cjs/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.js +24 -14
- package/dist/cjs/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.js.map +2 -2
- package/dist/cjs/addons/Filters/Components/CurrencyRangeFilter/CurrencyRangeFilterV2.js.map +2 -2
- package/dist/cjs/addons/Filters/Components/CurrencyRangeFilter/index.js.map +2 -2
- package/dist/cjs/addons/Filters/Components/DateRangeFilter/DateRangeFilterV2.js.map +2 -2
- package/dist/cjs/addons/Filters/Components/DateRangeFilter/index.js.map +2 -2
- package/dist/cjs/addons/Filters/Components/DateSwitcherFilter/DateSwitcherFilterV2.js.map +2 -2
- package/dist/cjs/addons/Filters/Components/DateSwitcherFilter/index.js.map +2 -2
- package/dist/cjs/addons/Filters/Components/NumberRangeFilter/NumberRangeFilterV2.js.map +2 -2
- package/dist/cjs/addons/Filters/Components/NumberRangeFilter/index.js.map +2 -2
- package/dist/cjs/addons/Filters/Components/SelectFilter/BaseSelectFilter.js.map +2 -2
- package/dist/cjs/addons/Filters/Components/SelectFilter/BaseSelectFilterV2.js.map +2 -2
- package/dist/cjs/addons/Filters/Components/SelectFilter/MultiCreatableFilter.js.map +2 -2
- package/dist/cjs/addons/Filters/Components/SelectFilter/MultiCreatableFilterV2.js.map +2 -2
- package/dist/cjs/addons/Filters/Components/SelectFilter/MultiSelectFilter.js.map +2 -2
- package/dist/cjs/addons/Filters/Components/SelectFilter/MultiSelectFilterV2.js.map +2 -2
- package/dist/cjs/addons/Filters/Components/SelectFilter/SingleCreatableFilter.js.map +2 -2
- package/dist/cjs/addons/Filters/Components/SelectFilter/SingleCreatableFilterV2.js.map +2 -2
- package/dist/cjs/addons/Filters/Components/SelectFilter/SingleSelectFilter.js.map +2 -2
- package/dist/cjs/addons/Filters/Components/SelectFilter/SingleSelectFilterV2.js.map +2 -2
- package/dist/cjs/addons/Filters/Components/SingleDateFilter/SingleDateFilterV2.js.map +2 -2
- package/dist/cjs/addons/Filters/Components/SingleDateFilter/index.js.map +2 -2
- package/dist/cjs/configs/constants.js +1 -3
- package/dist/cjs/configs/constants.js.map +2 -2
- package/dist/cjs/configs/index.js +0 -1
- package/dist/cjs/configs/index.js.map +2 -2
- package/dist/cjs/configs/useStore/index.js +1 -7
- package/dist/cjs/configs/useStore/index.js.map +2 -2
- package/dist/cjs/configs/useTableColsWithAddons.js +2 -2
- package/dist/cjs/configs/useTableColsWithAddons.js.map +2 -2
- package/dist/cjs/constants/index.js +2 -1
- package/dist/cjs/constants/index.js.map +2 -2
- package/dist/cjs/exported-related/EditableCell.js +6 -4
- package/dist/cjs/exported-related/EditableCell.js.map +2 -2
- package/dist/cjs/exported-related/FilterBar/FilterBarDropdownMenu.js +16 -62
- package/dist/cjs/exported-related/FilterBar/FilterBarDropdownMenu.js.map +2 -2
- package/dist/cjs/exported-related/FilterBar/FilterMenuButton.js +15 -15
- package/dist/cjs/exported-related/FilterBar/FilterMenuButton.js.map +2 -2
- package/dist/cjs/exported-related/FilterBar/PillsFromDataTableFilters.js.map +2 -2
- package/dist/cjs/{parts/RowVariants/types.js → exported-related/FilterBar/dropdownMenuV2Bridge/bridgeTypes.js} +3 -3
- package/dist/cjs/exported-related/FilterBar/dropdownMenuV2Bridge/bridgeTypes.js.map +7 -0
- package/dist/cjs/exported-related/FilterBar/dropdownMenuV2Bridge/conversionHelpers.js +137 -0
- package/dist/cjs/exported-related/FilterBar/dropdownMenuV2Bridge/conversionHelpers.js.map +7 -0
- package/dist/cjs/exported-related/FilterBar/dropdownMenuV2Bridge/getHumanReadableWarnings.js +64 -0
- package/dist/cjs/exported-related/FilterBar/dropdownMenuV2Bridge/getHumanReadableWarnings.js.map +7 -0
- package/dist/cjs/exported-related/FilterBar/dropdownMenuV2Bridge/index.js +113 -0
- package/dist/cjs/exported-related/FilterBar/dropdownMenuV2Bridge/index.js.map +7 -0
- package/dist/cjs/exported-related/FilterBar/dropdownMenuV2Bridge/types.js.map +7 -0
- package/dist/cjs/exported-related/FilterPopover/FilterPopoverV2.js +17 -8
- package/dist/cjs/exported-related/FilterPopover/FilterPopoverV2.js.map +2 -2
- package/dist/cjs/exported-related/FilterPopover/index.js +11 -2
- package/dist/cjs/exported-related/FilterPopover/index.js.map +2 -2
- package/dist/cjs/exported-related/FilterPopover/styled.js +11 -0
- package/dist/cjs/exported-related/FilterPopover/styled.js.map +2 -2
- package/dist/cjs/exported-related/FilterPopover/useGetFilterHandlers.js.map +1 -1
- package/dist/cjs/exported-related/FilterTypes.js +10 -0
- package/dist/cjs/exported-related/FilterTypes.js.map +2 -2
- package/dist/cjs/exported-related/RowRenderer/DefaultRowContentRenderer.js.map +2 -2
- package/dist/cjs/exported-related/RowRenderer/index.js +2 -0
- package/dist/cjs/exported-related/RowRenderer/index.js.map +2 -2
- package/dist/cjs/exported-related/Toolbar/Toolbar.js +36 -22
- package/dist/cjs/exported-related/Toolbar/Toolbar.js.map +2 -2
- package/dist/cjs/helpers/getIdFromUniqueRowAccessor.js.map +1 -1
- package/dist/cjs/helpers/gridLayoutHelpers.js +2 -0
- package/dist/cjs/helpers/gridLayoutHelpers.js.map +2 -2
- package/dist/cjs/helpers/index.js +1 -0
- package/dist/cjs/helpers/index.js.map +2 -2
- package/dist/cjs/{parts/internal.js → helpers/smallButtonSize.js} +17 -8
- package/dist/cjs/helpers/smallButtonSize.js.map +7 -0
- package/dist/cjs/parts/Cells/CellFactory.js.map +2 -2
- package/dist/cjs/parts/Cells/index.js +19 -8
- package/dist/cjs/parts/Cells/index.js.map +2 -2
- package/dist/cjs/parts/DnDHandle.js +4 -2
- package/dist/cjs/parts/DnDHandle.js.map +2 -2
- package/dist/cjs/parts/DropIndicator.js.map +2 -2
- package/dist/cjs/parts/EmptyContent.js +2 -2
- package/dist/cjs/parts/EmptyContent.js.map +2 -2
- package/dist/cjs/parts/FilterBar/FilterBarMenuButtonAddon.js +88 -0
- package/dist/cjs/parts/FilterBar/FilterBarMenuButtonAddon.js.map +7 -0
- package/dist/cjs/parts/FilterBar/FiltersBar.js +4 -39
- package/dist/cjs/parts/FilterBar/FiltersBar.js.map +2 -2
- package/dist/cjs/parts/FilterBar/components/MultiSelectPill.js.map +2 -2
- package/dist/cjs/{configs/fixedSizes.js → parts/FilterBar/convertExtraOptions.js} +16 -8
- package/dist/cjs/parts/FilterBar/convertExtraOptions.js.map +7 -0
- package/dist/cjs/parts/Headers/EmptyChildrenGroup.js +4 -2
- package/dist/cjs/parts/Headers/EmptyChildrenGroup.js.map +2 -2
- package/dist/cjs/parts/Headers/HeaderCell.js +29 -11
- package/dist/cjs/parts/Headers/HeaderCell.js.map +2 -2
- package/dist/cjs/parts/Headers/HeaderCellGroup.js +3 -1
- package/dist/cjs/parts/Headers/HeaderCellGroup.js.map +2 -2
- package/dist/cjs/parts/Headers/HeaderCellTitle.js +5 -1
- package/dist/cjs/parts/Headers/HeaderCellTitle.js.map +2 -2
- package/dist/cjs/parts/Headers/HeaderResizer.js +3 -1
- package/dist/cjs/parts/Headers/HeaderResizer.js.map +2 -2
- package/dist/cjs/parts/Headers/useHeaderCellConfig.js.map +2 -2
- package/dist/cjs/parts/Headers/useHeaderCellHandlers.js.map +2 -2
- package/dist/cjs/parts/Headers/useHeaderResizer.js +2 -2
- package/dist/cjs/parts/Headers/useHeaderResizer.js.map +2 -2
- package/dist/cjs/parts/HoC/withConditionalDnDSortableContext.js.map +2 -2
- package/dist/cjs/parts/RowVariants/RowVariantHeader.js +6 -2
- package/dist/cjs/parts/RowVariants/RowVariantHeader.js.map +2 -2
- package/dist/cjs/parts/SkeletonTable.js +1 -1
- package/dist/cjs/parts/SkeletonTable.js.map +2 -2
- package/dist/cjs/parts/SortByCaret.js +0 -1
- package/dist/cjs/parts/SortByCaret.js.map +2 -2
- package/dist/cjs/react-desc-prop-types.js +75 -21
- package/dist/cjs/react-desc-prop-types.js.map +2 -2
- package/dist/cjs/styled.js +7 -1
- package/dist/cjs/styled.js.map +2 -2
- package/dist/cjs/tentative-typescript-testing-for-unsafe-type/README.md +9 -0
- package/dist/cjs/tentative-typescript-testing-for-unsafe-type/filter-bar-props.js +71 -0
- package/dist/cjs/tentative-typescript-testing-for-unsafe-type/filter-bar-props.js.map +7 -0
- package/dist/cjs/tentative-typescript-testing-for-unsafe-type/get-row-variant.js +38 -0
- package/dist/cjs/tentative-typescript-testing-for-unsafe-type/get-row-variant.js.map +7 -0
- package/dist/cjs/{parts/FilterBar/index.js → tentative-typescript-testing-for-unsafe-type/sizes.js} +10 -12
- package/dist/cjs/tentative-typescript-testing-for-unsafe-type/sizes.js.map +7 -0
- package/dist/cjs/tentative-typescript-testing-for-unsafe-type/slot-props.js +134 -0
- package/dist/cjs/tentative-typescript-testing-for-unsafe-type/slot-props.js.map +7 -0
- package/dist/esm/TruncatedTooltipText.js +2 -8
- package/dist/esm/TruncatedTooltipText.js.map +2 -2
- package/dist/esm/addons/Columns/ColumnAction/ColumnAction.js.map +2 -2
- package/dist/esm/addons/Columns/ColumnDragHandle/ColumnDragHandle.js +28 -20
- package/dist/esm/addons/Columns/ColumnDragHandle/ColumnDragHandle.js.map +2 -2
- package/dist/esm/addons/Columns/ColumnExpand/ColumnExpand.js +25 -17
- package/dist/esm/addons/Columns/ColumnExpand/ColumnExpand.js.map +2 -2
- package/dist/esm/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.js +24 -14
- package/dist/esm/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.js.map +2 -2
- package/dist/esm/addons/Filters/Components/CurrencyRangeFilter/CurrencyRangeFilterV2.js.map +2 -2
- package/dist/esm/addons/Filters/Components/CurrencyRangeFilter/index.js.map +2 -2
- package/dist/esm/addons/Filters/Components/DateRangeFilter/DateRangeFilterV2.js.map +2 -2
- package/dist/esm/addons/Filters/Components/DateRangeFilter/index.js.map +2 -2
- package/dist/esm/addons/Filters/Components/DateSwitcherFilter/DateSwitcherFilterV2.js.map +2 -2
- package/dist/esm/addons/Filters/Components/DateSwitcherFilter/index.js.map +2 -2
- package/dist/esm/addons/Filters/Components/NumberRangeFilter/NumberRangeFilterV2.js.map +2 -2
- package/dist/esm/addons/Filters/Components/NumberRangeFilter/index.js.map +2 -2
- package/dist/esm/addons/Filters/Components/SelectFilter/BaseSelectFilter.js.map +2 -2
- package/dist/esm/addons/Filters/Components/SelectFilter/BaseSelectFilterV2.js.map +2 -2
- package/dist/esm/addons/Filters/Components/SelectFilter/MultiCreatableFilter.js.map +2 -2
- package/dist/esm/addons/Filters/Components/SelectFilter/MultiCreatableFilterV2.js.map +2 -2
- package/dist/esm/addons/Filters/Components/SelectFilter/MultiSelectFilter.js.map +2 -2
- package/dist/esm/addons/Filters/Components/SelectFilter/MultiSelectFilterV2.js.map +2 -2
- package/dist/esm/addons/Filters/Components/SelectFilter/SingleCreatableFilter.js.map +2 -2
- package/dist/esm/addons/Filters/Components/SelectFilter/SingleCreatableFilterV2.js.map +2 -2
- package/dist/esm/addons/Filters/Components/SelectFilter/SingleSelectFilter.js.map +2 -2
- package/dist/esm/addons/Filters/Components/SelectFilter/SingleSelectFilterV2.js.map +2 -2
- package/dist/esm/addons/Filters/Components/SingleDateFilter/SingleDateFilterV2.js.map +2 -2
- package/dist/esm/addons/Filters/Components/SingleDateFilter/index.js.map +2 -2
- package/dist/esm/configs/constants.js +1 -3
- package/dist/esm/configs/constants.js.map +2 -2
- package/dist/esm/configs/index.js +0 -1
- package/dist/esm/configs/index.js.map +2 -2
- package/dist/esm/configs/useStore/index.js +2 -8
- package/dist/esm/configs/useStore/index.js.map +2 -2
- package/dist/esm/configs/useTableColsWithAddons.js +2 -2
- package/dist/esm/configs/useTableColsWithAddons.js.map +2 -2
- package/dist/esm/constants/index.js +2 -1
- package/dist/esm/constants/index.js.map +2 -2
- package/dist/esm/exported-related/EditableCell.js +6 -4
- package/dist/esm/exported-related/EditableCell.js.map +2 -2
- package/dist/esm/exported-related/FilterBar/FilterBarDropdownMenu.js +17 -63
- package/dist/esm/exported-related/FilterBar/FilterBarDropdownMenu.js.map +2 -2
- package/dist/esm/exported-related/FilterBar/FilterMenuButton.js +16 -16
- package/dist/esm/exported-related/FilterBar/FilterMenuButton.js.map +2 -2
- package/dist/esm/exported-related/FilterBar/PillsFromDataTableFilters.js.map +2 -2
- package/dist/esm/exported-related/FilterBar/dropdownMenuV2Bridge/bridgeTypes.js +2 -0
- package/dist/esm/{parts/RowVariants/types.js.map → exported-related/FilterBar/dropdownMenuV2Bridge/bridgeTypes.js.map} +1 -1
- package/dist/esm/exported-related/FilterBar/dropdownMenuV2Bridge/conversionHelpers.js +107 -0
- package/dist/esm/exported-related/FilterBar/dropdownMenuV2Bridge/conversionHelpers.js.map +7 -0
- package/dist/esm/exported-related/FilterBar/dropdownMenuV2Bridge/getHumanReadableWarnings.js +34 -0
- package/dist/esm/exported-related/FilterBar/dropdownMenuV2Bridge/getHumanReadableWarnings.js.map +7 -0
- package/dist/esm/exported-related/FilterBar/dropdownMenuV2Bridge/index.js +89 -0
- package/dist/esm/exported-related/FilterBar/dropdownMenuV2Bridge/index.js.map +7 -0
- package/dist/esm/exported-related/{FilterPopover → FilterBar/dropdownMenuV2Bridge}/types.js.map +1 -1
- package/dist/esm/exported-related/FilterPopover/FilterPopoverV2.js +17 -8
- package/dist/esm/exported-related/FilterPopover/FilterPopoverV2.js.map +2 -2
- package/dist/esm/exported-related/FilterPopover/index.js +11 -2
- package/dist/esm/exported-related/FilterPopover/index.js.map +2 -2
- package/dist/esm/exported-related/FilterPopover/styled.js +11 -0
- package/dist/esm/exported-related/FilterPopover/styled.js.map +2 -2
- package/dist/esm/exported-related/FilterPopover/useGetFilterHandlers.js.map +1 -1
- package/dist/esm/exported-related/FilterTypes.js +10 -0
- package/dist/esm/exported-related/FilterTypes.js.map +2 -2
- package/dist/esm/exported-related/RowRenderer/DefaultRowContentRenderer.js.map +2 -2
- package/dist/esm/exported-related/RowRenderer/index.js +3 -1
- package/dist/esm/exported-related/RowRenderer/index.js.map +2 -2
- package/dist/esm/exported-related/Toolbar/Toolbar.js +36 -22
- package/dist/esm/exported-related/Toolbar/Toolbar.js.map +2 -2
- package/dist/esm/helpers/getIdFromUniqueRowAccessor.js.map +1 -1
- package/dist/esm/helpers/gridLayoutHelpers.js +2 -0
- package/dist/esm/helpers/gridLayoutHelpers.js.map +2 -2
- package/dist/esm/helpers/index.js +1 -0
- package/dist/esm/helpers/index.js.map +2 -2
- package/dist/esm/helpers/smallButtonSize.js +17 -0
- package/dist/esm/helpers/smallButtonSize.js.map +7 -0
- package/dist/esm/parts/Cells/CellFactory.js.map +2 -2
- package/dist/esm/parts/Cells/index.js +19 -8
- package/dist/esm/parts/Cells/index.js.map +2 -2
- package/dist/esm/parts/DnDHandle.js +5 -3
- package/dist/esm/parts/DnDHandle.js.map +2 -2
- package/dist/esm/parts/DropIndicator.js.map +2 -2
- package/dist/esm/parts/EmptyContent.js +2 -2
- package/dist/esm/parts/EmptyContent.js.map +2 -2
- package/dist/esm/parts/FilterBar/FilterBarMenuButtonAddon.js +58 -0
- package/dist/esm/parts/FilterBar/FilterBarMenuButtonAddon.js.map +7 -0
- package/dist/esm/parts/FilterBar/FiltersBar.js +5 -40
- package/dist/esm/parts/FilterBar/FiltersBar.js.map +2 -2
- package/dist/esm/parts/FilterBar/components/MultiSelectPill.js.map +2 -2
- package/dist/esm/parts/FilterBar/convertExtraOptions.js +16 -0
- package/dist/esm/parts/FilterBar/convertExtraOptions.js.map +7 -0
- package/dist/esm/parts/Headers/EmptyChildrenGroup.js +4 -2
- package/dist/esm/parts/Headers/EmptyChildrenGroup.js.map +2 -2
- package/dist/esm/parts/Headers/HeaderCell.js +29 -11
- package/dist/esm/parts/Headers/HeaderCell.js.map +2 -2
- package/dist/esm/parts/Headers/HeaderCellGroup.js +4 -2
- package/dist/esm/parts/Headers/HeaderCellGroup.js.map +2 -2
- package/dist/esm/parts/Headers/HeaderCellTitle.js +5 -1
- package/dist/esm/parts/Headers/HeaderCellTitle.js.map +2 -2
- package/dist/esm/parts/Headers/HeaderResizer.js +4 -2
- package/dist/esm/parts/Headers/HeaderResizer.js.map +2 -2
- package/dist/esm/parts/Headers/useHeaderCellConfig.js.map +2 -2
- package/dist/esm/parts/Headers/useHeaderCellHandlers.js.map +2 -2
- package/dist/esm/parts/Headers/useHeaderResizer.js +3 -2
- package/dist/esm/parts/Headers/useHeaderResizer.js.map +2 -2
- package/dist/esm/parts/HoC/withConditionalDnDSortableContext.js.map +2 -2
- package/dist/esm/parts/RowVariants/RowVariantHeader.js +7 -3
- package/dist/esm/parts/RowVariants/RowVariantHeader.js.map +2 -2
- package/dist/esm/parts/SkeletonTable.js +1 -1
- package/dist/esm/parts/SkeletonTable.js.map +2 -2
- package/dist/esm/parts/SortByCaret.js +0 -1
- package/dist/esm/parts/SortByCaret.js.map +2 -2
- package/dist/esm/react-desc-prop-types.js +75 -21
- package/dist/esm/react-desc-prop-types.js.map +2 -2
- package/dist/esm/styled.js +8 -2
- package/dist/esm/styled.js.map +2 -2
- package/dist/esm/tentative-typescript-testing-for-unsafe-type/README.md +9 -0
- package/dist/esm/tentative-typescript-testing-for-unsafe-type/filter-bar-props.js +48 -0
- package/dist/esm/tentative-typescript-testing-for-unsafe-type/filter-bar-props.js.map +7 -0
- package/dist/esm/tentative-typescript-testing-for-unsafe-type/get-row-variant.js +15 -0
- package/dist/esm/tentative-typescript-testing-for-unsafe-type/get-row-variant.js.map +7 -0
- package/dist/esm/tentative-typescript-testing-for-unsafe-type/sizes.js +11 -0
- package/dist/esm/tentative-typescript-testing-for-unsafe-type/sizes.js.map +7 -0
- package/dist/esm/tentative-typescript-testing-for-unsafe-type/slot-props.js +111 -0
- package/dist/esm/tentative-typescript-testing-for-unsafe-type/slot-props.js.map +7 -0
- package/dist/types/TruncatedTooltipText.d.ts +2 -7
- package/dist/types/addons/Columns/ColumnAction/ColumnAction.d.ts +1 -3
- package/dist/types/addons/Filters/Components/CurrencyRangeFilter/CurrencyRangeFilterV2.d.ts +1 -6
- package/dist/types/addons/Filters/Components/CurrencyRangeFilter/index.d.ts +1 -6
- package/dist/types/addons/Filters/Components/DateRangeFilter/DateRangeFilterV2.d.ts +1 -6
- package/dist/types/addons/Filters/Components/DateRangeFilter/index.d.ts +1 -6
- package/dist/types/addons/Filters/Components/DateSwitcherFilter/DateSwitcherFilterV2.d.ts +1 -7
- package/dist/types/addons/Filters/Components/DateSwitcherFilter/index.d.ts +1 -7
- package/dist/types/addons/Filters/Components/NumberRangeFilter/NumberRangeFilterV2.d.ts +1 -6
- package/dist/types/addons/Filters/Components/NumberRangeFilter/index.d.ts +1 -6
- package/dist/types/addons/Filters/Components/SelectFilter/BaseSelectFilter.d.ts +1 -9
- package/dist/types/addons/Filters/Components/SelectFilter/BaseSelectFilterV2.d.ts +1 -9
- package/dist/types/addons/Filters/Components/SelectFilter/MultiCreatableFilter.d.ts +1 -4
- package/dist/types/addons/Filters/Components/SelectFilter/MultiCreatableFilterV2.d.ts +1 -4
- package/dist/types/addons/Filters/Components/SelectFilter/MultiSelectFilter.d.ts +1 -4
- package/dist/types/addons/Filters/Components/SelectFilter/MultiSelectFilterV2.d.ts +1 -4
- package/dist/types/addons/Filters/Components/SelectFilter/SingleCreatableFilter.d.ts +1 -4
- package/dist/types/addons/Filters/Components/SelectFilter/SingleCreatableFilterV2.d.ts +1 -4
- package/dist/types/addons/Filters/Components/SelectFilter/SingleSelectFilter.d.ts +1 -4
- package/dist/types/addons/Filters/Components/SelectFilter/SingleSelectFilterV2.d.ts +1 -4
- package/dist/types/addons/Filters/Components/SingleDateFilter/SingleDateFilterV2.d.ts +1 -3
- package/dist/types/addons/Filters/Components/SingleDateFilter/index.d.ts +1 -3
- package/dist/types/configs/constants.d.ts +0 -1
- package/dist/types/configs/index.d.ts +0 -1
- package/dist/types/configs/useStore/index.d.ts +1 -2
- package/dist/types/constants/index.d.ts +4 -0
- package/dist/types/exported-related/FilterBar/FilterBarDropdownMenu.d.ts +8 -7
- package/dist/types/exported-related/FilterBar/FilterMenuButton.d.ts +2 -19
- package/dist/types/exported-related/FilterBar/PillsFromDataTableFilters.d.ts +1 -10
- package/dist/types/exported-related/FilterBar/dropdownMenuV2Bridge/bridgeTypes.d.ts +22 -0
- package/dist/types/exported-related/FilterBar/dropdownMenuV2Bridge/conversionHelpers.d.ts +78 -0
- package/dist/types/exported-related/FilterBar/dropdownMenuV2Bridge/getHumanReadableWarnings.d.ts +7 -0
- package/dist/types/exported-related/FilterBar/dropdownMenuV2Bridge/index.d.ts +14 -0
- package/dist/types/exported-related/FilterBar/dropdownMenuV2Bridge/types.d.ts +60 -0
- package/dist/types/exported-related/FilterPopover/FilterPopoverV2.d.ts +2 -2
- package/dist/types/exported-related/FilterPopover/index.d.ts +2 -2
- package/dist/types/exported-related/FilterPopover/styled.d.ts +3 -1
- package/dist/types/exported-related/FilterPopover/useGetFilterHandlers.d.ts +2 -2
- package/dist/types/exported-related/FilterTypes.d.ts +10 -0
- package/dist/types/exported-related/RowRenderer/DefaultRowContentRenderer.d.ts +2 -2
- package/dist/types/exported-related/RowRenderer/index.d.ts +1 -16
- package/dist/types/exported-related/Toolbar/Toolbar.d.ts +1 -7
- package/dist/types/helpers/gridLayoutHelpers.d.ts +1 -0
- package/dist/types/helpers/index.d.ts +1 -0
- package/dist/types/helpers/smallButtonSize.d.ts +4 -0
- package/dist/types/parts/Cells/CellFactory.d.ts +1 -10
- package/dist/types/parts/DnDHandle.d.ts +4 -0
- package/dist/types/parts/DropIndicator.d.ts +1 -7
- package/dist/types/parts/FilterBar/FilterBarMenuButtonAddon.d.ts +14 -0
- package/dist/types/parts/FilterBar/components/MultiSelectPill.d.ts +1 -4
- package/dist/types/parts/FilterBar/convertExtraOptions.d.ts +8 -0
- package/dist/types/parts/Headers/EmptyChildrenGroup.d.ts +3 -1
- package/dist/types/parts/Headers/HeaderCell.d.ts +1 -7
- package/dist/types/parts/Headers/HeaderCellTitle.d.ts +1 -8
- package/dist/types/parts/Headers/useHeaderCellConfig.d.ts +1 -15
- package/dist/types/parts/Headers/useHeaderCellHandlers.d.ts +1 -22
- package/dist/types/parts/HoC/withConditionalDnDSortableContext.d.ts +1 -6
- package/dist/types/parts/SkeletonTable.d.ts +1 -1
- package/dist/types/react-desc-prop-types.d.ts +305 -6
- package/package.json +29 -31
- package/skills/ds-data-table-boundaries/SKILL.md +50 -43
- package/skills/ds-data-table-columns/SKILL.md +17 -11
- package/skills/ds-data-table-expandable/SKILL.md +21 -13
- package/skills/ds-data-table-feedback/SKILL.md +9 -9
- package/skills/ds-data-table-filtering/SKILL.md +32 -11
- package/skills/ds-data-table-health-check/SKILL.md +7 -7
- package/skills/ds-data-table-migration/SKILL.md +8 -7
- package/skills/ds-data-table-pagination/SKILL.md +6 -6
- package/skills/ds-data-table-row-variants/SKILL.md +34 -22
- package/skills/ds-data-table-selection/SKILL.md +23 -25
- package/skills/ds-data-table-setup/SKILL.md +31 -13
- package/skills/ds-data-table-slots/SKILL.md +55 -25
- package/dist/cjs/addons/Editables/DateEditableCell/DateEditableCell.js +0 -63
- package/dist/cjs/addons/Editables/DateEditableCell/DateEditableCell.js.map +0 -7
- package/dist/cjs/configs/fixedSizes.js.map +0 -7
- package/dist/cjs/configs/useInternalStateConfig.js +0 -80
- package/dist/cjs/configs/useInternalStateConfig.js.map +0 -7
- package/dist/cjs/configs/useValidateProps.js +0 -47
- package/dist/cjs/configs/useValidateProps.js.map +0 -7
- package/dist/cjs/exported-related/FilterPopover/types.js.map +0 -7
- package/dist/cjs/parts/Cells/Cell.js +0 -126
- package/dist/cjs/parts/Cells/Cell.js.map +0 -7
- package/dist/cjs/parts/FilterBar/DeprecatedDropdown.js +0 -85
- package/dist/cjs/parts/FilterBar/DeprecatedDropdown.js.map +0 -7
- package/dist/cjs/parts/FilterBar/index.js.map +0 -7
- package/dist/cjs/parts/RowVariants/types.js.map +0 -7
- package/dist/cjs/parts/internal.js.map +0 -7
- package/dist/esm/addons/Editables/DateEditableCell/DateEditableCell.js +0 -33
- package/dist/esm/addons/Editables/DateEditableCell/DateEditableCell.js.map +0 -7
- package/dist/esm/configs/fixedSizes.js +0 -8
- package/dist/esm/configs/fixedSizes.js.map +0 -7
- package/dist/esm/configs/useInternalStateConfig.js +0 -50
- package/dist/esm/configs/useInternalStateConfig.js.map +0 -7
- package/dist/esm/configs/useValidateProps.js +0 -17
- package/dist/esm/configs/useValidateProps.js.map +0 -7
- package/dist/esm/parts/Cells/Cell.js +0 -96
- package/dist/esm/parts/Cells/Cell.js.map +0 -7
- package/dist/esm/parts/FilterBar/DeprecatedDropdown.js +0 -55
- package/dist/esm/parts/FilterBar/DeprecatedDropdown.js.map +0 -7
- package/dist/esm/parts/FilterBar/index.js +0 -6
- package/dist/esm/parts/FilterBar/index.js.map +0 -7
- package/dist/esm/parts/RowVariants/types.js +0 -2
- package/dist/esm/parts/internal.js +0 -8
- package/dist/esm/parts/internal.js.map +0 -7
- package/dist/types/addons/Editables/DateEditableCell/DateEditableCell.d.ts +0 -7
- package/dist/types/configs/fixedSizes.d.ts +0 -3
- package/dist/types/configs/useInternalStateConfig.d.ts +0 -12
- package/dist/types/configs/useValidateProps.d.ts +0 -2
- package/dist/types/exported-related/FilterPopover/types.d.ts +0 -33
- package/dist/types/parts/Cells/Cell.d.ts +0 -12
- package/dist/types/parts/FilterBar/DeprecatedDropdown.d.ts +0 -13
- package/dist/types/parts/FilterBar/index.d.ts +0 -1
- package/dist/types/parts/RowVariants/types.d.ts +0 -19
- package/dist/types/parts/internal.d.ts +0 -2
- /package/dist/cjs/exported-related/{FilterPopover → FilterBar/dropdownMenuV2Bridge}/types.js +0 -0
- /package/dist/esm/exported-related/{FilterPopover → FilterBar/dropdownMenuV2Bridge}/types.js +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../src/exported-related/EditableCell.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useCallback, useLayoutEffect, useState } from 'react';\nimport { usePropsStore } from '../configs/useStore/createInternalAndPropsContext.js';\nimport type { DSDataTableT } from '../react-desc-prop-types.js';\nimport { StyledEditableContainer, StyledPencilIcon } from '../styled.js';\n\nexport const EditableCell: React.ComponentType<{\n StandardRender: JSX.Element;\n EditableRenderer: JSX.Element;\n cell: DSDataTableT.Cell<HTMLDivElement>;\n isRowSelected?: boolean;\n}> = (props) => {\n const { StandardRender, EditableRenderer, cell, isRowSelected } = props;\n const domIdAffix = usePropsStore((state) => state.domIdAffix);\n const virtualListHelpers = usePropsStore((state) => state.virtualListHelpers);\n const getOwnerProps = usePropsStore((store) => store.get);\n const getOwnerPropsArguments = React.useCallback(() => cell, [cell]);\n\n const [isEditing, setIsEditing] = useState(false);\n const [lastIsEditing, setLastIsEditing] = useState(false);\n // When an editable cell is switched on-off, we recalculate the height of the rows\n useLayoutEffect(() => {\n if (isEditing !== lastIsEditing) {\n virtualListHelpers.measure();\n setLastIsEditing(isEditing);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isEditing]);\n\n const handleCellClick = useCallback(\n (e: React.MouseEvent | React.KeyboardEvent) => {\n e.stopPropagation();\n if (!isEditing) {\n setIsEditing(true);\n }\n },\n [isEditing],\n );\n\n const handleOnKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (isEditing) {\n e.stopPropagation();\n if (['Enter', 'Escape'].includes(e.code)) {\n setIsEditing(false);\n }\n } else if (['Enter', 'Space'].includes(e.code)) {\n handleCellClick(e);\n }\n },\n [isEditing, handleCellClick, setIsEditing],\n );\n\n const handleOnBlur = useCallback(\n (event: React.FocusEvent) => {\n if (isEditing && !event.currentTarget?.contains(event.relatedTarget)) {\n // Not triggered when swapping focus between children\n setIsEditing(false);\n }\n },\n [isEditing],\n );\n const cols = !isEditing ? ['auto', 'min-content'] : ['auto'];\n return (\n <StyledEditableContainer\n cols={cols}\n tabIndex={isRowSelected && !isEditing ? 0 : -1}\n innerRef={cell.ref}\n onClick={handleCellClick}\n onKeyDown={handleOnKeyDown}\n onBlur={handleOnBlur}\n shouldDisplayEditIcon={cell.column.alwaysDisplayEditIcon}\n role=\"group\"\n aria-labelledby={isEditing ? undefined :
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useCallback, useLayoutEffect, useState } from 'react';\nimport { usePropsStore } from '../configs/useStore/createInternalAndPropsContext.js';\nimport type { DSDataTableT } from '../react-desc-prop-types.js';\nimport { StyledEditableContainer, StyledPencilIcon } from '../styled.js';\n\nexport const EditableCell: React.ComponentType<{\n StandardRender: JSX.Element;\n EditableRenderer: JSX.Element;\n cell: DSDataTableT.Cell<HTMLDivElement>;\n isRowSelected?: boolean;\n}> = (props) => {\n const { StandardRender, EditableRenderer, cell, isRowSelected } = props;\n const domIdAffix = usePropsStore((state) => state.domIdAffix);\n const virtualListHelpers = usePropsStore((state) => state.virtualListHelpers);\n const getOwnerProps = usePropsStore((store) => store.get);\n const getOwnerPropsArguments = React.useCallback(() => cell, [cell]);\n // why two separate callbacks for getOwnerPropsArguments and getPencilIconArguments?\n // check .github/memories/antipattern_non_extensible_api_shapes.md but in short, getOwnerPropsArguments is a legacy shape\n // we don't want to introduce breaking change, but React.useCallback(() => cell, [cell]); was the wrong call back in the day.\n const getPencilIconArguments = React.useCallback(() => ({ cell }), [cell]);\n\n const [isEditing, setIsEditing] = useState(false);\n const instructionId = `editable-cell-${cell.id}-${domIdAffix}`;\n const [lastIsEditing, setLastIsEditing] = useState(false);\n // When an editable cell is switched on-off, we recalculate the height of the rows\n useLayoutEffect(() => {\n if (isEditing !== lastIsEditing) {\n virtualListHelpers.measure();\n setLastIsEditing(isEditing);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isEditing]);\n\n const handleCellClick = useCallback(\n (e: React.MouseEvent | React.KeyboardEvent) => {\n e.stopPropagation();\n if (!isEditing) {\n setIsEditing(true);\n }\n },\n [isEditing],\n );\n\n const handleOnKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (isEditing) {\n e.stopPropagation();\n if (['Enter', 'Escape'].includes(e.code)) {\n setIsEditing(false);\n }\n } else if (['Enter', 'Space'].includes(e.code)) {\n handleCellClick(e);\n }\n },\n [isEditing, handleCellClick, setIsEditing],\n );\n\n const handleOnBlur = useCallback(\n (event: React.FocusEvent) => {\n if (isEditing && !event.currentTarget?.contains(event.relatedTarget)) {\n // Not triggered when swapping focus between children\n setIsEditing(false);\n }\n },\n [isEditing],\n );\n const cols = !isEditing ? ['auto', 'min-content'] : ['auto'];\n return (\n <StyledEditableContainer\n cols={cols}\n tabIndex={isRowSelected && !isEditing ? 0 : -1}\n innerRef={cell.ref}\n onClick={handleCellClick}\n onKeyDown={handleOnKeyDown}\n onBlur={handleOnBlur}\n shouldDisplayEditIcon={cell.column.alwaysDisplayEditIcon}\n role=\"group\"\n aria-labelledby={isEditing ? undefined : instructionId}\n getOwnerProps={getOwnerProps}\n getOwnerPropsArguments={getOwnerPropsArguments}\n >\n {!isEditing ? StandardRender : EditableRenderer}\n {!isEditing && <StyledPencilIcon getOwnerProps={getOwnerProps} getOwnerPropsArguments={getPencilIconArguments} />}\n <span id={instructionId} style={{ display: 'none' }} aria-hidden=\"true\">\n {cell.value as string}, editable cell. To edit the content of this cell, press the Enter key\n </span>\n </StyledEditableContainer>\n );\n};\n"],
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;ACkFF,cACf,YADe;AAlFrB,OAAOA,UAAS,aAAa,iBAAiB,gBAAgB;AAC9D,SAAS,qBAAqB;AAE9B,SAAS,yBAAyB,wBAAwB;AAEnD,MAAM,eAKR,CAAC,UAAU;AACd,QAAM,EAAE,gBAAgB,kBAAkB,MAAM,cAAc,IAAI;AAClE,QAAM,aAAa,cAAc,CAAC,UAAU,MAAM,UAAU;AAC5D,QAAM,qBAAqB,cAAc,CAAC,UAAU,MAAM,kBAAkB;AAC5E,QAAM,gBAAgB,cAAc,CAAC,UAAU,MAAM,GAAG;AACxD,QAAM,yBAAyBA,OAAM,YAAY,MAAM,MAAM,CAAC,IAAI,CAAC;AAInE,QAAM,yBAAyBA,OAAM,YAAY,OAAO,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC;AAEzE,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,KAAK;AAChD,QAAM,gBAAgB,iBAAiB,KAAK,EAAE,IAAI,UAAU;AAC5D,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAAS,KAAK;AAExD,kBAAgB,MAAM;AACpB,QAAI,cAAc,eAAe;AAC/B,yBAAmB,QAAQ;AAC3B,uBAAiB,SAAS;AAAA,IAC5B;AAAA,EAEF,GAAG,CAAC,SAAS,CAAC;AAEd,QAAM,kBAAkB;AAAA,IACtB,CAAC,MAA8C;AAC7C,QAAE,gBAAgB;AAClB,UAAI,CAAC,WAAW;AACd,qBAAa,IAAI;AAAA,MACnB;AAAA,IACF;AAAA,IACA,CAAC,SAAS;AAAA,EACZ;AAEA,QAAM,kBAAkB;AAAA,IACtB,CAAC,MAA2B;AAC1B,UAAI,WAAW;AACb,UAAE,gBAAgB;AAClB,YAAI,CAAC,SAAS,QAAQ,EAAE,SAAS,EAAE,IAAI,GAAG;AACxC,uBAAa,KAAK;AAAA,QACpB;AAAA,MACF,WAAW,CAAC,SAAS,OAAO,EAAE,SAAS,EAAE,IAAI,GAAG;AAC9C,wBAAgB,CAAC;AAAA,MACnB;AAAA,IACF;AAAA,IACA,CAAC,WAAW,iBAAiB,YAAY;AAAA,EAC3C;AAEA,QAAM,eAAe;AAAA,IACnB,CAAC,UAA4B;AAC3B,UAAI,aAAa,CAAC,MAAM,eAAe,SAAS,MAAM,aAAa,GAAG;AAEpE,qBAAa,KAAK;AAAA,MACpB;AAAA,IACF;AAAA,IACA,CAAC,SAAS;AAAA,EACZ;AACA,QAAM,OAAO,CAAC,YAAY,CAAC,QAAQ,aAAa,IAAI,CAAC,MAAM;AAC3D,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,UAAU,iBAAiB,CAAC,YAAY,IAAI;AAAA,MAC5C,UAAU,KAAK;AAAA,MACf,SAAS;AAAA,MACT,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,uBAAuB,KAAK,OAAO;AAAA,MACnC,MAAK;AAAA,MACL,mBAAiB,YAAY,SAAY;AAAA,MACzC;AAAA,MACA;AAAA,MAEC;AAAA,SAAC,YAAY,iBAAiB;AAAA,QAC9B,CAAC,aAAa,oBAAC,oBAAiB,eAA8B,wBAAwB,wBAAwB;AAAA,QAC/G,qBAAC,UAAK,IAAI,eAAe,OAAO,EAAE,SAAS,OAAO,GAAG,eAAY,QAC9D;AAAA,eAAK;AAAA,UAAgB;AAAA,WACxB;AAAA;AAAA;AAAA,EACF;AAEJ;",
|
|
6
6
|
"names": ["React"]
|
|
7
7
|
}
|
|
@@ -1,76 +1,30 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
|
-
import {
|
|
4
|
-
import { checkAndConvertOptions, DSDropdownMenuV2 } from "@elliemae/ds-dropdownmenu-v2";
|
|
5
|
-
import { DSButtonV2, BUTTON_TYPES } from "@elliemae/ds-button-v2";
|
|
6
|
-
import { MoreOptionsVert } from "@elliemae/ds-icons";
|
|
7
|
-
import { DATA_TESTID } from "../../configs/index.js";
|
|
3
|
+
import { useCallback, useMemo } from "react";
|
|
8
4
|
import { usePropsStore } from "../../configs/useStore/createInternalAndPropsContext.js";
|
|
9
5
|
import { FilterMenuButton } from "./FilterMenuButton.js";
|
|
6
|
+
import { convertDropdownOptionsToMenuButtonOptions } from "./dropdownMenuV2Bridge/index.js";
|
|
10
7
|
const FilterBarDropdownMenu = (props) => {
|
|
11
8
|
const onFiltersChange = usePropsStore((state) => state.onFiltersChange);
|
|
12
|
-
const
|
|
13
|
-
const { options: extraOptions
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}, [
|
|
9
|
+
const getOwnerProps = usePropsStore((state) => state.get);
|
|
10
|
+
const { options: extraOptions, innerRef } = props;
|
|
11
|
+
const convertedOptions = useMemo(() => {
|
|
12
|
+
const { convertedOptions: converted, report } = convertDropdownOptionsToMenuButtonOptions(extraOptions ?? []);
|
|
13
|
+
report.humanReadableWarnings.forEach((warning) => console.warn(warning));
|
|
14
|
+
return converted;
|
|
15
|
+
}, [extraOptions]);
|
|
19
16
|
const onClearFilters = useCallback(() => {
|
|
20
17
|
onFiltersChange([]);
|
|
21
18
|
}, [onFiltersChange]);
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
onKeyDown: (e) => {
|
|
31
|
-
if (["Enter", "Space"].includes(e.code)) removeFilters(e);
|
|
32
|
-
}
|
|
33
|
-
},
|
|
34
|
-
...extraOptions
|
|
35
|
-
],
|
|
36
|
-
[extraOptions, removeFilters]
|
|
19
|
+
return /* @__PURE__ */ jsx(
|
|
20
|
+
FilterMenuButton,
|
|
21
|
+
{
|
|
22
|
+
options: convertedOptions,
|
|
23
|
+
onClearFilters,
|
|
24
|
+
innerRef,
|
|
25
|
+
getOwnerProps
|
|
26
|
+
}
|
|
37
27
|
);
|
|
38
|
-
try {
|
|
39
|
-
const { convertedOptions, report } = checkAndConvertOptions(extraOptions);
|
|
40
|
-
report.humanReadableWarnings.forEach((warning) => console.warn(warning));
|
|
41
|
-
return /* @__PURE__ */ jsx(FilterMenuButton, { options: convertedOptions, onClearFilters, innerRef });
|
|
42
|
-
} catch {
|
|
43
|
-
console.error(`
|
|
44
|
-
In upcoming releases, DSDropdownMenuV2 will be deprecated as it is not accessible.
|
|
45
|
-
In effort to have compliant components we are enforcing MenuButton usage, by converting options.
|
|
46
|
-
If you find this error it is because the provided options are not possible to be made A11y accessible, and we are displaying the DSDropdownMenuV2 as fallback.`);
|
|
47
|
-
return /* @__PURE__ */ jsx("div", { style: { marginLeft: "auto" }, children: /* @__PURE__ */ jsx(
|
|
48
|
-
DSDropdownMenuV2,
|
|
49
|
-
{
|
|
50
|
-
isOpened,
|
|
51
|
-
startPlacementPreference: "bottom-end",
|
|
52
|
-
options,
|
|
53
|
-
onClickOutside: () => {
|
|
54
|
-
setIsOpened(false);
|
|
55
|
-
},
|
|
56
|
-
onKeyDown: (e) => {
|
|
57
|
-
if (e.code === "Escape") innerRef?.current?.focus?.();
|
|
58
|
-
},
|
|
59
|
-
children: /* @__PURE__ */ jsx(
|
|
60
|
-
DSButtonV2,
|
|
61
|
-
{
|
|
62
|
-
buttonType: BUTTON_TYPES.ICON,
|
|
63
|
-
onClick: () => setIsOpened((prevOpened) => !prevOpened),
|
|
64
|
-
innerRef,
|
|
65
|
-
"aria-label": "Filter bar addon",
|
|
66
|
-
"data-testid": DATA_TESTID.DATA_TABLE_FILTER_BAR_DD_MENU_BUTTON,
|
|
67
|
-
...restProps,
|
|
68
|
-
children: /* @__PURE__ */ jsx(MoreOptionsVert, {})
|
|
69
|
-
}
|
|
70
|
-
)
|
|
71
|
-
}
|
|
72
|
-
) });
|
|
73
|
-
}
|
|
74
28
|
};
|
|
75
29
|
export {
|
|
76
30
|
FilterBarDropdownMenu
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/exported-related/FilterBar/FilterBarDropdownMenu.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, {
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useCallback, useMemo } from 'react';\nimport { usePropsStore } from '../../configs/useStore/createInternalAndPropsContext.js';\nimport { FilterMenuButton } from './FilterMenuButton.js';\nimport { convertDropdownOptionsToMenuButtonOptions } from './dropdownMenuV2Bridge/index.js';\nimport type { DSDataTableT } from '../../react-desc-prop-types.js';\n\n/** PUI-19093 (https://jira.elliemae.io/browse/PUI-19093)\n * The filter bar addon always renders `DSMenuButton`, the accessible menu (PUI-15557 started it, PUI-19093 finished it).\n * The `options` keep the shape `DSDropdownMenuV2` items had, so existing callers do not change: they are translated\n * by a translation layer local to this package (`./dropdownMenuV2Bridge`). What cannot be translated is dropped and\n * reported through `console.warn`; there is no `DSDropdownMenuV2` fallback anymore.\n */\nexport const FilterBarDropdownMenu: React.ComponentType<DSDataTableT.FilterBarDropdownMenuProps> = (props) => {\n const onFiltersChange = usePropsStore((state) => state.onFiltersChange);\n const getOwnerProps = usePropsStore((state) => state.get);\n const { options: extraOptions, innerRef } = props;\n\n const convertedOptions = useMemo(() => {\n const { convertedOptions: converted, report } = convertDropdownOptionsToMenuButtonOptions(extraOptions ?? []);\n // eslint-disable-next-line no-console\n report.humanReadableWarnings.forEach((warning) => console.warn(warning));\n return converted;\n }, [extraOptions]);\n\n const onClearFilters = useCallback(() => {\n onFiltersChange([]);\n }, [onFiltersChange]);\n\n return (\n <FilterMenuButton\n options={convertedOptions}\n onClearFilters={onClearFilters}\n innerRef={innerRef}\n getOwnerProps={getOwnerProps}\n />\n );\n};\n"],
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;AC6BnB;AA7BJ,SAAgB,aAAa,eAAe;AAC5C,SAAS,qBAAqB;AAC9B,SAAS,wBAAwB;AACjC,SAAS,iDAAiD;AASnD,MAAM,wBAAsF,CAAC,UAAU;AAC5G,QAAM,kBAAkB,cAAc,CAAC,UAAU,MAAM,eAAe;AACtE,QAAM,gBAAgB,cAAc,CAAC,UAAU,MAAM,GAAG;AACxD,QAAM,EAAE,SAAS,cAAc,SAAS,IAAI;AAE5C,QAAM,mBAAmB,QAAQ,MAAM;AACrC,UAAM,EAAE,kBAAkB,WAAW,OAAO,IAAI,0CAA0C,gBAAgB,CAAC,CAAC;AAE5G,WAAO,sBAAsB,QAAQ,CAAC,YAAY,QAAQ,KAAK,OAAO,CAAC;AACvE,WAAO;AAAA,EACT,GAAG,CAAC,YAAY,CAAC;AAEjB,QAAM,iBAAiB,YAAY,MAAM;AACvC,oBAAgB,CAAC,CAAC;AAAA,EACpB,GAAG,CAAC,eAAe,CAAC;AAEpB,SACE;AAAA,IAAC;AAAA;AAAA,MACC,SAAS;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA;AAAA,EACF;AAEJ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -4,7 +4,7 @@ import { BUTTON_TYPES } from "@elliemae/ds-button-v2";
|
|
|
4
4
|
import { MoreOptionsVert } from "@elliemae/ds-icons";
|
|
5
5
|
import { DSMenuButton, MENU_ITEMS_TYPES } from "@elliemae/ds-menu-button";
|
|
6
6
|
import { styled } from "@elliemae/ds-system";
|
|
7
|
-
import { useMemo } from "react";
|
|
7
|
+
import { useCallback, useMemo } from "react";
|
|
8
8
|
import { DATA_TESTID } from "../../configs/index.js";
|
|
9
9
|
import { DATA_TABLE_SLOTS, DSDataTableName } from "../../constants/index.js";
|
|
10
10
|
const StyledDSMenuButton = styled(DSMenuButton, {
|
|
@@ -18,8 +18,14 @@ const FilterMenuButton = ({
|
|
|
18
18
|
onItemSelected,
|
|
19
19
|
onActivateItem,
|
|
20
20
|
selectedItems,
|
|
21
|
+
onOpen,
|
|
22
|
+
onClose,
|
|
21
23
|
...restProps
|
|
22
24
|
}) => {
|
|
25
|
+
const preventDefaultOnActivationKeys = useCallback((e) => {
|
|
26
|
+
if (["Enter", "Space"].includes(e.code)) e.preventDefault();
|
|
27
|
+
return null;
|
|
28
|
+
}, []);
|
|
23
29
|
const menuButtonOptions = useMemo(
|
|
24
30
|
() => [
|
|
25
31
|
{
|
|
@@ -28,33 +34,25 @@ const FilterMenuButton = ({
|
|
|
28
34
|
label: "Clear Filters",
|
|
29
35
|
value: "clear",
|
|
30
36
|
onClick: onClearFilters,
|
|
31
|
-
onKeyDown:
|
|
32
|
-
if (["Enter", "Space"].includes(e.code)) {
|
|
33
|
-
e.preventDefault();
|
|
34
|
-
onClearFilters();
|
|
35
|
-
}
|
|
36
|
-
return null;
|
|
37
|
-
}
|
|
37
|
+
onKeyDown: preventDefaultOnActivationKeys
|
|
38
38
|
},
|
|
39
39
|
...options.map((option) => {
|
|
40
40
|
if (option.type !== MENU_ITEMS_TYPES.SEPARATOR && option.type !== MENU_ITEMS_TYPES.GROUP && option.type !== MENU_ITEMS_TYPES.SKELETON_ITEM) {
|
|
41
41
|
return {
|
|
42
42
|
...option,
|
|
43
43
|
onKeyDown: (e) => {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
option.onClick(e);
|
|
48
|
-
}
|
|
44
|
+
preventDefaultOnActivationKeys(e);
|
|
45
|
+
if (option.type === MENU_ITEMS_TYPES.WITH_SUBMENU_ITEM && ["Enter", "Space"].includes(e.code)) {
|
|
46
|
+
option.onClick?.(e);
|
|
49
47
|
}
|
|
50
|
-
return null;
|
|
48
|
+
return option.onKeyDown?.(e) ?? null;
|
|
51
49
|
}
|
|
52
50
|
};
|
|
53
51
|
}
|
|
54
52
|
return option;
|
|
55
53
|
})
|
|
56
54
|
],
|
|
57
|
-
[options, onClearFilters]
|
|
55
|
+
[options, onClearFilters, preventDefaultOnActivationKeys]
|
|
58
56
|
);
|
|
59
57
|
return /* @__PURE__ */ jsx("div", { style: { marginLeft: "auto" }, children: /* @__PURE__ */ jsx(
|
|
60
58
|
StyledDSMenuButton,
|
|
@@ -64,7 +62,9 @@ const FilterMenuButton = ({
|
|
|
64
62
|
innerRef,
|
|
65
63
|
"aria-label": "Filter bar addon",
|
|
66
64
|
"data-testid": DATA_TESTID.DATA_TABLE_FILTER_BAR_DD_MENU_BUTTON,
|
|
67
|
-
|
|
65
|
+
onOpen,
|
|
66
|
+
onClose: (metainfo) => {
|
|
67
|
+
onClose?.(metainfo);
|
|
68
68
|
innerRef?.current?.focus?.();
|
|
69
69
|
},
|
|
70
70
|
onItemSelected: onItemSelected ?? (() => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/exported-related/FilterBar/FilterMenuButton.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { BUTTON_TYPES } from '@elliemae/ds-button-v2';\nimport { MoreOptionsVert } from '@elliemae/ds-icons';\nimport { DSMenuButton, MENU_ITEMS_TYPES, type DSMenuButtonT } from '@elliemae/ds-menu-button';\nimport { styled } from '@elliemae/ds-system';\nimport
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { BUTTON_TYPES } from '@elliemae/ds-button-v2';\nimport { MoreOptionsVert } from '@elliemae/ds-icons';\nimport { DSMenuButton, MENU_ITEMS_TYPES, type DSMenuButtonT } from '@elliemae/ds-menu-button';\nimport { styled } from '@elliemae/ds-system';\nimport { useCallback, useMemo } from 'react';\nimport { DATA_TESTID } from '../../configs/index.js';\nimport { DATA_TABLE_SLOTS, DSDataTableName } from '../../constants/index.js';\nimport type { DSDataTableT } from '../../react-desc-prop-types.js';\n\nconst StyledDSMenuButton = styled(DSMenuButton, {\n name: DSDataTableName,\n slot: DATA_TABLE_SLOTS.FILTER_BAR_MENU_BUTTON,\n})``;\n\nexport const FilterMenuButton: React.ComponentType<DSDataTableT.FilterMenuButtonProps> = ({\n options = [],\n innerRef,\n onClearFilters,\n onItemSelected,\n onActivateItem,\n selectedItems,\n onOpen,\n onClose,\n ...restProps\n}) => {\n // DSMenuButton already runs an item's `onClick` on keyboard activation (Enter / Space) for activable and selectable\n // items, so those items must NOT call it again from `onKeyDown` (that ran every keyboard activation twice).\n // A submenu-only item opens its submenu on Enter and the menu does not run its `onClick`: it keeps being called here.\n // The `preventDefault` stays: without it, in Chromium, the menu stayed open after Enter (observed; the likely cause is\n // the browser default of the same key press re-activating the trigger button that gets the focus back on close).\n const preventDefaultOnActivationKeys = useCallback((e: React.KeyboardEvent) => {\n if (['Enter', 'Space'].includes(e.code)) e.preventDefault();\n return null;\n }, []);\n const menuButtonOptions: DSMenuButtonT.MenuItemInterface[] = useMemo(\n () => [\n {\n type: MENU_ITEMS_TYPES.ACTIVABLE_ITEM,\n dsId: '__internal__option__clear__filters',\n label: 'Clear Filters',\n value: 'clear',\n onClick: onClearFilters,\n onKeyDown: preventDefaultOnActivationKeys,\n },\n ...options.map((option) => {\n if (\n option.type !== MENU_ITEMS_TYPES.SEPARATOR &&\n option.type !== MENU_ITEMS_TYPES.GROUP &&\n option.type !== MENU_ITEMS_TYPES.SKELETON_ITEM\n ) {\n return {\n ...option,\n onKeyDown: (e: React.KeyboardEvent) => {\n preventDefaultOnActivationKeys(e);\n if (option.type === MENU_ITEMS_TYPES.WITH_SUBMENU_ITEM && ['Enter', 'Space'].includes(e.code)) {\n option.onClick?.(e);\n }\n return option.onKeyDown?.(e) ?? null;\n },\n };\n }\n return option;\n }),\n ],\n [options, onClearFilters, preventDefaultOnActivationKeys],\n );\n\n return (\n <div style={{ marginLeft: 'auto' }}>\n <StyledDSMenuButton\n buttonType={BUTTON_TYPES.ICON}\n options={menuButtonOptions}\n innerRef={innerRef}\n aria-label=\"Filter bar addon\"\n data-testid={DATA_TESTID.DATA_TABLE_FILTER_BAR_DD_MENU_BUTTON}\n onOpen={onOpen}\n onClose={(metainfo) => {\n onClose?.(metainfo);\n innerRef?.current?.focus?.();\n }}\n /** PUI-15557 (https://jira.elliemae.io/browse/PUI-15557)\n * On behalf of this ticket, the filter bar menu moved from DSDropdownMenuV2 to DSMenuButton (the options\n * of FilterBarDropdownMenu are translated before they get here, see ./dropdownMenuV2Bridge).\n * As DSMenuButton handles selection differently than DSDropdownMenuV2, we are providing\n * empty functions as onItemSelected and onActivateItem to avoid breaking changes for now.\n * As those props are required if any of the options are selectionable/activable.\n * In future releases, we should properly enforce user to provide these props as needed.\n */\n onItemSelected={onItemSelected ?? (() => {})}\n onActivateItem={onActivateItem ?? (() => {})}\n selectedItems={selectedItems ?? []}\n {...restProps}\n >\n <MoreOptionsVert />\n </StyledDSMenuButton>\n </div>\n );\n};\n"],
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;AC6Ff;AA7FR,SAAS,oBAAoB;AAC7B,SAAS,uBAAuB;AAChC,SAAS,cAAc,wBAA4C;AACnE,SAAS,cAAc;AACvB,SAAS,aAAa,eAAe;AACrC,SAAS,mBAAmB;AAC5B,SAAS,kBAAkB,uBAAuB;AAGlD,MAAM,qBAAqB,OAAO,cAAc;AAAA,EAC9C,MAAM;AAAA,EACN,MAAM,iBAAiB;AACzB,CAAC;AAEM,MAAM,mBAA4E,CAAC;AAAA,EACxF,UAAU,CAAC;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AAMJ,QAAM,iCAAiC,YAAY,CAAC,MAA2B;AAC7E,QAAI,CAAC,SAAS,OAAO,EAAE,SAAS,EAAE,IAAI,EAAG,GAAE,eAAe;AAC1D,WAAO;AAAA,EACT,GAAG,CAAC,CAAC;AACL,QAAM,oBAAuD;AAAA,IAC3D,MAAM;AAAA,MACJ;AAAA,QACE,MAAM,iBAAiB;AAAA,QACvB,MAAM;AAAA,QACN,OAAO;AAAA,QACP,OAAO;AAAA,QACP,SAAS;AAAA,QACT,WAAW;AAAA,MACb;AAAA,MACA,GAAG,QAAQ,IAAI,CAAC,WAAW;AACzB,YACE,OAAO,SAAS,iBAAiB,aACjC,OAAO,SAAS,iBAAiB,SACjC,OAAO,SAAS,iBAAiB,eACjC;AACA,iBAAO;AAAA,YACL,GAAG;AAAA,YACH,WAAW,CAAC,MAA2B;AACrC,6CAA+B,CAAC;AAChC,kBAAI,OAAO,SAAS,iBAAiB,qBAAqB,CAAC,SAAS,OAAO,EAAE,SAAS,EAAE,IAAI,GAAG;AAC7F,uBAAO,UAAU,CAAC;AAAA,cACpB;AACA,qBAAO,OAAO,YAAY,CAAC,KAAK;AAAA,YAClC;AAAA,UACF;AAAA,QACF;AACA,eAAO;AAAA,MACT,CAAC;AAAA,IACH;AAAA,IACA,CAAC,SAAS,gBAAgB,8BAA8B;AAAA,EAC1D;AAEA,SACE,oBAAC,SAAI,OAAO,EAAE,YAAY,OAAO,GAC/B;AAAA,IAAC;AAAA;AAAA,MACC,YAAY,aAAa;AAAA,MACzB,SAAS;AAAA,MACT;AAAA,MACA,cAAW;AAAA,MACX,eAAa,YAAY;AAAA,MACzB;AAAA,MACA,SAAS,CAAC,aAAa;AACrB,kBAAU,QAAQ;AAClB,kBAAU,SAAS,QAAQ;AAAA,MAC7B;AAAA,MASA,gBAAgB,mBAAmB,MAAM;AAAA,MAAC;AAAA,MAC1C,gBAAgB,mBAAmB,MAAM;AAAA,MAAC;AAAA,MAC1C,eAAe,iBAAiB,CAAC;AAAA,MAChC,GAAG;AAAA,MAEJ,8BAAC,mBAAgB;AAAA;AAAA,EACnB,GACF;AAEJ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/exported-related/FilterBar/PillsFromDataTableFilters.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { type TypescriptHelpersT } from '@elliemae/ds-typescript-helpers';\nimport React, { useMemo } from 'react';\nimport {\n DateRangePill,\n DateSwitcherPill,\n FreeTextSearchPillPill,\n MultiSelectPill,\n NumberRangePill,\n SelectPill,\n SingleDatePill,\n} from '../../parts/FilterBar/components/index.js';\nimport type { DSDataTableT } from '../../react-desc-prop-types.js';\nimport { FILTER_TYPES } from '../FilterTypes.js';\n\nconst pillRenderMapper = {\n [FILTER_TYPES.SELECT]: SelectPill,\n [FILTER_TYPES.SELECT_V2]: SelectPill,\n [FILTER_TYPES.MULTI_SELECT]: MultiSelectPill,\n [FILTER_TYPES.MULTI_SELECT_V2]: MultiSelectPill,\n [FILTER_TYPES.SINGLE_DATE]: SingleDatePill,\n [FILTER_TYPES.SINGLE_DATE_V2]: SingleDatePill,\n [FILTER_TYPES.DATE_RANGE]: DateRangePill,\n [FILTER_TYPES.DATE_RANGE_V2]: DateRangePill,\n [FILTER_TYPES.DATE_SWITCHER]: DateSwitcherPill,\n [FILTER_TYPES.DATE_SWITCHER_V2]: DateSwitcherPill,\n [FILTER_TYPES.NUMBER_RANGE]: NumberRangePill,\n [FILTER_TYPES.NUMBER_RANGE_V2]: NumberRangePill,\n [FILTER_TYPES.CURRENCY_RANGE]: NumberRangePill,\n [FILTER_TYPES.CURRENCY_RANGE_V2]: NumberRangePill,\n [FILTER_TYPES.FREE_TEXT_SEARCH]: FreeTextSearchPillPill,\n [FILTER_TYPES.FREE_TEXT_SEARCH_V2]: FreeTextSearchPillPill,\n} as const;\n\
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { type TypescriptHelpersT } from '@elliemae/ds-typescript-helpers';\nimport React, { useMemo } from 'react';\nimport {\n DateRangePill,\n DateSwitcherPill,\n FreeTextSearchPillPill,\n MultiSelectPill,\n NumberRangePill,\n SelectPill,\n SingleDatePill,\n} from '../../parts/FilterBar/components/index.js';\nimport type { DSDataTableT } from '../../react-desc-prop-types.js';\nimport { FILTER_TYPES } from '../FilterTypes.js';\n\nconst pillRenderMapper = {\n [FILTER_TYPES.SELECT]: SelectPill,\n [FILTER_TYPES.SELECT_V2]: SelectPill,\n [FILTER_TYPES.MULTI_SELECT]: MultiSelectPill,\n [FILTER_TYPES.MULTI_SELECT_V2]: MultiSelectPill,\n [FILTER_TYPES.SINGLE_DATE]: SingleDatePill,\n [FILTER_TYPES.SINGLE_DATE_V2]: SingleDatePill,\n [FILTER_TYPES.DATE_RANGE]: DateRangePill,\n [FILTER_TYPES.DATE_RANGE_V2]: DateRangePill,\n [FILTER_TYPES.DATE_SWITCHER]: DateSwitcherPill,\n [FILTER_TYPES.DATE_SWITCHER_V2]: DateSwitcherPill,\n [FILTER_TYPES.NUMBER_RANGE]: NumberRangePill,\n [FILTER_TYPES.NUMBER_RANGE_V2]: NumberRangePill,\n [FILTER_TYPES.CURRENCY_RANGE]: NumberRangePill,\n [FILTER_TYPES.CURRENCY_RANGE_V2]: NumberRangePill,\n [FILTER_TYPES.FREE_TEXT_SEARCH]: FreeTextSearchPillPill,\n [FILTER_TYPES.FREE_TEXT_SEARCH_V2]: FreeTextSearchPillPill,\n} as const;\n\nexport const PillsFromDataTableFilters: React.FC<DSDataTableT.PillsFromDataTableFiltersProps> = ({\n filters,\n columns,\n\n onFiltersChange,\n onPillRemove,\n customPillRenderers,\n customPillRenderer,\n}) => {\n const pillRefs = useMemo(() => {\n const refs: React.RefObject<HTMLElement>[] = [];\n for (let i = 0; i < filters.length; i += 1) refs.push(React.createRef());\n return refs;\n }, [filters.length]);\n return (\n <>\n {filters.map(({ id: column, type, value }, index) => {\n const matchedColumn = columns.find((col) => col.accessor === column);\n const columnHeader = matchedColumn?.pillLabel || matchedColumn?.Header;\n let Component:\n | TypescriptHelpersT.ObjectValues<typeof pillRenderMapper>\n | React.ComponentType<DSDataTableT.FilterPillProps<unknown>> = () => null;\n\n const filterType = type;\n if (customPillRenderers?.[column]) {\n Component = customPillRenderers[column];\n } else if (customPillRenderer) {\n Component = customPillRenderer;\n } else if (filterType in pillRenderMapper) {\n Component = pillRenderMapper[filterType as keyof typeof pillRenderMapper];\n }\n\n return (\n <Component\n key={column}\n columnHeader={typeof columnHeader === 'string' ? columnHeader : column}\n column={column}\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment\n value={value as any}\n filters={filters}\n onFiltersChange={onFiltersChange}\n innerRef={pillRefs[index]}\n onPillRemove={onPillRemove}\n />\n );\n })}\n </>\n );\n};\n"],
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;ACgDnB,mBAkBM,WAlBN;AA/CJ,OAAOA,UAAS,eAAe;AAC/B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,oBAAoB;AAE7B,MAAM,mBAAmB;AAAA,EACvB,CAAC,aAAa,MAAM,GAAG;AAAA,EACvB,CAAC,aAAa,SAAS,GAAG;AAAA,EAC1B,CAAC,aAAa,YAAY,GAAG;AAAA,EAC7B,CAAC,aAAa,eAAe,GAAG;AAAA,EAChC,CAAC,aAAa,WAAW,GAAG;AAAA,EAC5B,CAAC,aAAa,cAAc,GAAG;AAAA,EAC/B,CAAC,aAAa,UAAU,GAAG;AAAA,EAC3B,CAAC,aAAa,aAAa,GAAG;AAAA,EAC9B,CAAC,aAAa,aAAa,GAAG;AAAA,EAC9B,CAAC,aAAa,gBAAgB,GAAG;AAAA,EACjC,CAAC,aAAa,YAAY,GAAG;AAAA,EAC7B,CAAC,aAAa,eAAe,GAAG;AAAA,EAChC,CAAC,aAAa,cAAc,GAAG;AAAA,EAC/B,CAAC,aAAa,iBAAiB,GAAG;AAAA,EAClC,CAAC,aAAa,gBAAgB,GAAG;AAAA,EACjC,CAAC,aAAa,mBAAmB,GAAG;AACtC;AAEO,MAAM,4BAAmF,CAAC;AAAA,EAC/F;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,WAAW,QAAQ,MAAM;AAC7B,UAAM,OAAuC,CAAC;AAC9C,aAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK,EAAG,MAAK,KAAKA,OAAM,UAAU,CAAC;AACvE,WAAO;AAAA,EACT,GAAG,CAAC,QAAQ,MAAM,CAAC;AACnB,SACE,gCACG,kBAAQ,IAAI,CAAC,EAAE,IAAI,QAAQ,MAAM,MAAM,GAAG,UAAU;AACnD,UAAM,gBAAgB,QAAQ,KAAK,CAAC,QAAQ,IAAI,aAAa,MAAM;AACnE,UAAM,eAAe,eAAe,aAAa,eAAe;AAChE,QAAI,YAE6D,MAAM;AAEvE,UAAM,aAAa;AACnB,QAAI,sBAAsB,MAAM,GAAG;AACjC,kBAAY,oBAAoB,MAAM;AAAA,IACxC,WAAW,oBAAoB;AAC7B,kBAAY;AAAA,IACd,WAAW,cAAc,kBAAkB;AACzC,kBAAY,iBAAiB,UAA2C;AAAA,IAC1E;AAEA,WACE;AAAA,MAAC;AAAA;AAAA,QAEC,cAAc,OAAO,iBAAiB,WAAW,eAAe;AAAA,QAChE;AAAA,QAEA;AAAA,QACA;AAAA,QACA;AAAA,QACA,UAAU,SAAS,KAAK;AAAA,QACxB;AAAA;AAAA,MARK;AAAA,IASP;AAAA,EAEJ,CAAC,GACH;AAEJ;",
|
|
6
6
|
"names": ["React"]
|
|
7
7
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n"],
|
|
5
5
|
"mappings": "AAAA,YAAY,WAAW;",
|
|
6
6
|
"names": []
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { MENU_ITEMS_TYPES } from "@elliemae/ds-menu-button";
|
|
3
|
+
const isItemSingleOptions = (option) => option.type === "single";
|
|
4
|
+
const isItemActionOptions = (option) => option.type === "action";
|
|
5
|
+
const isItemSingleWithSubmenuOptions = (option) => option.type === "singleWithSubmenu";
|
|
6
|
+
const isItemCheckboxOptions = (option) => option.type === "checkbox";
|
|
7
|
+
const isItemSubmenuOptions = (option) => option.type === "submenu";
|
|
8
|
+
const isItemSeparatorOptions = (option) => option.type === "separator";
|
|
9
|
+
const isItemSectionOptions = (option) => option.type === "section";
|
|
10
|
+
const isItemSkeletonOptions = (option) => option.type === "skeleton";
|
|
11
|
+
const convertActionOptToMenuButtonItem = (option) => ({
|
|
12
|
+
type: MENU_ITEMS_TYPES.ACTIVABLE_ITEM,
|
|
13
|
+
label: option.label,
|
|
14
|
+
// DSDropdownMenuT common items properties
|
|
15
|
+
dsId: option.dsId,
|
|
16
|
+
minWidth: option?.minWidth,
|
|
17
|
+
disabled: option.disabled || option.applyAriaDisabled,
|
|
18
|
+
onClick: option.onClick,
|
|
19
|
+
onKeyDown: option.onKeyDown
|
|
20
|
+
});
|
|
21
|
+
const convertSingleSelectionOptToMenuButtonItem = (option) => ({
|
|
22
|
+
type: MENU_ITEMS_TYPES.SINGLE_SELECT_ITEM,
|
|
23
|
+
label: option.label,
|
|
24
|
+
// DSDropdownMenuT common items properties
|
|
25
|
+
dsId: option.dsId,
|
|
26
|
+
minWidth: option?.minWidth,
|
|
27
|
+
disabled: option.disabled || option.applyAriaDisabled,
|
|
28
|
+
onClick: option.onClick,
|
|
29
|
+
onKeyDown: option.onKeyDown
|
|
30
|
+
});
|
|
31
|
+
const convertCheckboxOptToMenuButtonItem = (option) => ({
|
|
32
|
+
type: MENU_ITEMS_TYPES.MULTIPLE_SELECT_ITEM,
|
|
33
|
+
label: option.label,
|
|
34
|
+
// DSDropdownMenuT common items properties
|
|
35
|
+
dsId: option.dsId,
|
|
36
|
+
minWidth: option?.minWidth,
|
|
37
|
+
disabled: option.disabled || option.applyAriaDisabled,
|
|
38
|
+
onClick: option.onClick,
|
|
39
|
+
onKeyDown: option.onKeyDown
|
|
40
|
+
});
|
|
41
|
+
const convertSeparatorOptToMenuButtonItem = (option) => ({
|
|
42
|
+
type: MENU_ITEMS_TYPES.SEPARATOR,
|
|
43
|
+
// DSDropdownMenuT common items properties
|
|
44
|
+
dsId: option.dsId
|
|
45
|
+
});
|
|
46
|
+
const convertSectionOptToMenuButtonItem = (option) => ({
|
|
47
|
+
type: MENU_ITEMS_TYPES.GROUP,
|
|
48
|
+
label: option.label,
|
|
49
|
+
// DSDropdownMenuT common items properties
|
|
50
|
+
dsId: option.dsId,
|
|
51
|
+
minWidth: option?.minWidth
|
|
52
|
+
});
|
|
53
|
+
const convertSkeletonOptToMenuButtonItem = (option) => ({
|
|
54
|
+
type: MENU_ITEMS_TYPES.SKELETON_ITEM,
|
|
55
|
+
dsId: option.dsId,
|
|
56
|
+
minWidth: option?.minWidth
|
|
57
|
+
});
|
|
58
|
+
const convertSingleWithSubmenuOptToMenuButtonItem = (option) => ({
|
|
59
|
+
type: MENU_ITEMS_TYPES.SINGLE_SELECT_WITH_SUBMENU_ITEM,
|
|
60
|
+
label: option.label,
|
|
61
|
+
subitems: [],
|
|
62
|
+
maxHeight: option.maxHeight,
|
|
63
|
+
// DSDropdownMenuT common items properties
|
|
64
|
+
dsId: option.dsId,
|
|
65
|
+
minWidth: option?.minWidth,
|
|
66
|
+
disabled: option.disabled || option.applyAriaDisabled,
|
|
67
|
+
onClick: option.onClick,
|
|
68
|
+
onKeyDown: option.onKeyDown
|
|
69
|
+
});
|
|
70
|
+
const convertSubmenuOptToMenuButtonItem = (option) => ({
|
|
71
|
+
type: MENU_ITEMS_TYPES.WITH_SUBMENU_ITEM,
|
|
72
|
+
label: option.label,
|
|
73
|
+
subitems: [],
|
|
74
|
+
maxHeight: option.maxHeight,
|
|
75
|
+
// DSDropdownMenuT common items properties
|
|
76
|
+
dsId: option.dsId,
|
|
77
|
+
minWidth: option?.minWidth,
|
|
78
|
+
disabled: option.disabled || option.applyAriaDisabled,
|
|
79
|
+
onClick: option.onClick,
|
|
80
|
+
onKeyDown: option.onKeyDown
|
|
81
|
+
});
|
|
82
|
+
const convertDropdownItemToMenuButtonItem = (option) => {
|
|
83
|
+
if (isItemActionOptions(option)) return convertActionOptToMenuButtonItem(option);
|
|
84
|
+
if (isItemSingleOptions(option)) return convertSingleSelectionOptToMenuButtonItem(option);
|
|
85
|
+
if (isItemSingleWithSubmenuOptions(option)) return convertSingleWithSubmenuOptToMenuButtonItem(option);
|
|
86
|
+
if (isItemCheckboxOptions(option)) return convertCheckboxOptToMenuButtonItem(option);
|
|
87
|
+
if (isItemSubmenuOptions(option)) return convertSubmenuOptToMenuButtonItem(option);
|
|
88
|
+
if (isItemSeparatorOptions(option)) return convertSeparatorOptToMenuButtonItem(option);
|
|
89
|
+
if (isItemSectionOptions(option)) return convertSectionOptToMenuButtonItem(option);
|
|
90
|
+
if (isItemSkeletonOptions(option)) return convertSkeletonOptToMenuButtonItem(option);
|
|
91
|
+
throw new Error("Unknown item type");
|
|
92
|
+
};
|
|
93
|
+
export {
|
|
94
|
+
convertActionOptToMenuButtonItem,
|
|
95
|
+
convertCheckboxOptToMenuButtonItem,
|
|
96
|
+
convertDropdownItemToMenuButtonItem,
|
|
97
|
+
convertSectionOptToMenuButtonItem,
|
|
98
|
+
convertSeparatorOptToMenuButtonItem,
|
|
99
|
+
convertSingleSelectionOptToMenuButtonItem,
|
|
100
|
+
convertSingleWithSubmenuOptToMenuButtonItem,
|
|
101
|
+
convertSkeletonOptToMenuButtonItem,
|
|
102
|
+
convertSubmenuOptToMenuButtonItem,
|
|
103
|
+
isItemSectionOptions,
|
|
104
|
+
isItemSingleWithSubmenuOptions,
|
|
105
|
+
isItemSubmenuOptions
|
|
106
|
+
};
|
|
107
|
+
//# sourceMappingURL=conversionHelpers.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../src/exported-related/FilterBar/dropdownMenuV2Bridge/conversionHelpers.ts"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { type DSMenuButtonT, MENU_ITEMS_TYPES } from '@elliemae/ds-menu-button';\nimport { type DSDropdownMenuT } from './types.js';\n\n/**\n * Type guard to check if the option is of type ItemSingleOptions.\n * @param option - The option to check.\n * @returns True if the option is of type ItemSingleOptions, false otherwise.\n */\nconst isItemSingleOptions = (option: DSDropdownMenuT.Item): option is DSDropdownMenuT.ItemSingleOptions =>\n option.type === 'single';\n\n/**\n * Type guard to check if the option is of type ItemActionOptions.\n * @param option - The option to check.\n * @returns True if the option is of type ItemActionOptions, false otherwise.\n */\nconst isItemActionOptions = (option: DSDropdownMenuT.Item): option is DSDropdownMenuT.ItemActionOptions =>\n option.type === 'action';\n\n/**\n * Type guard to check if the option is of type ItemSingleWithSubmenuOptions.\n * @param option - The option to check.\n * @returns True if the option is of type ItemSingleWithSubmenuOptions, false otherwise.\n */\nexport const isItemSingleWithSubmenuOptions = (\n option: DSDropdownMenuT.Item,\n): option is DSDropdownMenuT.ItemSingleWithSubmenuOptions => option.type === 'singleWithSubmenu';\n\n/**\n * Type guard to check if the option is of type ItemCheckboxOptions.\n * @param option - The option to check.\n * @returns True if the option is of type ItemCheckboxOptions, false otherwise.\n */\nconst isItemCheckboxOptions = (option: DSDropdownMenuT.Item): option is DSDropdownMenuT.ItemCheckboxOptions =>\n option.type === 'checkbox';\n\n/**\n * Type guard to check if the option is of type ItemSubmenuOptions.\n * @param option - The option to check.\n * @returns True if the option is of type ItemSubmenuOptions, false otherwise.\n */\nexport const isItemSubmenuOptions = (option: DSDropdownMenuT.Item): option is DSDropdownMenuT.ItemSubmenuOptions =>\n option.type === 'submenu';\n\n/**\n * Type guard to check if the option is of type ItemSeparatorOptions.\n * @param option - The option to check.\n * @returns True if the option is of type ItemSeparatorOptions, false otherwise.\n */\nconst isItemSeparatorOptions = (option: DSDropdownMenuT.Item): option is DSDropdownMenuT.ItemSeparatorOptions =>\n option.type === 'separator';\n\n/**\n * Type guard to check if the option is of type ItemSectionOptions.\n * @param option - The option to check.\n * @returns True if the option is of type ItemSectionOptions, false otherwise.\n */\nexport const isItemSectionOptions = (option: DSDropdownMenuT.Item): option is DSDropdownMenuT.ItemSectionOptions =>\n option.type === 'section';\n\n/**\n * Type guard to check if the option is of type ItemSkeletonOptions.\n * @param option - The option to check.\n * @returns True if the option is of type ItemSkeletonOptions, false otherwise.\n */\nconst isItemSkeletonOptions = (option: DSDropdownMenuT.Item): option is DSDropdownMenuT.ItemSkeletonOptions =>\n option.type === 'skeleton';\n\n/**\n * Converts ItemActionOptions to DSMenuButtonT.ActivableItem.\n * @param option - The ItemActionOptions to convert.\n * @returns The converted ActivableItem.\n */\nexport const convertActionOptToMenuButtonItem = (\n option: DSDropdownMenuT.ItemActionOptions,\n): DSMenuButtonT.ActivableItem => ({\n type: MENU_ITEMS_TYPES.ACTIVABLE_ITEM,\n label: option.label,\n // DSDropdownMenuT common items properties\n dsId: option.dsId,\n minWidth: option?.minWidth as DSMenuButtonT.ActivableItem['minWidth'],\n disabled: option.disabled || option.applyAriaDisabled,\n onClick: option.onClick,\n onKeyDown: option.onKeyDown,\n});\n\n/**\n * Converts ItemSingleOptions to DSMenuButtonT.SingleSelectItem.\n * @param option - The ItemSingleWithSubmenuOptions to convert.\n * @returns The converted SingleSelectWithSubmenuItem.\n */\nexport const convertSingleSelectionOptToMenuButtonItem = (\n option: DSDropdownMenuT.ItemSingleOptions,\n): DSMenuButtonT.SingleSelectItem => ({\n type: MENU_ITEMS_TYPES.SINGLE_SELECT_ITEM,\n label: option.label,\n // DSDropdownMenuT common items properties\n dsId: option.dsId,\n minWidth: option?.minWidth as DSMenuButtonT.ActivableItem['minWidth'],\n disabled: option.disabled || option.applyAriaDisabled,\n onClick: option.onClick,\n onKeyDown: option.onKeyDown,\n});\n\n/**\n * Converts ItemCheckboxOptions to DSMenuButtonT.MultipleSelectItem.\n * @param option - The ItemCheckboxOptions to convert.\n * @returns The converted MultipleSelectItem.\n */\nexport const convertCheckboxOptToMenuButtonItem = (\n option: DSDropdownMenuT.ItemCheckboxOptions,\n): DSMenuButtonT.MultipleSelectItem => ({\n type: MENU_ITEMS_TYPES.MULTIPLE_SELECT_ITEM,\n label: option.label,\n // DSDropdownMenuT common items properties\n dsId: option.dsId,\n minWidth: option?.minWidth as DSMenuButtonT.ActivableItem['minWidth'],\n disabled: option.disabled || option.applyAriaDisabled,\n onClick: option.onClick,\n onKeyDown: option.onKeyDown,\n});\n\n/**\n * Converts ItemSeparatorOptions to DSMenuButtonT.SeparatorItem.\n * @param option - The ItemSeparatorOptions to convert.\n * @returns The converted SeparatorItem.\n */\nexport const convertSeparatorOptToMenuButtonItem = (\n option: DSDropdownMenuT.ItemSeparatorOptions,\n): DSMenuButtonT.SeparatorItem => ({\n type: MENU_ITEMS_TYPES.SEPARATOR,\n // DSDropdownMenuT common items properties\n dsId: option.dsId,\n});\n\n/**\n * Converts ItemSectionOptions to DSMenuButtonT.GroupItem.\n * @param option - The ItemSectionOptions to convert.\n * @returns The converted GroupItem.\n */\nexport const convertSectionOptToMenuButtonItem = (\n option: DSDropdownMenuT.ItemSectionOptions,\n): DSMenuButtonT.GroupItem => ({\n type: MENU_ITEMS_TYPES.GROUP,\n label: option.label,\n // DSDropdownMenuT common items properties\n dsId: option.dsId,\n minWidth: option?.minWidth as DSMenuButtonT.ActivableItem['minWidth'],\n});\n\n/**\n * Converts ItemSkeletonOptions to DSMenuButtonT.SkeletonItem.\n * @param option - The ItemSkeletonOptions to convert.\n * @returns The converted SkeletonItem.\n */\nexport const convertSkeletonOptToMenuButtonItem = (\n option: DSDropdownMenuT.ItemSkeletonOptions,\n): DSMenuButtonT.SkeletonItem => ({\n type: MENU_ITEMS_TYPES.SKELETON_ITEM,\n dsId: option.dsId,\n minWidth: option?.minWidth as DSMenuButtonT.ActivableItem['minWidth'],\n});\n\n// ========================================================================================\n// WithSubmenu conversion converts the item only, the nested options are iterated by\n// convertOptionsRecursive (index.ts) so each one succeeds or is dropped on its own\n// ========================================================================================\n/**\n * Converts ItemSingleWithSubmenuOptions to DSMenuButtonT.SingleSelectWithSubmenuItem.\n * It converts the item only: its nested options are converted by `convertOptionsRecursive`, option by option, so an\n * option that fails to convert is dropped alone instead of taking its whole submenu with it.\n * @param option - The ItemSingleWithSubmenuOptions to convert.\n * @returns The converted SingleSelectWithSubmenuItem, with its `subitems` still empty.\n */\nexport const convertSingleWithSubmenuOptToMenuButtonItem = (\n option: DSDropdownMenuT.ItemSingleWithSubmenuOptions,\n): DSMenuButtonT.SingleSelectWithSubmenuItem => ({\n type: MENU_ITEMS_TYPES.SINGLE_SELECT_WITH_SUBMENU_ITEM,\n label: option.label,\n subitems: [],\n maxHeight: option.maxHeight as DSMenuButtonT.SingleSelectWithSubmenuItem['maxHeight'],\n // DSDropdownMenuT common items properties\n dsId: option.dsId,\n minWidth: option?.minWidth as DSMenuButtonT.SingleSelectWithSubmenuItem['minWidth'],\n disabled: option.disabled || option.applyAriaDisabled,\n onClick: option.onClick,\n onKeyDown: option.onKeyDown,\n});\n/**\n * Converts ItemSubmenuOptions to DSMenuButtonT.WithSubmenuItem.\n * It converts the item only: its nested options are converted by `convertOptionsRecursive`, option by option, so an\n * option that fails to convert is dropped alone instead of taking its whole submenu with it.\n * @param option - The ItemSubmenuOptions to convert.\n * @returns The converted WithSubmenuItem, with its `subitems` still empty.\n */\nexport const convertSubmenuOptToMenuButtonItem = (\n option: DSDropdownMenuT.ItemSubmenuOptions,\n): DSMenuButtonT.WithSubmenuItem => ({\n type: MENU_ITEMS_TYPES.WITH_SUBMENU_ITEM,\n label: option.label,\n subitems: [],\n maxHeight: option.maxHeight as DSMenuButtonT.WithSubmenuItem['maxHeight'],\n // DSDropdownMenuT common items properties\n dsId: option.dsId,\n minWidth: option?.minWidth as DSMenuButtonT.WithSubmenuItem['minWidth'],\n disabled: option.disabled || option.applyAriaDisabled,\n onClick: option.onClick,\n onKeyDown: option.onKeyDown,\n});\n\n/**\n * Converts a DSDropdownMenuT.Item to a DSMenuButtonT.MenuItemInterface.\n * @param option - The DSDropdownMenuT.Item to convert.\n * @returns The converted MenuItemInterface.\n */\nexport const convertDropdownItemToMenuButtonItem = (option: DSDropdownMenuT.Item): DSMenuButtonT.MenuItemInterface => {\n if (isItemActionOptions(option)) return convertActionOptToMenuButtonItem(option);\n // single selections\n if (isItemSingleOptions(option)) return convertSingleSelectionOptToMenuButtonItem(option);\n if (isItemSingleWithSubmenuOptions(option)) return convertSingleWithSubmenuOptToMenuButtonItem(option);\n // multiple selections\n if (isItemCheckboxOptions(option)) return convertCheckboxOptToMenuButtonItem(option);\n // DDV2 didn't support multiple selections with submenu so we don't need to handle it\n // only submenu\n if (isItemSubmenuOptions(option)) return convertSubmenuOptToMenuButtonItem(option);\n // separators, groups and skeletons\n if (isItemSeparatorOptions(option)) return convertSeparatorOptToMenuButtonItem(option);\n if (isItemSectionOptions(option)) return convertSectionOptToMenuButtonItem(option);\n if (isItemSkeletonOptions(option)) return convertSkeletonOptToMenuButtonItem(option);\n\n throw new Error('Unknown item type');\n};\n"],
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;ACAvB,SAA6B,wBAAwB;AAQrD,MAAM,sBAAsB,CAAC,WAC3B,OAAO,SAAS;AAOlB,MAAM,sBAAsB,CAAC,WAC3B,OAAO,SAAS;AAOX,MAAM,iCAAiC,CAC5C,WAC2D,OAAO,SAAS;AAO7E,MAAM,wBAAwB,CAAC,WAC7B,OAAO,SAAS;AAOX,MAAM,uBAAuB,CAAC,WACnC,OAAO,SAAS;AAOlB,MAAM,yBAAyB,CAAC,WAC9B,OAAO,SAAS;AAOX,MAAM,uBAAuB,CAAC,WACnC,OAAO,SAAS;AAOlB,MAAM,wBAAwB,CAAC,WAC7B,OAAO,SAAS;AAOX,MAAM,mCAAmC,CAC9C,YACiC;AAAA,EACjC,MAAM,iBAAiB;AAAA,EACvB,OAAO,OAAO;AAAA;AAAA,EAEd,MAAM,OAAO;AAAA,EACb,UAAU,QAAQ;AAAA,EAClB,UAAU,OAAO,YAAY,OAAO;AAAA,EACpC,SAAS,OAAO;AAAA,EAChB,WAAW,OAAO;AACpB;AAOO,MAAM,4CAA4C,CACvD,YACoC;AAAA,EACpC,MAAM,iBAAiB;AAAA,EACvB,OAAO,OAAO;AAAA;AAAA,EAEd,MAAM,OAAO;AAAA,EACb,UAAU,QAAQ;AAAA,EAClB,UAAU,OAAO,YAAY,OAAO;AAAA,EACpC,SAAS,OAAO;AAAA,EAChB,WAAW,OAAO;AACpB;AAOO,MAAM,qCAAqC,CAChD,YACsC;AAAA,EACtC,MAAM,iBAAiB;AAAA,EACvB,OAAO,OAAO;AAAA;AAAA,EAEd,MAAM,OAAO;AAAA,EACb,UAAU,QAAQ;AAAA,EAClB,UAAU,OAAO,YAAY,OAAO;AAAA,EACpC,SAAS,OAAO;AAAA,EAChB,WAAW,OAAO;AACpB;AAOO,MAAM,sCAAsC,CACjD,YACiC;AAAA,EACjC,MAAM,iBAAiB;AAAA;AAAA,EAEvB,MAAM,OAAO;AACf;AAOO,MAAM,oCAAoC,CAC/C,YAC6B;AAAA,EAC7B,MAAM,iBAAiB;AAAA,EACvB,OAAO,OAAO;AAAA;AAAA,EAEd,MAAM,OAAO;AAAA,EACb,UAAU,QAAQ;AACpB;AAOO,MAAM,qCAAqC,CAChD,YACgC;AAAA,EAChC,MAAM,iBAAiB;AAAA,EACvB,MAAM,OAAO;AAAA,EACb,UAAU,QAAQ;AACpB;AAaO,MAAM,8CAA8C,CACzD,YAC+C;AAAA,EAC/C,MAAM,iBAAiB;AAAA,EACvB,OAAO,OAAO;AAAA,EACd,UAAU,CAAC;AAAA,EACX,WAAW,OAAO;AAAA;AAAA,EAElB,MAAM,OAAO;AAAA,EACb,UAAU,QAAQ;AAAA,EAClB,UAAU,OAAO,YAAY,OAAO;AAAA,EACpC,SAAS,OAAO;AAAA,EAChB,WAAW,OAAO;AACpB;AAQO,MAAM,oCAAoC,CAC/C,YACmC;AAAA,EACnC,MAAM,iBAAiB;AAAA,EACvB,OAAO,OAAO;AAAA,EACd,UAAU,CAAC;AAAA,EACX,WAAW,OAAO;AAAA;AAAA,EAElB,MAAM,OAAO;AAAA,EACb,UAAU,QAAQ;AAAA,EAClB,UAAU,OAAO,YAAY,OAAO;AAAA,EACpC,SAAS,OAAO;AAAA,EAChB,WAAW,OAAO;AACpB;AAOO,MAAM,sCAAsC,CAAC,WAAkE;AACpH,MAAI,oBAAoB,MAAM,EAAG,QAAO,iCAAiC,MAAM;AAE/E,MAAI,oBAAoB,MAAM,EAAG,QAAO,0CAA0C,MAAM;AACxF,MAAI,+BAA+B,MAAM,EAAG,QAAO,4CAA4C,MAAM;AAErG,MAAI,sBAAsB,MAAM,EAAG,QAAO,mCAAmC,MAAM;AAGnF,MAAI,qBAAqB,MAAM,EAAG,QAAO,kCAAkC,MAAM;AAEjF,MAAI,uBAAuB,MAAM,EAAG,QAAO,oCAAoC,MAAM;AACrF,MAAI,qBAAqB,MAAM,EAAG,QAAO,kCAAkC,MAAM;AACjF,MAAI,sBAAsB,MAAM,EAAG,QAAO,mCAAmC,MAAM;AAEnF,QAAM,IAAI,MAAM,mBAAmB;AACrC;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
const getHumanReadableWarnings = (adjustments) => {
|
|
3
|
+
const warnings = [];
|
|
4
|
+
if (adjustments.lostRender) {
|
|
5
|
+
warnings.push(
|
|
6
|
+
`- Encountered "render" in one or more options - the menu-button component is stricter on underlying html structure due to required accessibility, the conversion will ignore the "render", if you need it and you are sure it's a11y compliant you can implement it with the item "ItemRenderer" menu-button property instead`
|
|
7
|
+
);
|
|
8
|
+
}
|
|
9
|
+
if (adjustments.lostEllipsis) {
|
|
10
|
+
warnings.push(
|
|
11
|
+
`- Encountered "ellipsis" right addon in one or more options - new designs doesn't support "ellipsis" config and instead provide exclusively "chevron"`
|
|
12
|
+
);
|
|
13
|
+
}
|
|
14
|
+
if (adjustments.filledPlaceholderGroup) {
|
|
15
|
+
warnings.push(
|
|
16
|
+
`- Single select ("single" / "singleWithSubmenu") without a "section" - the conversion wrapped it in a placeholder group (a single selection is only exclusive inside a group)`
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
if (adjustments.filledSkeleton) {
|
|
20
|
+
warnings.push(
|
|
21
|
+
`- some levels had nothing to focus (empty options/sub-options, only separators/sections, or a "section" without options of its own, e.g. two "section" items in a row) - the conversion filled each of them with a single skeleton item: an empty menu gives no focus target and looks like the interaction was not registered, a skeleton at least communicates there is no meaningful content to display (opinionated approximation - when no options are genuinely available, prefer a label-only pill (type="label") whose label explains the "no available options" state, so the user does not have to open an empty menu to discover it)`
|
|
22
|
+
);
|
|
23
|
+
}
|
|
24
|
+
if (adjustments.droppedUnknownType) {
|
|
25
|
+
warnings.push(
|
|
26
|
+
`- Encountered an option with an unknown "type" - the conversion dropped it and kept the rest of the options (supported types: action, single, singleWithSubmenu, checkbox, submenu, separator, section, skeleton)`
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
return warnings;
|
|
30
|
+
};
|
|
31
|
+
export {
|
|
32
|
+
getHumanReadableWarnings
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=getHumanReadableWarnings.js.map
|
package/dist/esm/exported-related/FilterBar/dropdownMenuV2Bridge/getHumanReadableWarnings.js.map
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../src/exported-related/FilterBar/dropdownMenuV2Bridge/getHumanReadableWarnings.ts"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { type DSDropdownV2BridgeT } from './bridgeTypes.js';\n\n/**\n * given what the conversion adjusted, it will return a human readable list of warnings\n * @param adjustments - What the conversion had to do (or lose).\n * @returns A list of human readable warnings.\n */\nexport const getHumanReadableWarnings = (adjustments: DSDropdownV2BridgeT.ConversionAdjustmentsT): string[] => {\n const warnings: string[] = [];\n if (adjustments.lostRender) {\n warnings.push(\n `- Encountered \"render\" in one or more options - the menu-button component is stricter on underlying html structure due to required accessibility, the conversion will ignore the \"render\", if you need it and you are sure it's a11y compliant you can implement it with the item \"ItemRenderer\" menu-button property instead`,\n );\n }\n if (adjustments.lostEllipsis) {\n warnings.push(\n `- Encountered \"ellipsis\" right addon in one or more options - new designs doesn't support \"ellipsis\" config and instead provide exclusively \"chevron\"`,\n );\n }\n if (adjustments.filledPlaceholderGroup) {\n warnings.push(\n `- Single select (\"single\" / \"singleWithSubmenu\") without a \"section\" - the conversion wrapped it in a placeholder group (a single selection is only exclusive inside a group)`,\n );\n }\n if (adjustments.filledSkeleton) {\n warnings.push(\n `- some levels had nothing to focus (empty options/sub-options, only separators/sections, or a \"section\" without options of its own, e.g. two \"section\" items in a row) - the conversion filled each of them with a single skeleton item: an empty menu gives no focus target and looks like the interaction was not registered, a skeleton at least communicates there is no meaningful content to display (opinionated approximation - when no options are genuinely available, prefer a label-only pill (type=\"label\") whose label explains the \"no available options\" state, so the user does not have to open an empty menu to discover it)`,\n );\n }\n if (adjustments.droppedUnknownType) {\n warnings.push(\n `- Encountered an option with an unknown \"type\" - the conversion dropped it and kept the rest of the options (supported types: action, single, singleWithSubmenu, checkbox, submenu, separator, section, skeleton)`,\n );\n }\n return warnings;\n};\n"],
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;ACOhB,MAAM,2BAA2B,CAAC,gBAAsE;AAC7G,QAAM,WAAqB,CAAC;AAC5B,MAAI,YAAY,YAAY;AAC1B,aAAS;AAAA,MACP;AAAA,IACF;AAAA,EACF;AACA,MAAI,YAAY,cAAc;AAC5B,aAAS;AAAA,MACP;AAAA,IACF;AAAA,EACF;AACA,MAAI,YAAY,wBAAwB;AACtC,aAAS;AAAA,MACP;AAAA,IACF;AAAA,EACF;AACA,MAAI,YAAY,gBAAgB;AAC9B,aAAS;AAAA,MACP;AAAA,IACF;AAAA,EACF;AACA,MAAI,YAAY,oBAAoB;AAClC,aAAS;AAAA,MACP;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { MENU_ITEMS_TYPES } from "@elliemae/ds-menu-button";
|
|
3
|
+
import {
|
|
4
|
+
convertDropdownItemToMenuButtonItem,
|
|
5
|
+
convertSkeletonOptToMenuButtonItem,
|
|
6
|
+
isItemSectionOptions,
|
|
7
|
+
isItemSingleWithSubmenuOptions,
|
|
8
|
+
isItemSubmenuOptions
|
|
9
|
+
} from "./conversionHelpers.js";
|
|
10
|
+
import { getHumanReadableWarnings } from "./getHumanReadableWarnings.js";
|
|
11
|
+
const hasFocusableItem = (items) => items.some(
|
|
12
|
+
(item) => item.type === MENU_ITEMS_TYPES.GROUP ? hasFocusableItem(item.subitems ?? []) : item.type !== MENU_ITEMS_TYPES.SEPARATOR
|
|
13
|
+
);
|
|
14
|
+
const fillWithSkeleton = (ownerDsId, adjustments) => {
|
|
15
|
+
adjustments.filledSkeleton = true;
|
|
16
|
+
return convertSkeletonOptToMenuButtonItem({
|
|
17
|
+
type: "skeleton",
|
|
18
|
+
dsId: `filter-bar-bridge-filled-skeleton-${ownerDsId}`
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
const recordLostFeatures = (option, adjustments) => {
|
|
22
|
+
if (option.render) adjustments.lostRender = true;
|
|
23
|
+
if (option.rightAddon === "ellipsis")
|
|
24
|
+
adjustments.lostEllipsis = true;
|
|
25
|
+
};
|
|
26
|
+
const convertOrDrop = (option, adjustments) => {
|
|
27
|
+
recordLostFeatures(option, adjustments);
|
|
28
|
+
try {
|
|
29
|
+
return convertDropdownItemToMenuButtonItem(option);
|
|
30
|
+
} catch {
|
|
31
|
+
adjustments.droppedUnknownType = true;
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
const convertOptionsRecursive = (options, adjustments, parentDsId = "__first-level-root") => {
|
|
36
|
+
const convertedOptions = [];
|
|
37
|
+
const groups = [];
|
|
38
|
+
options.forEach((option) => {
|
|
39
|
+
const convertedOption = convertOrDrop(option, adjustments);
|
|
40
|
+
if (convertedOption === null) return;
|
|
41
|
+
if (isItemSingleWithSubmenuOptions(option) || isItemSubmenuOptions(option)) {
|
|
42
|
+
const subitems = convertOptionsRecursive(option.options, adjustments, option.dsId);
|
|
43
|
+
const typecastedOption = convertedOption;
|
|
44
|
+
typecastedOption.subitems = subitems;
|
|
45
|
+
}
|
|
46
|
+
if (isItemSectionOptions(option)) {
|
|
47
|
+
const typecastedOption = convertedOption;
|
|
48
|
+
const subitems = [...typecastedOption.subitems ?? []];
|
|
49
|
+
groups.push({ ...typecastedOption, subitems });
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
if (groups.length > 0) {
|
|
53
|
+
const lastGroup = groups[groups.length - 1];
|
|
54
|
+
lastGroup.subitems.push(convertedOption);
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
if (option.type === "single" || option.type === "singleWithSubmenu") {
|
|
58
|
+
adjustments.filledPlaceholderGroup = true;
|
|
59
|
+
groups.push({
|
|
60
|
+
type: "group",
|
|
61
|
+
subitems: [convertedOption],
|
|
62
|
+
dsId: `filled-group-starting-from-${option.dsId}`
|
|
63
|
+
});
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
convertedOptions.push(convertedOption);
|
|
67
|
+
});
|
|
68
|
+
groups.forEach((group) => {
|
|
69
|
+
if (!hasFocusableItem(group.subitems)) group.subitems.push(fillWithSkeleton(group.dsId, adjustments));
|
|
70
|
+
});
|
|
71
|
+
convertedOptions.push(...groups);
|
|
72
|
+
if (!hasFocusableItem(convertedOptions)) convertedOptions.push(fillWithSkeleton(parentDsId, adjustments));
|
|
73
|
+
return convertedOptions;
|
|
74
|
+
};
|
|
75
|
+
const convertDropdownOptionsToMenuButtonOptions = (options) => {
|
|
76
|
+
const adjustments = {
|
|
77
|
+
lostRender: false,
|
|
78
|
+
lostEllipsis: false,
|
|
79
|
+
filledPlaceholderGroup: false,
|
|
80
|
+
filledSkeleton: false,
|
|
81
|
+
droppedUnknownType: false
|
|
82
|
+
};
|
|
83
|
+
const convertedOptions = convertOptionsRecursive(options, adjustments);
|
|
84
|
+
return { convertedOptions, report: { ...adjustments, humanReadableWarnings: getHumanReadableWarnings(adjustments) } };
|
|
85
|
+
};
|
|
86
|
+
export {
|
|
87
|
+
convertDropdownOptionsToMenuButtonOptions
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=index.js.map
|