@elliemae/ds-datagrids 3.4.3-rc.1 → 3.4.3
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/DSDataGrid.js +188 -145
- package/dist/cjs/DSDataGrid.js.map +1 -1
- package/dist/cjs/DataGridImpl.js +28 -15
- package/dist/cjs/DataGridImpl.js.map +1 -1
- package/dist/cjs/PaginatedDataGrid.js +27 -14
- package/dist/cjs/PaginatedDataGrid.js.map +1 -1
- package/dist/cjs/blockNames.js +4 -1
- package/dist/cjs/blockNames.js.map +1 -1
- package/dist/cjs/columns/IconColumn.js +22 -12
- package/dist/cjs/columns/IconColumn.js.map +2 -2
- package/dist/cjs/columns/NumberColumn.js +4 -1
- package/dist/cjs/columns/NumberColumn.js.map +1 -1
- package/dist/cjs/components/BodyCell.js +16 -6
- package/dist/cjs/components/BodyCell.js.map +2 -2
- package/dist/cjs/components/BodyList.js +12 -6
- package/dist/cjs/components/BodyList.js.map +2 -2
- package/dist/cjs/components/ColumnVisibilityMenuOption.js +22 -16
- package/dist/cjs/components/ColumnVisibilityMenuOption.js.map +1 -1
- package/dist/cjs/components/ColumnsOptionsMenuSection.js +21 -15
- package/dist/cjs/components/ColumnsOptionsMenuSection.js.map +1 -1
- package/dist/cjs/components/EmptyState.js +23 -9
- package/dist/cjs/components/EmptyState.js.map +2 -2
- package/dist/cjs/components/HeaderCell.js +10 -7
- package/dist/cjs/components/HeaderCell.js.map +2 -2
- package/dist/cjs/components/List.js +6 -3
- package/dist/cjs/components/List.js.map +1 -1
- package/dist/cjs/components/ListItem.js +13 -6
- package/dist/cjs/components/ListItem.js.map +1 -1
- package/dist/cjs/components/NoResults.js +19 -6
- package/dist/cjs/components/NoResults.js.map +1 -1
- package/dist/cjs/components/RowsLoader.js +10 -5
- package/dist/cjs/components/RowsLoader.js.map +1 -1
- package/dist/cjs/components/Table.js +55 -42
- package/dist/cjs/components/Table.js.map +1 -1
- package/dist/cjs/components/TableBody.js +10 -5
- package/dist/cjs/components/TableBody.js.map +1 -1
- package/dist/cjs/components/TableHeader.js +10 -5
- package/dist/cjs/components/TableHeader.js.map +1 -1
- package/dist/cjs/components/footer/addOptionalFooterComponents.js +16 -11
- package/dist/cjs/components/footer/addOptionalFooterComponents.js.map +1 -1
- package/dist/cjs/components/header/PrimaryControls.js +17 -10
- package/dist/cjs/components/header/PrimaryControls.js.map +1 -1
- package/dist/cjs/components/header/addOptionalHeaderComponents.js +15 -10
- package/dist/cjs/components/header/addOptionalHeaderComponents.js.map +2 -2
- package/dist/cjs/components/index.js +4 -1
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/cjs/components/renderers/defaultClassedRenderers.js +39 -16
- package/dist/cjs/components/renderers/defaultClassedRenderers.js.map +1 -1
- package/dist/cjs/components/renderers/index.js +4 -1
- package/dist/cjs/components/renderers/index.js.map +1 -1
- package/dist/cjs/components/renderers/renderRowsLoader.js +6 -3
- package/dist/cjs/components/renderers/renderRowsLoader.js.map +1 -1
- package/dist/cjs/components/tableContext.js +4 -1
- package/dist/cjs/components/tableContext.js.map +2 -2
- package/dist/cjs/defaultPlugins.js +4 -1
- package/dist/cjs/defaultPlugins.js.map +1 -1
- package/dist/cjs/index.js +4 -1
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/plugins/body-header-scroll-sync/BodyHeaderScrollSyncPlugin.js +57 -40
- package/dist/cjs/plugins/body-header-scroll-sync/BodyHeaderScrollSyncPlugin.js.map +2 -2
- package/dist/cjs/plugins/body-header-scroll-sync/index.js +4 -1
- package/dist/cjs/plugins/body-header-scroll-sync/index.js.map +1 -1
- package/dist/cjs/plugins/column-dnd/DndColumnsPlugin.js +13 -5
- package/dist/cjs/plugins/column-dnd/DndColumnsPlugin.js.map +1 -1
- package/dist/cjs/plugins/column-dnd/decorateGridWithDndColumns.js +12 -4
- package/dist/cjs/plugins/column-dnd/decorateGridWithDndColumns.js.map +1 -1
- package/dist/cjs/plugins/column-dnd/index.js +4 -1
- package/dist/cjs/plugins/column-dnd/index.js.map +1 -1
- package/dist/cjs/plugins/column-sizing/ColumnSizingPlugin.js +4 -1
- package/dist/cjs/plugins/column-sizing/ColumnSizingPlugin.js.map +1 -1
- package/dist/cjs/plugins/column-sizing/columnMeasurerTransformer.js +4 -1
- package/dist/cjs/plugins/column-sizing/columnMeasurerTransformer.js.map +1 -1
- package/dist/cjs/plugins/column-sizing/ext-points/decorateColumn.js +4 -1
- package/dist/cjs/plugins/column-sizing/ext-points/decorateColumn.js.map +1 -1
- package/dist/cjs/plugins/column-sizing/ext-points/getTableProps.js +4 -1
- package/dist/cjs/plugins/column-sizing/ext-points/getTableProps.js.map +1 -1
- package/dist/cjs/plugins/column-sizing/getColumnNameFromProperty.js +4 -1
- package/dist/cjs/plugins/column-sizing/getColumnNameFromProperty.js.map +1 -1
- package/dist/cjs/plugins/column-sizing/index.js +4 -1
- package/dist/cjs/plugins/column-sizing/index.js.map +1 -1
- package/dist/cjs/plugins/column-sizing/useColumnSizeService.js +28 -7
- package/dist/cjs/plugins/column-sizing/useColumnSizeService.js.map +1 -1
- package/dist/cjs/plugins/column-sizing/useStylesheetHelpers.js +22 -7
- package/dist/cjs/plugins/column-sizing/useStylesheetHelpers.js.map +1 -1
- package/dist/cjs/plugins/column-sizing/utils.js +4 -1
- package/dist/cjs/plugins/column-sizing/utils.js.map +1 -1
- package/dist/cjs/plugins/custom-cell-renderer/CustomRendererPlugin.js +4 -1
- package/dist/cjs/plugins/custom-cell-renderer/CustomRendererPlugin.js.map +1 -1
- package/dist/cjs/plugins/custom-cell-renderer/addCustomRendererToCell.js +4 -1
- package/dist/cjs/plugins/custom-cell-renderer/addCustomRendererToCell.js.map +1 -1
- package/dist/cjs/plugins/custom-cell-renderer/getRendererComponent.js +6 -3
- package/dist/cjs/plugins/custom-cell-renderer/getRendererComponent.js.map +1 -1
- package/dist/cjs/plugins/custom-cell-renderer/index.js +4 -1
- package/dist/cjs/plugins/custom-cell-renderer/index.js.map +1 -1
- package/dist/cjs/plugins/editable/EditableComponents/ComboBox.js +7 -3
- package/dist/cjs/plugins/editable/EditableComponents/ComboBox.js.map +1 -1
- package/dist/cjs/plugins/editable/EditableComponents/TextBox.js +6 -2
- package/dist/cjs/plugins/editable/EditableComponents/TextBox.js.map +2 -2
- package/dist/cjs/plugins/editable/EditableComponents/index.js +4 -1
- package/dist/cjs/plugins/editable/EditableComponents/index.js.map +1 -1
- package/dist/cjs/plugins/editable/EditablePlugin.js +12 -6
- package/dist/cjs/plugins/editable/EditablePlugin.js.map +1 -1
- package/dist/cjs/plugins/editable/decorateEditable.js +40 -23
- package/dist/cjs/plugins/editable/decorateEditable.js.map +1 -1
- package/dist/cjs/plugins/editable/getEditorComponent.js +16 -12
- package/dist/cjs/plugins/editable/getEditorComponent.js.map +1 -1
- package/dist/cjs/plugins/editable/index.js +4 -1
- package/dist/cjs/plugins/editable/index.js.map +1 -1
- package/dist/cjs/plugins/expandable-grid/ExpandableColumn.js +49 -23
- package/dist/cjs/plugins/expandable-grid/ExpandableColumn.js.map +1 -1
- package/dist/cjs/plugins/expandable-grid/ExpandablePlugin.js +38 -21
- package/dist/cjs/plugins/expandable-grid/ExpandablePlugin.js.map +1 -1
- package/dist/cjs/plugins/expandable-grid/ExpandedRow.js +51 -35
- package/dist/cjs/plugins/expandable-grid/ExpandedRow.js.map +1 -1
- package/dist/cjs/plugins/expandable-grid/ExpandedRowExtra.js +21 -10
- package/dist/cjs/plugins/expandable-grid/ExpandedRowExtra.js.map +1 -1
- package/dist/cjs/plugins/expandable-grid/index.js +4 -1
- package/dist/cjs/plugins/expandable-grid/index.js.map +1 -1
- package/dist/cjs/plugins/expandable-grid/useExpandGridState.js +4 -1
- package/dist/cjs/plugins/expandable-grid/useExpandGridState.js.map +1 -1
- package/dist/cjs/plugins/export-data/ExportDataPlugin.js +4 -1
- package/dist/cjs/plugins/export-data/ExportDataPlugin.js.map +1 -1
- package/dist/cjs/plugins/export-data/index.js +4 -1
- package/dist/cjs/plugins/export-data/index.js.map +1 -1
- package/dist/cjs/plugins/filterable/FilterablePlugin.js +15 -9
- package/dist/cjs/plugins/filterable/FilterablePlugin.js.map +2 -2
- package/dist/cjs/plugins/filterable/addFilterToColumn.js +4 -1
- package/dist/cjs/plugins/filterable/addFilterToColumn.js.map +1 -1
- package/dist/cjs/plugins/filterable/components/FilterableHeader.js +36 -26
- package/dist/cjs/plugins/filterable/components/FilterableHeader.js.map +2 -2
- package/dist/cjs/plugins/filterable/components/filterable-menus/DateRangeFilterMenu.js +67 -54
- package/dist/cjs/plugins/filterable/components/filterable-menus/DateRangeFilterMenu.js.map +2 -2
- package/dist/cjs/plugins/filterable/components/filterable-menus/SingleDateFilterMenu.js +62 -46
- package/dist/cjs/plugins/filterable/components/filterable-menus/SingleDateFilterMenu.js.map +2 -2
- package/dist/cjs/plugins/filterable/components/filterable-menus/SingleRangeSwitcherMenu.js +102 -83
- package/dist/cjs/plugins/filterable/components/filterable-menus/SingleRangeSwitcherMenu.js.map +2 -2
- package/dist/cjs/plugins/filterable/components/filterable-menus/TextFilterMenu.js +43 -32
- package/dist/cjs/plugins/filterable/components/filterable-menus/TextFilterMenu.js.map +2 -2
- package/dist/cjs/plugins/filterable/components/filterable-menus/defaultDateFormat.js +4 -1
- package/dist/cjs/plugins/filterable/components/filterable-menus/defaultDateFormat.js.map +1 -1
- package/dist/cjs/plugins/filterable/components/filterable-menus/getFilterMenuByType.js +4 -1
- package/dist/cjs/plugins/filterable/components/filterable-menus/getFilterMenuByType.js.map +1 -1
- package/dist/cjs/plugins/filterable/filterableFormatter.js +6 -3
- package/dist/cjs/plugins/filterable/filterableFormatter.js.map +1 -1
- package/dist/cjs/plugins/filterable/filtering-helper/filterRowsByQuery.js +10 -2
- package/dist/cjs/plugins/filterable/filtering-helper/filterRowsByQuery.js.map +1 -1
- package/dist/cjs/plugins/filterable/filtering-helper/strategiesOperators.js +4 -1
- package/dist/cjs/plugins/filterable/filtering-helper/strategiesOperators.js.map +2 -2
- package/dist/cjs/plugins/filterable/helper.js +19 -13
- package/dist/cjs/plugins/filterable/helper.js.map +1 -1
- package/dist/cjs/plugins/filterable/index.js +4 -1
- package/dist/cjs/plugins/filterable/index.js.map +1 -1
- package/dist/cjs/plugins/filterable/useFilterableState.js +7 -2
- package/dist/cjs/plugins/filterable/useFilterableState.js.map +2 -2
- package/dist/cjs/plugins/grouping-by/GroupingByPlugin.js +4 -1
- package/dist/cjs/plugins/grouping-by/GroupingByPlugin.js.map +1 -1
- package/dist/cjs/plugins/grouping-grid/GroupingPlugin.js +33 -18
- package/dist/cjs/plugins/grouping-grid/GroupingPlugin.js.map +1 -1
- package/dist/cjs/plugins/grouping-grid/walkStrategy.js +4 -1
- package/dist/cjs/plugins/grouping-grid/walkStrategy.js.map +1 -1
- package/dist/cjs/plugins/index.js +4 -1
- package/dist/cjs/plugins/index.js.map +1 -1
- package/dist/cjs/plugins/infinite-scrolling/InfiniteScrollPlugin.js +4 -1
- package/dist/cjs/plugins/infinite-scrolling/InfiniteScrollPlugin.js.map +1 -1
- package/dist/cjs/plugins/infinite-scrolling/index.js +4 -1
- package/dist/cjs/plugins/infinite-scrolling/index.js.map +1 -1
- package/dist/cjs/plugins/pagination/PaginationPlugin.js +46 -31
- package/dist/cjs/plugins/pagination/PaginationPlugin.js.map +2 -2
- package/dist/cjs/plugins/pagination/components/Pagination.js +25 -14
- package/dist/cjs/plugins/pagination/components/Pagination.js.map +1 -1
- package/dist/cjs/plugins/pagination/components/Paginator.js +54 -36
- package/dist/cjs/plugins/pagination/components/Paginator.js.map +2 -2
- package/dist/cjs/plugins/pagination/components/PerPageDropdown.js +16 -6
- package/dist/cjs/plugins/pagination/components/PerPageDropdown.js.map +2 -2
- package/dist/cjs/plugins/pagination/helper.js +4 -1
- package/dist/cjs/plugins/pagination/helper.js.map +1 -1
- package/dist/cjs/plugins/pagination/index.js +4 -1
- package/dist/cjs/plugins/pagination/index.js.map +1 -1
- package/dist/cjs/plugins/pagination/usePaginationState.js +4 -1
- package/dist/cjs/plugins/pagination/usePaginationState.js.map +1 -1
- package/dist/cjs/plugins/resizable/ResizablePlugin.js +62 -53
- package/dist/cjs/plugins/resizable/ResizablePlugin.js.map +1 -1
- package/dist/cjs/plugins/resizable/decorateResizable.js +13 -5
- package/dist/cjs/plugins/resizable/decorateResizable.js.map +2 -2
- package/dist/cjs/plugins/resizable/index.js +4 -1
- package/dist/cjs/plugins/resizable/index.js.map +1 -1
- package/dist/cjs/plugins/resizable/useResizeHandle.js +12 -4
- package/dist/cjs/plugins/resizable/useResizeHandle.js.map +1 -1
- package/dist/cjs/plugins/resizable/utils.js +4 -1
- package/dist/cjs/plugins/resizable/utils.js.map +2 -2
- package/dist/cjs/plugins/row-dnd/DndRowsPlugin.js +19 -7
- package/dist/cjs/plugins/row-dnd/DndRowsPlugin.js.map +1 -1
- package/dist/cjs/plugins/row-dnd/index.js +4 -1
- package/dist/cjs/plugins/row-dnd/index.js.map +1 -1
- package/dist/cjs/plugins/selectable/SelectablePlugin.js +8 -2
- package/dist/cjs/plugins/selectable/SelectablePlugin.js.map +2 -2
- package/dist/cjs/plugins/selectable/addSelectableColumn.js +28 -15
- package/dist/cjs/plugins/selectable/addSelectableColumn.js.map +1 -1
- package/dist/cjs/plugins/selectable/helper.js +4 -1
- package/dist/cjs/plugins/selectable/helper.js.map +1 -1
- package/dist/cjs/plugins/selectable/index.js +4 -1
- package/dist/cjs/plugins/selectable/index.js.map +1 -1
- package/dist/cjs/plugins/selectable/selectableFormatter.js +39 -27
- package/dist/cjs/plugins/selectable/selectableFormatter.js.map +2 -2
- package/dist/cjs/plugins/selectable/useSelectableState.js +16 -4
- package/dist/cjs/plugins/selectable/useSelectableState.js.map +2 -2
- package/dist/cjs/plugins/sortable/SortablePlugin.js +12 -6
- package/dist/cjs/plugins/sortable/SortablePlugin.js.map +1 -1
- package/dist/cjs/plugins/sortable/checkIfSortable.js +4 -1
- package/dist/cjs/plugins/sortable/checkIfSortable.js.map +1 -1
- package/dist/cjs/plugins/sortable/index.js +4 -1
- package/dist/cjs/plugins/sortable/index.js.map +1 -1
- package/dist/cjs/plugins/sortable/sortHeaderFormatter.js +18 -9
- package/dist/cjs/plugins/sortable/sortHeaderFormatter.js.map +2 -2
- package/dist/cjs/plugins/sortable/sortTree.js +12 -5
- package/dist/cjs/plugins/sortable/sortTree.js.map +1 -1
- package/dist/cjs/plugins/sortable/sorter.js +21 -10
- package/dist/cjs/plugins/sortable/sorter.js.map +2 -2
- package/dist/cjs/plugins/sortable/useSortableState.js +7 -2
- package/dist/cjs/plugins/sortable/useSortableState.js.map +1 -1
- package/dist/cjs/plugins/toolbar/RowRenderer.js +38 -22
- package/dist/cjs/plugins/toolbar/RowRenderer.js.map +2 -2
- package/dist/cjs/plugins/toolbar/ToolbarPlugin.js +19 -7
- package/dist/cjs/plugins/toolbar/ToolbarPlugin.js.map +1 -1
- package/dist/cjs/plugins/toolbar/ToolbarTrigger.js +30 -19
- package/dist/cjs/plugins/toolbar/ToolbarTrigger.js.map +1 -1
- package/dist/cjs/plugins/toolbar/index.js +4 -1
- package/dist/cjs/plugins/toolbar/index.js.map +1 -1
- package/dist/cjs/plugins/virtualization/AutoHeightList.js +36 -30
- package/dist/cjs/plugins/virtualization/AutoHeightList.js.map +2 -2
- package/dist/cjs/plugins/virtualization/VirtualizationPlugin.js +58 -50
- package/dist/cjs/plugins/virtualization/VirtualizationPlugin.js.map +1 -1
- package/dist/cjs/plugins/virtualization/VirtualizedBody.js +69 -54
- package/dist/cjs/plugins/virtualization/VirtualizedBody.js.map +2 -2
- package/dist/cjs/plugins/virtualization/VirtualizedBodyRow.js +17 -10
- package/dist/cjs/plugins/virtualization/VirtualizedBodyRow.js.map +1 -1
- package/dist/cjs/plugins/virtualization/helper.js +4 -1
- package/dist/cjs/plugins/virtualization/helper.js.map +1 -1
- package/dist/cjs/plugins/virtualization/index.js +4 -1
- package/dist/cjs/plugins/virtualization/index.js.map +1 -1
- package/dist/cjs/renders/CellWithAddons.js +35 -22
- package/dist/cjs/renders/CellWithAddons.js.map +2 -2
- package/dist/cjs/renders/index.js +4 -1
- package/dist/cjs/renders/index.js.map +1 -1
- package/dist/cjs/renders/styled.js +4 -1
- package/dist/cjs/renders/styled.js.map +1 -1
- package/dist/cjs/rowSizes.js +4 -1
- package/dist/cjs/rowSizes.js.map +1 -1
- package/dist/cjs/utilities/getPluginsFromProps.js +4 -1
- package/dist/cjs/utilities/getPluginsFromProps.js.map +1 -1
- package/dist/cjs/utilities/getScrollbarSize.js +4 -1
- package/dist/cjs/utilities/getScrollbarSize.js.map +1 -1
- package/dist/cjs/utilities/normalizeData.js +4 -1
- package/dist/cjs/utilities/normalizeData.js.map +1 -1
- package/dist/esm/DSDataGrid.js +184 -144
- package/dist/esm/DSDataGrid.js.map +1 -1
- package/dist/esm/DataGridImpl.js +24 -14
- package/dist/esm/DataGridImpl.js.map +1 -1
- package/dist/esm/PaginatedDataGrid.js +23 -13
- package/dist/esm/PaginatedDataGrid.js.map +1 -1
- package/dist/esm/blockNames.js.map +1 -1
- package/dist/esm/columns/IconColumn.js +18 -11
- package/dist/esm/columns/IconColumn.js.map +2 -2
- package/dist/esm/columns/NumberColumn.js.map +1 -1
- package/dist/esm/components/BodyCell.js +12 -5
- package/dist/esm/components/BodyCell.js.map +1 -1
- package/dist/esm/components/BodyList.js +8 -5
- package/dist/esm/components/BodyList.js.map +2 -2
- package/dist/esm/components/ColumnVisibilityMenuOption.js +18 -15
- package/dist/esm/components/ColumnVisibilityMenuOption.js.map +1 -1
- package/dist/esm/components/ColumnsOptionsMenuSection.js +17 -14
- package/dist/esm/components/ColumnsOptionsMenuSection.js.map +1 -1
- package/dist/esm/components/EmptyState.js +19 -8
- package/dist/esm/components/EmptyState.js.map +1 -1
- package/dist/esm/components/HeaderCell.js +6 -6
- package/dist/esm/components/HeaderCell.js.map +1 -1
- package/dist/esm/components/List.js +2 -2
- package/dist/esm/components/List.js.map +1 -1
- package/dist/esm/components/ListItem.js +9 -5
- package/dist/esm/components/ListItem.js.map +1 -1
- package/dist/esm/components/NoResults.js +15 -5
- package/dist/esm/components/NoResults.js.map +1 -1
- package/dist/esm/components/RowsLoader.js +6 -4
- package/dist/esm/components/RowsLoader.js.map +1 -1
- package/dist/esm/components/Table.js +51 -41
- package/dist/esm/components/Table.js.map +1 -1
- package/dist/esm/components/TableBody.js +6 -4
- package/dist/esm/components/TableBody.js.map +1 -1
- package/dist/esm/components/TableHeader.js +6 -4
- package/dist/esm/components/TableHeader.js.map +1 -1
- package/dist/esm/components/footer/addOptionalFooterComponents.js +12 -10
- package/dist/esm/components/footer/addOptionalFooterComponents.js.map +1 -1
- package/dist/esm/components/header/PrimaryControls.js +13 -9
- package/dist/esm/components/header/PrimaryControls.js.map +1 -1
- package/dist/esm/components/header/addOptionalHeaderComponents.js +11 -9
- package/dist/esm/components/header/addOptionalHeaderComponents.js.map +1 -1
- package/dist/esm/components/index.js.map +2 -2
- package/dist/esm/components/renderers/defaultClassedRenderers.js +35 -15
- package/dist/esm/components/renderers/defaultClassedRenderers.js.map +1 -1
- package/dist/esm/components/renderers/index.js.map +1 -1
- package/dist/esm/components/renderers/renderRowsLoader.js +2 -2
- package/dist/esm/components/renderers/renderRowsLoader.js.map +1 -1
- package/dist/esm/components/tableContext.js.map +2 -2
- package/dist/esm/defaultPlugins.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/plugins/body-header-scroll-sync/BodyHeaderScrollSyncPlugin.js +53 -39
- package/dist/esm/plugins/body-header-scroll-sync/BodyHeaderScrollSyncPlugin.js.map +2 -2
- package/dist/esm/plugins/body-header-scroll-sync/index.js.map +1 -1
- package/dist/esm/plugins/column-dnd/DndColumnsPlugin.js +9 -4
- package/dist/esm/plugins/column-dnd/DndColumnsPlugin.js.map +1 -1
- package/dist/esm/plugins/column-dnd/decorateGridWithDndColumns.js +8 -3
- package/dist/esm/plugins/column-dnd/decorateGridWithDndColumns.js.map +1 -1
- package/dist/esm/plugins/column-dnd/index.js.map +1 -1
- package/dist/esm/plugins/column-sizing/ColumnSizingPlugin.js.map +1 -1
- package/dist/esm/plugins/column-sizing/columnMeasurerTransformer.js.map +1 -1
- package/dist/esm/plugins/column-sizing/ext-points/decorateColumn.js.map +1 -1
- package/dist/esm/plugins/column-sizing/ext-points/getTableProps.js.map +1 -1
- package/dist/esm/plugins/column-sizing/getColumnNameFromProperty.js.map +1 -1
- package/dist/esm/plugins/column-sizing/index.js.map +1 -1
- package/dist/esm/plugins/column-sizing/useColumnSizeService.js +24 -6
- package/dist/esm/plugins/column-sizing/useColumnSizeService.js.map +1 -1
- package/dist/esm/plugins/column-sizing/useStylesheetHelpers.js +18 -6
- package/dist/esm/plugins/column-sizing/useStylesheetHelpers.js.map +1 -1
- package/dist/esm/plugins/column-sizing/utils.js.map +1 -1
- package/dist/esm/plugins/custom-cell-renderer/CustomRendererPlugin.js.map +1 -1
- package/dist/esm/plugins/custom-cell-renderer/addCustomRendererToCell.js.map +1 -1
- package/dist/esm/plugins/custom-cell-renderer/getRendererComponent.js +2 -2
- package/dist/esm/plugins/custom-cell-renderer/getRendererComponent.js.map +1 -1
- package/dist/esm/plugins/custom-cell-renderer/index.js.map +1 -1
- package/dist/esm/plugins/editable/EditableComponents/ComboBox.js +3 -2
- package/dist/esm/plugins/editable/EditableComponents/ComboBox.js.map +1 -1
- package/dist/esm/plugins/editable/EditableComponents/TextBox.js +2 -1
- package/dist/esm/plugins/editable/EditableComponents/TextBox.js.map +2 -2
- package/dist/esm/plugins/editable/EditableComponents/index.js.map +2 -2
- package/dist/esm/plugins/editable/EditablePlugin.js +8 -5
- package/dist/esm/plugins/editable/EditablePlugin.js.map +1 -1
- package/dist/esm/plugins/editable/decorateEditable.js +36 -22
- package/dist/esm/plugins/editable/decorateEditable.js.map +1 -1
- package/dist/esm/plugins/editable/getEditorComponent.js +12 -11
- package/dist/esm/plugins/editable/getEditorComponent.js.map +1 -1
- package/dist/esm/plugins/editable/index.js.map +1 -1
- package/dist/esm/plugins/expandable-grid/ExpandableColumn.js +45 -22
- package/dist/esm/plugins/expandable-grid/ExpandableColumn.js.map +1 -1
- package/dist/esm/plugins/expandable-grid/ExpandablePlugin.js +34 -20
- package/dist/esm/plugins/expandable-grid/ExpandablePlugin.js.map +1 -1
- package/dist/esm/plugins/expandable-grid/ExpandedRow.js +47 -34
- package/dist/esm/plugins/expandable-grid/ExpandedRow.js.map +1 -1
- package/dist/esm/plugins/expandable-grid/ExpandedRowExtra.js +17 -9
- package/dist/esm/plugins/expandable-grid/ExpandedRowExtra.js.map +1 -1
- package/dist/esm/plugins/expandable-grid/index.js.map +1 -1
- package/dist/esm/plugins/expandable-grid/useExpandGridState.js.map +1 -1
- package/dist/esm/plugins/export-data/ExportDataPlugin.js.map +1 -1
- package/dist/esm/plugins/export-data/index.js.map +1 -1
- package/dist/esm/plugins/filterable/FilterablePlugin.js +11 -8
- package/dist/esm/plugins/filterable/FilterablePlugin.js.map +1 -1
- package/dist/esm/plugins/filterable/addFilterToColumn.js.map +1 -1
- package/dist/esm/plugins/filterable/components/FilterableHeader.js +32 -25
- package/dist/esm/plugins/filterable/components/FilterableHeader.js.map +1 -1
- package/dist/esm/plugins/filterable/components/filterable-menus/DateRangeFilterMenu.js +63 -53
- package/dist/esm/plugins/filterable/components/filterable-menus/DateRangeFilterMenu.js.map +1 -1
- package/dist/esm/plugins/filterable/components/filterable-menus/SingleDateFilterMenu.js +58 -45
- package/dist/esm/plugins/filterable/components/filterable-menus/SingleDateFilterMenu.js.map +1 -1
- package/dist/esm/plugins/filterable/components/filterable-menus/SingleRangeSwitcherMenu.js +98 -82
- package/dist/esm/plugins/filterable/components/filterable-menus/SingleRangeSwitcherMenu.js.map +1 -1
- package/dist/esm/plugins/filterable/components/filterable-menus/TextFilterMenu.js +39 -31
- package/dist/esm/plugins/filterable/components/filterable-menus/TextFilterMenu.js.map +2 -2
- package/dist/esm/plugins/filterable/components/filterable-menus/defaultDateFormat.js.map +1 -1
- package/dist/esm/plugins/filterable/components/filterable-menus/getFilterMenuByType.js.map +1 -1
- package/dist/esm/plugins/filterable/filterableFormatter.js +2 -2
- package/dist/esm/plugins/filterable/filterableFormatter.js.map +1 -1
- package/dist/esm/plugins/filterable/filtering-helper/filterRowsByQuery.js +6 -1
- package/dist/esm/plugins/filterable/filtering-helper/filterRowsByQuery.js.map +1 -1
- package/dist/esm/plugins/filterable/filtering-helper/strategiesOperators.js.map +1 -1
- package/dist/esm/plugins/filterable/helper.js +15 -12
- package/dist/esm/plugins/filterable/helper.js.map +1 -1
- package/dist/esm/plugins/filterable/index.js.map +1 -1
- package/dist/esm/plugins/filterable/useFilterableState.js +3 -1
- package/dist/esm/plugins/filterable/useFilterableState.js.map +1 -1
- package/dist/esm/plugins/grouping-by/GroupingByPlugin.js.map +1 -1
- package/dist/esm/plugins/grouping-grid/GroupingPlugin.js +29 -17
- package/dist/esm/plugins/grouping-grid/GroupingPlugin.js.map +1 -1
- package/dist/esm/plugins/grouping-grid/walkStrategy.js.map +1 -1
- package/dist/esm/plugins/index.js.map +1 -1
- package/dist/esm/plugins/infinite-scrolling/InfiniteScrollPlugin.js.map +1 -1
- package/dist/esm/plugins/infinite-scrolling/index.js.map +1 -1
- package/dist/esm/plugins/pagination/PaginationPlugin.js +42 -30
- package/dist/esm/plugins/pagination/PaginationPlugin.js.map +2 -2
- package/dist/esm/plugins/pagination/components/Pagination.js +21 -13
- package/dist/esm/plugins/pagination/components/Pagination.js.map +1 -1
- package/dist/esm/plugins/pagination/components/Paginator.js +50 -35
- package/dist/esm/plugins/pagination/components/Paginator.js.map +1 -1
- package/dist/esm/plugins/pagination/components/PerPageDropdown.js +12 -5
- package/dist/esm/plugins/pagination/components/PerPageDropdown.js.map +1 -1
- package/dist/esm/plugins/pagination/helper.js.map +1 -1
- package/dist/esm/plugins/pagination/index.js.map +1 -1
- package/dist/esm/plugins/pagination/usePaginationState.js.map +1 -1
- package/dist/esm/plugins/resizable/ResizablePlugin.js +58 -52
- package/dist/esm/plugins/resizable/ResizablePlugin.js.map +1 -1
- package/dist/esm/plugins/resizable/decorateResizable.js +9 -4
- package/dist/esm/plugins/resizable/decorateResizable.js.map +2 -2
- package/dist/esm/plugins/resizable/index.js.map +1 -1
- package/dist/esm/plugins/resizable/useResizeHandle.js +8 -3
- package/dist/esm/plugins/resizable/useResizeHandle.js.map +1 -1
- package/dist/esm/plugins/resizable/utils.js.map +1 -1
- package/dist/esm/plugins/row-dnd/DndRowsPlugin.js +15 -6
- package/dist/esm/plugins/row-dnd/DndRowsPlugin.js.map +1 -1
- package/dist/esm/plugins/row-dnd/index.js.map +1 -1
- package/dist/esm/plugins/selectable/SelectablePlugin.js +4 -1
- package/dist/esm/plugins/selectable/SelectablePlugin.js.map +1 -1
- package/dist/esm/plugins/selectable/addSelectableColumn.js +24 -14
- package/dist/esm/plugins/selectable/addSelectableColumn.js.map +1 -1
- package/dist/esm/plugins/selectable/helper.js.map +1 -1
- package/dist/esm/plugins/selectable/index.js.map +1 -1
- package/dist/esm/plugins/selectable/selectableFormatter.js +35 -26
- package/dist/esm/plugins/selectable/selectableFormatter.js.map +2 -2
- package/dist/esm/plugins/selectable/useSelectableState.js +12 -3
- package/dist/esm/plugins/selectable/useSelectableState.js.map +1 -1
- package/dist/esm/plugins/sortable/SortablePlugin.js +8 -5
- package/dist/esm/plugins/sortable/SortablePlugin.js.map +1 -1
- package/dist/esm/plugins/sortable/checkIfSortable.js.map +1 -1
- package/dist/esm/plugins/sortable/index.js.map +1 -1
- package/dist/esm/plugins/sortable/sortHeaderFormatter.js +14 -8
- package/dist/esm/plugins/sortable/sortHeaderFormatter.js.map +2 -2
- package/dist/esm/plugins/sortable/sortTree.js +8 -4
- package/dist/esm/plugins/sortable/sortTree.js.map +1 -1
- package/dist/esm/plugins/sortable/sorter.js +17 -9
- package/dist/esm/plugins/sortable/sorter.js.map +1 -1
- package/dist/esm/plugins/sortable/useSortableState.js +3 -1
- package/dist/esm/plugins/sortable/useSortableState.js.map +1 -1
- package/dist/esm/plugins/toolbar/RowRenderer.js +34 -21
- package/dist/esm/plugins/toolbar/RowRenderer.js.map +1 -1
- package/dist/esm/plugins/toolbar/ToolbarPlugin.js +15 -6
- package/dist/esm/plugins/toolbar/ToolbarPlugin.js.map +1 -1
- package/dist/esm/plugins/toolbar/ToolbarTrigger.js +26 -18
- package/dist/esm/plugins/toolbar/ToolbarTrigger.js.map +1 -1
- package/dist/esm/plugins/toolbar/index.js.map +1 -1
- package/dist/esm/plugins/virtualization/AutoHeightList.js +32 -29
- package/dist/esm/plugins/virtualization/AutoHeightList.js.map +1 -1
- package/dist/esm/plugins/virtualization/VirtualizationPlugin.js +54 -49
- package/dist/esm/plugins/virtualization/VirtualizationPlugin.js.map +1 -1
- package/dist/esm/plugins/virtualization/VirtualizedBody.js +65 -53
- package/dist/esm/plugins/virtualization/VirtualizedBody.js.map +1 -1
- package/dist/esm/plugins/virtualization/VirtualizedBodyRow.js +13 -9
- package/dist/esm/plugins/virtualization/VirtualizedBodyRow.js.map +1 -1
- package/dist/esm/plugins/virtualization/helper.js.map +1 -1
- package/dist/esm/plugins/virtualization/index.js.map +1 -1
- package/dist/esm/renders/CellWithAddons.js +31 -21
- package/dist/esm/renders/CellWithAddons.js.map +1 -1
- package/dist/esm/renders/index.js.map +1 -1
- package/dist/esm/renders/styled.js.map +1 -1
- package/dist/esm/rowSizes.js.map +1 -1
- package/dist/esm/utilities/getPluginsFromProps.js.map +1 -1
- package/dist/esm/utilities/getScrollbarSize.js.map +1 -1
- package/dist/esm/utilities/normalizeData.js.map +1 -1
- package/package.json +19 -19
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../../src/plugins/filterable/components/filterable-menus/SingleDateFilterMenu.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useCallback, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSControlledDateTimePicker } from '@elliemae/ds-controlled-form';\nimport { DSPopper, PopperPositions as Position } from '@elliemae/ds-popper';\nimport { DatePicker2 } from '@elliemae/ds-icons';\nimport { DSButton } from '@elliemae/ds-button';\nimport moment from 'moment';\nimport { DEFAULT_DATE_FORMAT } from './defaultDateFormat';\n\nconst SingleDatePickerContainer = ({ onChange = () => null, showHeader }) => {\n const [date, setDate] = useState('');\n\n const handleDateChange = useCallback(\n (data) => {\n if (!data.includes('_')) onChange(moment(data));\n setDate(data);\n },\n [onChange],\n );\n\n return (\n <div style={{ boxShadow: '0 6px 20px 0 rgb(0 0 0 / 24%)' }}>\n {showHeader && (\n <Grid p=\"xxs\">\n <DSControlledDateTimePicker date={date} onDateChange={handleDateChange} type=\"date-inputs\" isClearable />\n </Grid>\n )}\n <DSControlledDateTimePicker date={date} onDateChange={handleDateChange} type=\"date-picker-controller-only\" />\n </div>\n );\n};\n\nSingleDatePickerContainer.propTypes = {\n onChange: PropTypes.func,\n showHeader: PropTypes.bool,\n};\n\nconst formatDate = (date, format = DEFAULT_DATE_FORMAT) => date.format(format);\n\nfunction SingleDateFilterMenu({\n column,\n className,\n isMenuOpened = false,\n onOpenMenu = () => null,\n placement = Position.BOTTOM_END,\n onAddFilter = () => null,\n dateFormatter = formatDate,\n showHeader = false,\n menuProps,\n}) {\n return (\n <DSPopper\n contentComponent={\n <div className={className} data-testid=\"date-single__wrapper\">\n <SingleDatePickerContainer\n minimumNights={0}\n onChange={(date) => {\n const t = date.clone();\n onAddFilter(\n {\n group: column.property,\n label: column.label,\n value: dateFormatter(date, column.dateFormat),\n type: 'date',\n operator: 'range',\n filterParams: {\n start: date.startOf('day'),\n end: t.endOf('day'),\n },\n transformRowValue: (value) => moment(value, column.dateFormat || DEFAULT_DATE_FORMAT),\n },\n column,\n );\n onOpenMenu(false);\n }}\n showHeader={showHeader}\n />\n </div>\n }\n isOpen={isMenuOpened}\n onOpen={onOpenMenu}\n placement={placement}\n showArrow={false}\n triggerComponent={\n <DSButton\n buttonType=\"text\"\n icon={<DatePicker2 />}\n onClick={() => (!isMenuOpened ? onOpenMenu(true) : onOpenMenu(false))}\n size=\"s\"\n />\n }\n zIndex={menuProps.zIndex}\n />\n );\n}\n\nSingleDateFilterMenu.propTypes = {\n column: PropTypes.any,\n className: PropTypes.string,\n isMenuOpened: PropTypes.bool,\n onOpenMenu: PropTypes.func,\n placement: PropTypes.string,\n onAddFilter: PropTypes.func,\n dateFormatter: PropTypes.any,\n showHeader: PropTypes.bool,\n menuProps: PropTypes.any,\n};\n\nexport { SingleDateFilterMenu };\nexport default SingleDateFilterMenu;\n"],
|
|
5
|
-
"mappings": "AAAA;
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;ACAvB;AAAA,SAAgB,aAAa,gBAAgB;AAC7C,OAAO,eAAe;AACtB,SAAS,YAAY;AACrB,SAAS,kCAAkC;AAC3C,SAAS,UAAU,mBAAmB,gBAAgB;AACtD,SAAS,mBAAmB;AAC5B,SAAS,gBAAgB;AACzB,OAAO,YAAY;AACnB,SAAS,2BAA2B;AAEpC,MAAM,4BAA4B,CAAC,EAAE,WAAW,MAAM,MAAM,WAAW,MAAM;AAC3E,QAAM,CAAC,MAAM,OAAO,IAAI,SAAS,EAAE;AAEnC,QAAM,mBAAmB;AAAA,IACvB,CAAC,SAAS;AACR,UAAI,CAAC,KAAK,SAAS,GAAG;AAAG,iBAAS,OAAO,IAAI,CAAC;AAC9C,cAAQ,IAAI;AAAA,IACd;AAAA,IACA,CAAC,QAAQ;AAAA,EACX;AAEA,SACE,qBAAC;AAAA,IAAI,OAAO,EAAE,WAAW,gCAAgC;AAAA,IACtD;AAAA,oBACC,oBAAC;AAAA,QAAK,GAAE;AAAA,QACN,8BAAC;AAAA,UAA2B;AAAA,UAAY,cAAc;AAAA,UAAkB,MAAK;AAAA,UAAc,aAAW;AAAA,SAAC;AAAA,OACzG;AAAA,MAEF,oBAAC;AAAA,QAA2B;AAAA,QAAY,cAAc;AAAA,QAAkB,MAAK;AAAA,OAA8B;AAAA;AAAA,GAC7G;AAEJ;AAEA,0BAA0B,YAAY;AAAA,EACpC,UAAU,UAAU;AAAA,EACpB,YAAY,UAAU;AACxB;AAEA,MAAM,aAAa,CAAC,MAAM,SAAS,wBAAwB,KAAK,OAAO,MAAM;AAE7E,SAAS,qBAAqB;AAAA,EAC5B;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EACf,aAAa,MAAM;AAAA,EACnB,YAAY,SAAS;AAAA,EACrB,cAAc,MAAM;AAAA,EACpB,gBAAgB;AAAA,EAChB,aAAa;AAAA,EACb;AACF,GAAG;AACD,SACE,oBAAC;AAAA,IACC,kBACE,oBAAC;AAAA,MAAI;AAAA,MAAsB,eAAY;AAAA,MACrC,8BAAC;AAAA,QACC,eAAe;AAAA,QACf,UAAU,CAAC,SAAS;AAClB,gBAAM,IAAI,KAAK,MAAM;AACrB;AAAA,YACE;AAAA,cACE,OAAO,OAAO;AAAA,cACd,OAAO,OAAO;AAAA,cACd,OAAO,cAAc,MAAM,OAAO,UAAU;AAAA,cAC5C,MAAM;AAAA,cACN,UAAU;AAAA,cACV,cAAc;AAAA,gBACZ,OAAO,KAAK,QAAQ,KAAK;AAAA,gBACzB,KAAK,EAAE,MAAM,KAAK;AAAA,cACpB;AAAA,cACA,mBAAmB,CAAC,UAAU,OAAO,OAAO,OAAO,cAAc,mBAAmB;AAAA,YACtF;AAAA,YACA;AAAA,UACF;AACA,qBAAW,KAAK;AAAA,QAClB;AAAA,QACA;AAAA,OACF;AAAA,KACF;AAAA,IAEF,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR;AAAA,IACA,WAAW;AAAA,IACX,kBACE,oBAAC;AAAA,MACC,YAAW;AAAA,MACX,MAAM,oBAAC,eAAY;AAAA,MACnB,SAAS,MAAO,CAAC,eAAe,WAAW,IAAI,IAAI,WAAW,KAAK;AAAA,MACnE,MAAK;AAAA,KACP;AAAA,IAEF,QAAQ,UAAU;AAAA,GACpB;AAEJ;AAEA,qBAAqB,YAAY;AAAA,EAC/B,QAAQ,UAAU;AAAA,EAClB,WAAW,UAAU;AAAA,EACrB,cAAc,UAAU;AAAA,EACxB,YAAY,UAAU;AAAA,EACtB,WAAW,UAAU;AAAA,EACrB,aAAa,UAAU;AAAA,EACvB,eAAe,UAAU;AAAA,EACzB,YAAY,UAAU;AAAA,EACtB,WAAW,UAAU;AACvB;AAGA,IAAO,+BAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect, useState } from "react";
|
|
3
4
|
import PropTypes from "prop-types";
|
|
4
5
|
import {
|
|
5
6
|
DSControlledDateTimePicker,
|
|
@@ -33,7 +34,7 @@ const SingleRangeSwitcherContainer = ({ onChange = noop, enableOutsideDays }) =>
|
|
|
33
34
|
onChange({ startDate: startMoment, endDate: endMoment });
|
|
34
35
|
}
|
|
35
36
|
}, [startDate, endDate, lastChangeWasPicker]);
|
|
36
|
-
return /* @__PURE__ */
|
|
37
|
+
return /* @__PURE__ */ jsxs(StyledGridWrapper, {
|
|
37
38
|
"data-testid": "date-single-range__wrapper",
|
|
38
39
|
style: {
|
|
39
40
|
backgroundColor: "white",
|
|
@@ -44,64 +45,75 @@ const SingleRangeSwitcherContainer = ({ onChange = noop, enableOutsideDays }) =>
|
|
|
44
45
|
},
|
|
45
46
|
cols: ["100%"],
|
|
46
47
|
enableOutsideDays,
|
|
47
|
-
onKeyDown: (e) => e.code === "Enter" && setLastChangeWasPicker(true)
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
48
|
+
onKeyDown: (e) => e.code === "Enter" && setLastChangeWasPicker(true),
|
|
49
|
+
children: [
|
|
50
|
+
/* @__PURE__ */ jsxs(Grid, {
|
|
51
|
+
gutter: "xxs",
|
|
52
|
+
alignItems: "center",
|
|
53
|
+
p: "xxs",
|
|
54
|
+
children: [
|
|
55
|
+
/* @__PURE__ */ jsx(DSControlledCheckbox, {
|
|
56
|
+
checked: isDateRange,
|
|
57
|
+
name: "Date range",
|
|
58
|
+
label: "Range",
|
|
59
|
+
id: "date-range-switcher-id-internal",
|
|
60
|
+
onChange: () => {
|
|
61
|
+
setIsDateRange(!isDateRange);
|
|
62
|
+
setStartDate("");
|
|
63
|
+
setEndDate("");
|
|
64
|
+
}
|
|
65
|
+
}),
|
|
66
|
+
/* @__PURE__ */ jsx("div", {
|
|
67
|
+
style: { width: "fit-content" },
|
|
68
|
+
children: isDateRange ? /* @__PURE__ */ jsx(DSControlledDateRangePicker, {
|
|
69
|
+
fromDate: startDate,
|
|
70
|
+
onFromDateChange: (_start) => {
|
|
71
|
+
setStartDate(_start);
|
|
72
|
+
setLastChangeWasPicker(false);
|
|
73
|
+
},
|
|
74
|
+
toDate: endDate,
|
|
75
|
+
onToDateChange: (_end) => {
|
|
76
|
+
setEndDate(_end);
|
|
77
|
+
setLastChangeWasPicker(false);
|
|
78
|
+
},
|
|
79
|
+
type: "date-range-inputs"
|
|
80
|
+
}) : /* @__PURE__ */ jsx(DSControlledDateTimePicker, {
|
|
81
|
+
date: startDate,
|
|
82
|
+
onDateChange: (_date) => {
|
|
83
|
+
setLastChangeWasPicker(false);
|
|
84
|
+
setStartDate(_date);
|
|
85
|
+
setEndDate(_date);
|
|
86
|
+
},
|
|
87
|
+
type: "date-inputs"
|
|
88
|
+
})
|
|
89
|
+
})
|
|
90
|
+
]
|
|
91
|
+
}),
|
|
92
|
+
/* @__PURE__ */ jsx(Grid, {
|
|
93
|
+
children: isDateRange ? /* @__PURE__ */ jsx(DSControlledDateRangePicker, {
|
|
94
|
+
fromDate: startDate,
|
|
95
|
+
onFromDateChange: (_start) => {
|
|
96
|
+
setStartDate(_start);
|
|
97
|
+
setLastChangeWasPicker(true);
|
|
98
|
+
},
|
|
99
|
+
toDate: endDate,
|
|
100
|
+
onToDateChange: (_end) => {
|
|
101
|
+
setEndDate(_end);
|
|
102
|
+
setLastChangeWasPicker(true);
|
|
103
|
+
},
|
|
104
|
+
type: "date-range-picker-controller-only"
|
|
105
|
+
}) : /* @__PURE__ */ jsx(DSControlledDateTimePicker, {
|
|
106
|
+
date: startDate,
|
|
107
|
+
onDateChange: (_date) => {
|
|
108
|
+
setLastChangeWasPicker(true);
|
|
109
|
+
setStartDate(_date);
|
|
110
|
+
setEndDate(_date);
|
|
111
|
+
},
|
|
112
|
+
type: "date-picker-controller-only"
|
|
113
|
+
})
|
|
114
|
+
})
|
|
115
|
+
]
|
|
116
|
+
});
|
|
105
117
|
};
|
|
106
118
|
SingleRangeSwitcherContainer.propTypes = {
|
|
107
119
|
onChange: PropTypes.func,
|
|
@@ -124,33 +136,37 @@ function SingleRangeSwitcherMenu({
|
|
|
124
136
|
enableOutsideDays = true,
|
|
125
137
|
menuProps
|
|
126
138
|
}) {
|
|
127
|
-
return /* @__PURE__ */
|
|
128
|
-
contentComponent: /* @__PURE__ */
|
|
129
|
-
className
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
139
|
+
return /* @__PURE__ */ jsx(DSPopper, {
|
|
140
|
+
contentComponent: /* @__PURE__ */ jsx("div", {
|
|
141
|
+
className,
|
|
142
|
+
children: /* @__PURE__ */ jsx(SingleRangeSwitcherContainer, {
|
|
143
|
+
enableOutsideDays,
|
|
144
|
+
onChange: ({ startDate, endDate }) => {
|
|
145
|
+
startDate.startOf("day");
|
|
146
|
+
endDate.endOf("day");
|
|
147
|
+
onAddFilter(
|
|
148
|
+
{
|
|
149
|
+
group: column.property,
|
|
150
|
+
label: column.label,
|
|
151
|
+
value: dateFormatter({ startDate, endDate }, column.format),
|
|
152
|
+
type: "date",
|
|
153
|
+
filterParams: { start: startDate, end: endDate },
|
|
154
|
+
transformRowValue: (value) => moment(value, column.dateFormat || DEFAULT_DATE_FORMAT),
|
|
155
|
+
operator: "range"
|
|
156
|
+
},
|
|
157
|
+
column
|
|
158
|
+
);
|
|
159
|
+
onOpenMenu(false);
|
|
160
|
+
}
|
|
161
|
+
})
|
|
162
|
+
}),
|
|
147
163
|
isOpen: isMenuOpened,
|
|
148
164
|
onOpen: onOpenMenu,
|
|
149
165
|
placement,
|
|
150
166
|
showArrow: false,
|
|
151
|
-
triggerComponent: /* @__PURE__ */
|
|
167
|
+
triggerComponent: /* @__PURE__ */ jsx(DSButton, {
|
|
152
168
|
buttonType: "text",
|
|
153
|
-
icon: /* @__PURE__ */
|
|
169
|
+
icon: /* @__PURE__ */ jsx(DatePicker2, {}),
|
|
154
170
|
onClick: () => !isMenuOpened ? onOpenMenu(true) : onOpenMenu(false),
|
|
155
171
|
size: "s"
|
|
156
172
|
}),
|
package/dist/esm/plugins/filterable/components/filterable-menus/SingleRangeSwitcherMenu.js.map
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../../src/plugins/filterable/components/filterable-menus/SingleRangeSwitcherMenu.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\nimport React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n DSControlledDateTimePicker,\n DSControlledDateRangePicker,\n DSControlledCheckbox,\n} from '@elliemae/ds-controlled-form';\nimport { DSPopper, PopperPositions as Position } from '@elliemae/ds-popper';\nimport { DatePicker2 } from '@elliemae/ds-icons';\nimport { DSButton } from '@elliemae/ds-button';\nimport { Grid } from '@elliemae/ds-grid';\nimport moment from 'moment';\nimport { styled } from '@elliemae/ds-system';\nimport { DEFAULT_DATE_FORMAT } from './defaultDateFormat';\n\nconst StyledGridWrapper = styled(Grid)`\n .notCurrentMonth {\n opacity: ${(props) => (props.enableOutsideDays ? '1' : '0')};\n pointer-events: ${(props) => (props.enableOutsideDays ? 'auto' : 'none')};\n }\n`;\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function\nconst noop = (...args) => {};\n\nconst SingleRangeSwitcherContainer = ({ onChange = noop, enableOutsideDays }) => {\n const [startDate, setStartDate] = useState('');\n const [endDate, setEndDate] = useState('');\n\n // For some reason it worked like this\n const [lastChangeWasPicker, setLastChangeWasPicker] = useState(false);\n\n const [isDateRange, setIsDateRange] = useState(false);\n\n useEffect(() => {\n const startMoment = moment(startDate);\n const endMoment = moment(endDate);\n if (\n lastChangeWasPicker &&\n startDate &&\n !startDate.includes('_') &&\n endDate &&\n !endDate.includes('_') &&\n endMoment.diff(startMoment) >= 0\n ) {\n onChange({ startDate: startMoment, endDate: endMoment });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [startDate, endDate, lastChangeWasPicker]);\n\n return (\n <StyledGridWrapper\n data-testid=\"date-single-range__wrapper\"\n style={{\n backgroundColor: 'white',\n boxShadow: '0 6px 20px 0 rgb(0 0 0 / 24%)',\n width: '261px',\n display: 'grid',\n justifyContent: 'center',\n }}\n cols={['100%']}\n enableOutsideDays={enableOutsideDays}\n onKeyDown={(e) => e.code === 'Enter' && setLastChangeWasPicker(true)}\n >\n <Grid gutter=\"xxs\" alignItems=\"center\" p=\"xxs\">\n <DSControlledCheckbox\n checked={isDateRange}\n name=\"Date range\"\n label=\"Range\"\n id=\"date-range-switcher-id-internal\"\n onChange={() => {\n setIsDateRange(!isDateRange);\n setStartDate('');\n setEndDate('');\n }}\n />\n <div style={{ width: 'fit-content' }}>\n {isDateRange ? (\n <DSControlledDateRangePicker\n fromDate={startDate}\n onFromDateChange={(_start) => {\n setStartDate(_start);\n setLastChangeWasPicker(false);\n }}\n toDate={endDate}\n onToDateChange={(_end) => {\n setEndDate(_end);\n setLastChangeWasPicker(false);\n }}\n type=\"date-range-inputs\"\n />\n ) : (\n <DSControlledDateTimePicker\n date={startDate}\n onDateChange={(_date) => {\n setLastChangeWasPicker(false);\n setStartDate(_date);\n setEndDate(_date);\n }}\n type=\"date-inputs\"\n />\n )}\n </div>\n </Grid>\n <Grid>\n {isDateRange ? (\n <DSControlledDateRangePicker\n fromDate={startDate}\n onFromDateChange={(_start) => {\n setStartDate(_start);\n setLastChangeWasPicker(true);\n }}\n toDate={endDate}\n onToDateChange={(_end) => {\n setEndDate(_end);\n setLastChangeWasPicker(true);\n }}\n type=\"date-range-picker-controller-only\"\n />\n ) : (\n <DSControlledDateTimePicker\n date={startDate}\n onDateChange={(_date) => {\n setLastChangeWasPicker(true);\n setStartDate(_date);\n setEndDate(_date);\n }}\n type=\"date-picker-controller-only\"\n />\n )}\n </Grid>\n </StyledGridWrapper>\n );\n};\n\nSingleRangeSwitcherContainer.propTypes = {\n onChange: PropTypes.func,\n enableOutsideDays: PropTypes.bool,\n};\n\nconst formatRangeDate = ({ startDate, endDate }, format = DEFAULT_DATE_FORMAT) => {\n const sameDay = startDate.isSame(endDate, 'day');\n if (sameDay) return `${endDate.format(format)}`;\n return `${startDate.format(format)} - ${endDate.format(format)}`;\n};\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction SingleRangeSwitcherMenu({\n column,\n className,\n isMenuOpened = false,\n onOpenMenu = noop,\n placement = Position.BOTTOM_END,\n onAddFilter = noop,\n dateFormatter = formatRangeDate,\n enableOutsideDays = true,\n menuProps,\n}): JSX.Element {\n return (\n <DSPopper\n contentComponent={\n <div className={className}>\n <SingleRangeSwitcherContainer\n enableOutsideDays={enableOutsideDays}\n onChange={({ startDate, endDate }) => {\n startDate.startOf('day');\n endDate.endOf('day');\n onAddFilter(\n {\n group: column.property,\n label: column.label,\n value: dateFormatter({ startDate, endDate }, column.format),\n type: 'date', // todo: create constants for filter types\n filterParams: { start: startDate, end: endDate },\n transformRowValue: (value) => moment(value, column.dateFormat || DEFAULT_DATE_FORMAT),\n operator: 'range',\n },\n column,\n );\n onOpenMenu(false);\n }}\n />\n </div>\n }\n isOpen={isMenuOpened}\n onOpen={onOpenMenu}\n placement={placement}\n showArrow={false}\n triggerComponent={\n <DSButton\n buttonType=\"text\"\n icon={<DatePicker2 />}\n onClick={() => (!isMenuOpened ? onOpenMenu(true) : onOpenMenu(false))}\n size=\"s\"\n />\n }\n zIndex={menuProps.zIndex}\n />\n );\n}\n\nSingleRangeSwitcherMenu.propTypes = {\n column: PropTypes.any,\n className: PropTypes.string,\n isMenuOpened: PropTypes.bool,\n onOpenMenu: PropTypes.func,\n placement: PropTypes.string,\n onAddFilter: PropTypes.func,\n dateFormatter: PropTypes.any,\n enableOutsideDays: PropTypes.bool,\n menuProps: PropTypes.any,\n};\n\nexport { SingleRangeSwitcherMenu };\nexport default SingleRangeSwitcherMenu;\n"],
|
|
5
|
-
"mappings": "AAAA;
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
3
|
import React2, { useState } from "react";
|
|
3
4
|
import PropTypes from "prop-types";
|
|
4
5
|
import { compact } from "lodash";
|
|
@@ -23,11 +24,10 @@ function TextFilterMenu({
|
|
|
23
24
|
isMulti = false
|
|
24
25
|
}) {
|
|
25
26
|
const { options, ...otherMenuProps } = menuProps;
|
|
26
|
-
const generateOption = (option, idx) => /* @__PURE__ */
|
|
27
|
-
key: idx,
|
|
27
|
+
const generateOption = (option, idx) => /* @__PURE__ */ jsx(Menu.ItemCheckbox, {
|
|
28
28
|
label: option.label,
|
|
29
29
|
name: option.id
|
|
30
|
-
});
|
|
30
|
+
}, idx);
|
|
31
31
|
const renderOptions = (arr) => arr.map(generateOption);
|
|
32
32
|
const filtersForColumn = filters.filter((f) => f.group === column.property);
|
|
33
33
|
const initialSelectedOptions = filtersForColumn.map((f) => f.value);
|
|
@@ -54,33 +54,38 @@ function TextFilterMenu({
|
|
|
54
54
|
});
|
|
55
55
|
selected.forEach((item) => {
|
|
56
56
|
if (!initialSelectedOptions.includes(item)) {
|
|
57
|
-
onAddFilter(
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
57
|
+
onAddFilter(
|
|
58
|
+
{
|
|
59
|
+
group: filterGroup,
|
|
60
|
+
label: column.label,
|
|
61
|
+
value: item,
|
|
62
|
+
operator: column?.filter?.operator || "contains",
|
|
63
|
+
transformRowValue: column.valueTransformation
|
|
64
|
+
},
|
|
65
|
+
column
|
|
66
|
+
);
|
|
64
67
|
}
|
|
65
68
|
});
|
|
66
69
|
onClose();
|
|
67
70
|
};
|
|
68
|
-
return /* @__PURE__ */
|
|
71
|
+
return /* @__PURE__ */ jsx(DSDropdownMenu, {
|
|
69
72
|
closeMenuOnItemSelection: true,
|
|
70
73
|
contentStyle: menuStyle,
|
|
71
|
-
customMenu: isMulti ? /* @__PURE__ */
|
|
74
|
+
customMenu: isMulti ? /* @__PURE__ */ jsx(Menu, {
|
|
72
75
|
containerProps: { id: "text-filter-menu-multiple" },
|
|
73
76
|
className: "dg-multiple-filter",
|
|
74
|
-
visible: true
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
77
|
+
visible: true,
|
|
78
|
+
children: /* @__PURE__ */ jsx(Menu.SelectionGroup, {
|
|
79
|
+
active: selected,
|
|
80
|
+
onSelect: (newValues) => {
|
|
81
|
+
setSelected(newValues);
|
|
82
|
+
},
|
|
83
|
+
focusOnOpen: true,
|
|
84
|
+
multi: true,
|
|
85
|
+
searchable: true,
|
|
86
|
+
children: renderOptions(options)
|
|
87
|
+
})
|
|
88
|
+
}) : /* @__PURE__ */ jsx(MenuCombobox, {
|
|
84
89
|
...otherMenuProps,
|
|
85
90
|
className,
|
|
86
91
|
dropdownFilterOptions: {
|
|
@@ -91,13 +96,16 @@ function TextFilterMenu({
|
|
|
91
96
|
minWidth: column.filterMenuMinWidth,
|
|
92
97
|
onSelectMenuItem: (selectedValue) => {
|
|
93
98
|
if (selectedValue) {
|
|
94
|
-
onAddFilter(
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
99
|
+
onAddFilter(
|
|
100
|
+
{
|
|
101
|
+
group: column.searchBy || column.property,
|
|
102
|
+
label: column.label,
|
|
103
|
+
value: selectedValue,
|
|
104
|
+
operator: column?.filter?.operator || "contains",
|
|
105
|
+
transformRowValue: column.valueTransformation
|
|
106
|
+
},
|
|
107
|
+
column
|
|
108
|
+
);
|
|
101
109
|
onOpenMenu(false);
|
|
102
110
|
}
|
|
103
111
|
}
|
|
@@ -110,9 +118,9 @@ function TextFilterMenu({
|
|
|
110
118
|
onClose: isMulti ? onCloseMulti : onClose,
|
|
111
119
|
options: compact(options),
|
|
112
120
|
placement,
|
|
113
|
-
triggerComponent: /* @__PURE__ */
|
|
121
|
+
triggerComponent: /* @__PURE__ */ jsx(DSButton, {
|
|
114
122
|
buttonType: "text",
|
|
115
|
-
icon: /* @__PURE__ */
|
|
123
|
+
icon: /* @__PURE__ */ jsx(SearchSmall, {}),
|
|
116
124
|
onClick: () => isMenuOpened ? onOpenMenu(false) : onOpenMenu(true),
|
|
117
125
|
size: "s"
|
|
118
126
|
})
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../../src/plugins/filterable/components/filterable-menus/TextFilterMenu.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { compact } from 'lodash';\nimport { DSDropdownMenu } from '@elliemae/ds-dropdownmenu';\nimport { DSButton } from '@elliemae/ds-button';\nimport { PopperPositions as Position } from '@elliemae/ds-popper';\nimport { Menu, MenuCombobox } from '@elliemae/ds-menu';\nimport { SearchSmall } from '@elliemae/ds-icons';\n\nfunction TextFilterMenu({\n column,\n menuStyle = {},\n className,\n filters = [],\n isMenuOpened = false,\n onOpenMenu = () => null,\n onClose = () => null,\n placement = Position.BOTTOM_END,\n menuProps = {},\n onAddFilter = () => null,\n onRemoveFilter = () => null,\n maxOptions = 10,\n isMulti = false,\n}) {\n const { options, ...otherMenuProps } = menuProps;\n\n const generateOption = (option, idx) => <Menu.ItemCheckbox key={idx} label={option.label} name={option.id} />;\n\n const renderOptions = (arr) => arr.map(generateOption);\n\n const filtersForColumn = filters.filter((f) => f.group === column.property);\n\n const initialSelectedOptions = filtersForColumn.map((f) => f.value);\n\n const [selected, setSelected] = useState(initialSelectedOptions);\n\n React.useEffect(() => {\n const filtersForColumn2 = filters.filter((f) => f.group === column.property);\n setSelected(filtersForColumn2.map((f) => f.value));\n }, [filters]);\n\n const filterGroup = column.searchBy || column.property;\n\n const onCloseMulti = () => {\n let nextFilters = [...filters];\n const shouldRemove = [];\n // if selected doesn't includes item, then we have to remove the filter\n // but given that we are maintaining state here and updating the grid state\n // is not implemented on useFilterableState, we have to do this in 2 traverses\n // as doing it in one gives trouble when removing and adding at the same time.\n initialSelectedOptions.forEach((item) => {\n if (!selected.includes(item)) {\n nextFilters = nextFilters.filter((filter) => !(filter.group === filterGroup && filter.value === item));\n shouldRemove.push({ group: filterGroup, pill: { value: item } });\n }\n });\n shouldRemove.forEach((removedFilter) => {\n onRemoveFilter({\n ...removedFilter,\n nextFilters,\n });\n });\n selected.forEach((item) => {\n // if initialSelectedOptions includes item, then we do nothing\n if (!initialSelectedOptions.includes(item)) {\n onAddFilter(\n {\n group: filterGroup,\n label: column.label,\n value: item,\n operator: column?.filter?.operator || 'contains',\n transformRowValue: column.valueTransformation,\n },\n column,\n );\n }\n });\n onClose();\n };\n\n return (\n <DSDropdownMenu\n closeMenuOnItemSelection\n contentStyle={menuStyle}\n customMenu={\n isMulti ? (\n <Menu containerProps={{ id: 'text-filter-menu-multiple' }} className=\"dg-multiple-filter\" visible>\n <Menu.SelectionGroup\n active={selected}\n onSelect={(newValues) => {\n setSelected(newValues);\n }}\n focusOnOpen\n multi\n searchable\n >\n {renderOptions(options)}\n </Menu.SelectionGroup>\n </Menu>\n ) : (\n <MenuCombobox\n {...otherMenuProps}\n className={className}\n dropdownFilterOptions={{\n ...column.dropdownFilterOptions,\n maxOptions,\n }}\n maxWidth={column.filterMenuMaxWidth}\n minWidth={column.filterMenuMinWidth}\n onSelectMenuItem={(selectedValue) => {\n if (selectedValue) {\n onAddFilter(\n {\n group: column.searchBy || column.property,\n label: column.label,\n value: selectedValue,\n operator: column?.filter?.operator || 'contains',\n transformRowValue: column.valueTransformation,\n },\n column,\n );\n onOpenMenu(false);\n }\n }}\n />\n )\n }\n isOpen={isMenuOpened}\n maxWidth={column.filterMenuMaxWidth}\n menuProps={menuProps}\n minWidth={column.filterMenuMinWidth}\n onOpenMenu={onOpenMenu}\n onClose={isMulti ? onCloseMulti : onClose}\n options={compact(options)}\n placement={placement}\n triggerComponent={\n <DSButton\n buttonType=\"text\"\n icon={<SearchSmall />}\n onClick={() => (isMenuOpened ? onOpenMenu(false) : onOpenMenu(true))}\n size=\"s\"\n />\n }\n />\n );\n}\n\nTextFilterMenu.propTypes = {\n column: PropTypes.any,\n menuStyle: PropTypes.shape({}),\n className: PropTypes.string,\n filters: PropTypes.arrayOf(PropTypes.shape({})),\n isMenuOpened: PropTypes.bool,\n onOpenMenu: PropTypes.func,\n onClose: PropTypes.func,\n placement: PropTypes.string,\n menuProps: PropTypes.shape({}),\n onAddFilter: PropTypes.func,\n onRemoveFilter: PropTypes.func,\n maxOptions: PropTypes.number,\n isMulti: PropTypes.bool,\n};\n\nexport { TextFilterMenu };\nexport default TextFilterMenu;\n"],
|
|
5
|
-
"mappings": "AAAA;
|
|
6
|
-
"names": []
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React"]
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../../src/plugins/filterable/components/filterable-menus/defaultDateFormat.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export const DEFAULT_DATE_FORMAT = 'MM/DD/YYYY';\n"],
|
|
5
|
-
"mappings": "AAAA;
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;ACAhB,MAAM,sBAAsB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../../src/plugins/filterable/components/filterable-menus/getFilterMenuByType.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { DateRangeFilterMenu } from './DateRangeFilterMenu';\nimport { SingleDateFilterMenu } from './SingleDateFilterMenu'; // implement\nimport { SingleRangeSwitcherMenu } from './SingleRangeSwitcherMenu'; // implement\nimport { TextFilterMenu } from './TextFilterMenu';\n\nconst ComponentTypes = {\n 'date-range': DateRangeFilterMenu,\n 'single-date': SingleDateFilterMenu,\n 'date-switcher': SingleRangeSwitcherMenu,\n string: TextFilterMenu,\n};\n\nexport const getFilterMenuByType = (type) => {\n return ComponentTypes[type] || ComponentTypes.string;\n};\n\nexport default getFilterMenuByType;\n"],
|
|
5
|
-
"mappings": "AAAA;
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,2BAA2B;AACpC,SAAS,4BAA4B;AACrC,SAAS,+BAA+B;AACxC,SAAS,sBAAsB;AAE/B,MAAM,iBAAiB;AAAA,EACrB,cAAc;AAAA,EACd,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,QAAQ;AACV;AAEO,MAAM,sBAAsB,CAAC,SAAS;AAC3C,SAAO,eAAe,SAAS,eAAe;AAChD;AAEA,IAAO,8BAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
import { FilterableHeader } from "./components/FilterableHeader";
|
|
4
4
|
import { getFilterLabels, getFilterLabelsGroup } from "./helper";
|
|
5
5
|
const FilterableFormatter = ({
|
|
@@ -22,7 +22,7 @@ const FilterableFormatter = ({
|
|
|
22
22
|
}
|
|
23
23
|
const filteredLabels = groupedRows && !groupedBy ? getFilterLabelsGroup(column, rows, query) : getFilterLabels(column, rowsToUse.rows || rowsToUse, query);
|
|
24
24
|
const columnData = column.filterOptions || filteredLabels;
|
|
25
|
-
return /* @__PURE__ */
|
|
25
|
+
return /* @__PURE__ */ jsx(FilterableHeader, {
|
|
26
26
|
column,
|
|
27
27
|
columnData,
|
|
28
28
|
filters,
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/plugins/filterable/filterableFormatter.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable react/display-name */\nimport React from 'react';\nimport { FilterableHeader } from './components/FilterableHeader';\nimport { getFilterLabels, getFilterLabelsGroup } from './helper';\n\nconst FilterableFormatter = ({\n grid,\n onAddFilter,\n onRemoveFilter,\n query,\n filterMenuRef,\n}) => {\n return (value, { column }) => {\n const {\n rows,\n composedRows,\n props: { groupedRows, groupedBy, onFilterMenuClose, onFilterMenuOpen },\n state: { filters },\n } = grid.getInstance();\n\n let rowsToUse = composedRows;\n if (column.filter && column.filter.isMulti) {\n rowsToUse = rows;\n }\n\n const filteredLabels =\n groupedRows && !groupedBy\n ? getFilterLabelsGroup(column, rows, query)\n : getFilterLabels(column, rowsToUse.rows || rowsToUse, query);\n\n const columnData = column.filterOptions || filteredLabels;\n return (\n <FilterableHeader\n column={column}\n columnData={columnData}\n filters={filters}\n filterMenuRef={filterMenuRef}\n onAddFilter={onAddFilter}\n onFilterMenuClose={onFilterMenuClose}\n onFilterMenuOpen={onFilterMenuOpen}\n onRemoveFilter={onRemoveFilter}\n isMulti={column.filter && column.filter.isMulti}\n value={value}\n />\n );\n };\n}\n\nexport { FilterableFormatter };\nexport default FilterableFormatter;\n"],
|
|
5
|
-
"mappings": "AAAA;
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;ACAvB;AAEA,SAAS,wBAAwB;AACjC,SAAS,iBAAiB,4BAA4B;AAEtD,MAAM,sBAAsB,CAAC;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,SAAO,CAAC,OAAO,EAAE,OAAO,MAAM;AAC5B,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA,OAAO,EAAE,aAAa,WAAW,mBAAmB,iBAAiB;AAAA,MACrE,OAAO,EAAE,QAAQ;AAAA,IACnB,IAAI,KAAK,YAAY;AAErB,QAAI,YAAY;AAChB,QAAI,OAAO,UAAU,OAAO,OAAO,SAAS;AAC1C,kBAAY;AAAA,IACd;AAEA,UAAM,iBACJ,eAAe,CAAC,YACZ,qBAAqB,QAAQ,MAAM,KAAK,IACxC,gBAAgB,QAAQ,UAAU,QAAQ,WAAW,KAAK;AAEhE,UAAM,aAAa,OAAO,iBAAiB;AAC3C,WACE,oBAAC;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAAS,OAAO,UAAU,OAAO,OAAO;AAAA,MACxC;AAAA,KACF;AAAA,EAEJ;AACF;AAGA,IAAO,8BAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -12,7 +12,12 @@ const executeFilterStrategy = (rule, row) => {
|
|
|
12
12
|
const filterStrategy = getRuleStrategyOperator(rule);
|
|
13
13
|
return filterStrategy(transformedRowValue, transformedValue);
|
|
14
14
|
};
|
|
15
|
-
const filterByRules = (rules, condition = "AND") => (row) => condition === "AND" ? rules.reduce(
|
|
15
|
+
const filterByRules = (rules, condition = "AND") => (row) => condition === "AND" ? rules.reduce(
|
|
16
|
+
(isFiltered, rule) => rule.rules && rule.rules.length ? isFiltered && filterByRules(rule.rules, rule.condition)(row) : isFiltered && executeFilterStrategy(rule, row),
|
|
17
|
+
true
|
|
18
|
+
) : rules.some(
|
|
19
|
+
(rule) => rule.rules && rule.rules.length ? filterByRules(rule.rules, rule.condition)(row) : executeFilterStrategy(rule, row)
|
|
20
|
+
);
|
|
16
21
|
function filterRowsByQueryGroup(rows, query, composedRows) {
|
|
17
22
|
if (query && query.rules && query.rules.length === 0)
|
|
18
23
|
return rows;
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../src/plugins/filterable/filtering-helper/filterRowsByQuery.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { isFunction } from '@elliemae/ds-utilities';\nimport { strategiesOperators } from './strategiesOperators';\n\nconst getRuleStrategyOperator = (rule) => rule.strategy || strategiesOperators(rule.operator);\n\nconst executeFilterStrategy = (rule, row) => {\n const { value, field, transform, transformRowValue } = rule;\n if (field === 'all') return Object.values(row).some((colValue) => strategiesOperators('contains')(colValue, value));\n const rowValue = row[field];\n const transformedValue = isFunction(transform) ? transform(value) : value;\n const transformedRowValue = isFunction(transformRowValue) ? transformRowValue(rowValue) : rowValue;\n\n const filterStrategy = getRuleStrategyOperator(rule);\n return filterStrategy(transformedRowValue, transformedValue);\n};\n\nconst filterByRules =\n (rules, condition = 'AND') =>\n (row) =>\n condition === 'AND'\n ? rules.reduce(\n (isFiltered, rule) =>\n rule.rules && rule.rules.length\n ? isFiltered && filterByRules(rule.rules, rule.condition)(row)\n : isFiltered && executeFilterStrategy(rule, row),\n true,\n )\n : rules.some((rule) =>\n rule.rules && rule.rules.length\n ? filterByRules(rule.rules, rule.condition)(row)\n : executeFilterStrategy(rule, row),\n );\n\nexport function filterRowsByQueryGroup(rows, query, composedRows) {\n if (query && query.rules && query.rules.length === 0) return rows;\n const newRows = [];\n const parentMap = {};\n composedRows.forEach((parentRow) => {\n if (parentRow.isGroup) {\n newRows.push({\n ...parentRow,\n _filtered: true,\n });\n } else if (!parentRow.isGroup && filterByRules(query.rules, query.condition)(parentRow.data)) {\n newRows.push({\n ...parentRow,\n _filtered: true,\n });\n parentMap[parentRow.parentNode.id] = true;\n }\n });\n\n return newRows.filter((r) => {\n if (r.isGroup && !parentMap[r.id]) return false;\n return true;\n });\n}\n\nexport const filterRowsByQuery = (rows, query) => {\n return rows.filter(filterByRules(query.rules, query.condition));\n};\n\nexport default filterRowsByQuery;\n"],
|
|
5
|
-
"mappings": "AAAA;
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,kBAAkB;AAC3B,SAAS,2BAA2B;AAEpC,MAAM,0BAA0B,CAAC,SAAS,KAAK,YAAY,oBAAoB,KAAK,QAAQ;AAE5F,MAAM,wBAAwB,CAAC,MAAM,QAAQ;AAC3C,QAAM,EAAE,OAAO,OAAO,WAAW,kBAAkB,IAAI;AACvD,MAAI,UAAU;AAAO,WAAO,OAAO,OAAO,GAAG,EAAE,KAAK,CAAC,aAAa,oBAAoB,UAAU,EAAE,UAAU,KAAK,CAAC;AAClH,QAAM,WAAW,IAAI;AACrB,QAAM,mBAAmB,WAAW,SAAS,IAAI,UAAU,KAAK,IAAI;AACpE,QAAM,sBAAsB,WAAW,iBAAiB,IAAI,kBAAkB,QAAQ,IAAI;AAE1F,QAAM,iBAAiB,wBAAwB,IAAI;AACnD,SAAO,eAAe,qBAAqB,gBAAgB;AAC7D;AAEA,MAAM,gBACJ,CAAC,OAAO,YAAY,UACpB,CAAC,QACC,cAAc,QACV,MAAM;AAAA,EACJ,CAAC,YAAY,SACX,KAAK,SAAS,KAAK,MAAM,SACrB,cAAc,cAAc,KAAK,OAAO,KAAK,SAAS,EAAE,GAAG,IAC3D,cAAc,sBAAsB,MAAM,GAAG;AAAA,EACnD;AACF,IACA,MAAM;AAAA,EAAK,CAAC,SACV,KAAK,SAAS,KAAK,MAAM,SACrB,cAAc,KAAK,OAAO,KAAK,SAAS,EAAE,GAAG,IAC7C,sBAAsB,MAAM,GAAG;AACrC;AAED,SAAS,uBAAuB,MAAM,OAAO,cAAc;AAChE,MAAI,SAAS,MAAM,SAAS,MAAM,MAAM,WAAW;AAAG,WAAO;AAC7D,QAAM,UAAU,CAAC;AACjB,QAAM,YAAY,CAAC;AACnB,eAAa,QAAQ,CAAC,cAAc;AAClC,QAAI,UAAU,SAAS;AACrB,cAAQ,KAAK;AAAA,QACX,GAAG;AAAA,QACH,WAAW;AAAA,MACb,CAAC;AAAA,IACH,WAAW,CAAC,UAAU,WAAW,cAAc,MAAM,OAAO,MAAM,SAAS,EAAE,UAAU,IAAI,GAAG;AAC5F,cAAQ,KAAK;AAAA,QACX,GAAG;AAAA,QACH,WAAW;AAAA,MACb,CAAC;AACD,gBAAU,UAAU,WAAW,MAAM;AAAA,IACvC;AAAA,EACF,CAAC;AAED,SAAO,QAAQ,OAAO,CAAC,MAAM;AAC3B,QAAI,EAAE,WAAW,CAAC,UAAU,EAAE;AAAK,aAAO;AAC1C,WAAO;AAAA,EACT,CAAC;AACH;AAEO,MAAM,oBAAoB,CAAC,MAAM,UAAU;AAChD,SAAO,KAAK,OAAO,cAAc,MAAM,OAAO,MAAM,SAAS,CAAC;AAChE;AAEA,IAAO,4BAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../src/plugins/filterable/filtering-helper/strategiesOperators.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import compare from 'comparejs';\n\nexport const strategiesOperators = op =>\n ({\n range: (rowValue, { start, end }) => start <= rowValue && end >= rowValue,\n equal: (value1, value2) => compare.id(value1, value2),\n greaterThan: compare.gt,\n lessThan: compare.lt,\n contains: (rowValue, value) =>\n String(rowValue)\n .toLowerCase()\n .indexOf(String(value).toLowerCase()) !== -1,\n }[op] || compare.id);\n\nexport default strategiesOperators;\n"],
|
|
5
|
-
"mappings": "AAAA;
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;ACAvB,OAAO,aAAa;AAEb,MAAM,sBAAsB,SAChC;AAAA,EACC,OAAO,CAAC,UAAU,EAAE,OAAO,IAAI,MAAM,SAAS,YAAY,OAAO;AAAA,EACjE,OAAO,CAAC,QAAQ,WAAW,QAAQ,GAAG,QAAQ,MAAM;AAAA,EACpD,aAAa,QAAQ;AAAA,EACrB,UAAU,QAAQ;AAAA,EAClB,UAAU,CAAC,UAAU,UACnB,OAAO,QAAQ,EACZ,YAAY,EACZ,QAAQ,OAAO,KAAK,EAAE,YAAY,CAAC,MAAM;AAChD,GAAE,OAAO,QAAQ;AAEnB,IAAO,8BAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -61,18 +61,21 @@ function parseFilterToRule(filter) {
|
|
|
61
61
|
}
|
|
62
62
|
function parseFiltersToQuery(filters) {
|
|
63
63
|
const groupedFilters = groupBy(groupFilters(filters), (filter) => filter.group);
|
|
64
|
-
return Object.keys(groupedFilters).reduce(
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
64
|
+
return Object.keys(groupedFilters).reduce(
|
|
65
|
+
(queryResult, field) => {
|
|
66
|
+
const filter = groupedFilters[field];
|
|
67
|
+
if (Array.isArray(filter) && filter.length > 1) {
|
|
68
|
+
queryResult.rules.push({
|
|
69
|
+
condition: "OR",
|
|
70
|
+
rules: filter.map(parseFilterToRule)
|
|
71
|
+
});
|
|
72
|
+
} else {
|
|
73
|
+
queryResult.rules.push(parseFilterToRule(filter[0]));
|
|
74
|
+
}
|
|
75
|
+
return queryResult;
|
|
76
|
+
},
|
|
77
|
+
{ condition: "AND", rules: [] }
|
|
78
|
+
);
|
|
76
79
|
}
|
|
77
80
|
export {
|
|
78
81
|
buildFilterArray,
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/plugins/filterable/helper.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import {\n isFunction,\n uniqBy,\n get,\n groupBy,\n property,\n} from '@elliemae/ds-utilities';\n\nexport const getFilterLabel = (column, value) => (column.filterLabels ? column.filterLabels[value] || value : value);\n\nexport const getFilterLabels = (column, rows) =>\n uniqBy(rows, property(column.searchBy || column.property))\n .map((row) => {\n const value = get(row, column.searchBy || column.property);\n if (value === undefined) return {};\n const rowColumnValue = String(get(row, column.searchBy || column.property));\n if (isFunction(column.valueTransformation)) {\n const nextValue = column.valueTransformation(rowColumnValue);\n return { id: nextValue, label: nextValue };\n }\n const label = getFilterLabel(column, rowColumnValue);\n return { id: rowColumnValue || label, label };\n })\n .filter((row) => row.id)\n .filter((row) => {\n if (row.id.startsWith) return !row.id.startsWith('grouped-by');\n return true;\n });\n\nexport const getFilterLabelsGroup = (column, rows) => {\n let flat = [];\n rows.forEach((r) => {\n if (r.children) {\n flat = [...flat, ...r.children];\n }\n });\n return getFilterLabels(column, flat);\n};\n\nexport function getFilterValue(filter, column) {\n const { value } = filter;\n\n if (!column) return value;\n\n const { filterOptions, filterLabels } = column;\n\n if (filterOptions) {\n const foundOption = column.filterOptions.filter((option) => option.id === value)[0];\n if (foundOption) return foundOption.label;\n return value;\n }\n if (filterLabels) {\n return filterLabels[value];\n }\n\n return value;\n}\n\nexport function buildFilterArray(newFilter, filters) {\n // if (newFilter.type && newFilter.type === 'date') return [...filters.slice(1), newFilter]\n return uniqBy([...filters, newFilter], (v) => [v.group, v.value].join());\n}\n\nexport const groupFilters = (filters) => filters.filter((filter) => !filter.fixed);\n\nfunction parseFilterToRule(filter) {\n return {\n ...filter,\n value: filter.filterParams || filter.value,\n field: filter.group,\n };\n}\n\nexport function parseFiltersToQuery(filters) {\n const groupedFilters = groupBy(groupFilters(filters), (filter) => filter.group);\n return Object.keys(groupedFilters).reduce(\n (queryResult, field) => {\n const filter = groupedFilters[field];\n if (Array.isArray(filter) && filter.length > 1) {\n // create query group with 'OR' condition\n queryResult.rules.push({\n condition: 'OR',\n rules: filter.map(parseFilterToRule),\n });\n } else {\n queryResult.rules.push(parseFilterToRule(filter[0]));\n }\n return queryResult;\n },\n { condition: 'AND', rules: [] },\n );\n}\n"],
|
|
5
|
-
"mappings": "AAAA;
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;ACAvB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEA,MAAM,iBAAiB,CAAC,QAAQ,UAAW,OAAO,eAAe,OAAO,aAAa,UAAU,QAAQ;AAEvG,MAAM,kBAAkB,CAAC,QAAQ,SACtC,OAAO,MAAM,SAAS,OAAO,YAAY,OAAO,QAAQ,CAAC,EACtD,IAAI,CAAC,QAAQ;AACZ,QAAM,QAAQ,IAAI,KAAK,OAAO,YAAY,OAAO,QAAQ;AACzD,MAAI,UAAU;AAAW,WAAO,CAAC;AACjC,QAAM,iBAAiB,OAAO,IAAI,KAAK,OAAO,YAAY,OAAO,QAAQ,CAAC;AAC1E,MAAI,WAAW,OAAO,mBAAmB,GAAG;AAC1C,UAAM,YAAY,OAAO,oBAAoB,cAAc;AAC3D,WAAO,EAAE,IAAI,WAAW,OAAO,UAAU;AAAA,EAC3C;AACA,QAAM,QAAQ,eAAe,QAAQ,cAAc;AACnD,SAAO,EAAE,IAAI,kBAAkB,OAAO,MAAM;AAC9C,CAAC,EACA,OAAO,CAAC,QAAQ,IAAI,EAAE,EACtB,OAAO,CAAC,QAAQ;AACf,MAAI,IAAI,GAAG;AAAY,WAAO,CAAC,IAAI,GAAG,WAAW,YAAY;AAC7D,SAAO;AACT,CAAC;AAEE,MAAM,uBAAuB,CAAC,QAAQ,SAAS;AACpD,MAAI,OAAO,CAAC;AACZ,OAAK,QAAQ,CAAC,MAAM;AAClB,QAAI,EAAE,UAAU;AACd,aAAO,CAAC,GAAG,MAAM,GAAG,EAAE,QAAQ;AAAA,IAChC;AAAA,EACF,CAAC;AACD,SAAO,gBAAgB,QAAQ,IAAI;AACrC;AAEO,SAAS,eAAe,QAAQ,QAAQ;AAC7C,QAAM,EAAE,MAAM,IAAI;AAElB,MAAI,CAAC;AAAQ,WAAO;AAEpB,QAAM,EAAE,eAAe,aAAa,IAAI;AAExC,MAAI,eAAe;AACjB,UAAM,cAAc,OAAO,cAAc,OAAO,CAAC,WAAW,OAAO,OAAO,KAAK,EAAE;AACjF,QAAI;AAAa,aAAO,YAAY;AACpC,WAAO;AAAA,EACT;AACA,MAAI,cAAc;AAChB,WAAO,aAAa;AAAA,EACtB;AAEA,SAAO;AACT;AAEO,SAAS,iBAAiB,WAAW,SAAS;AAEnD,SAAO,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC;AACzE;AAEO,MAAM,eAAe,CAAC,YAAY,QAAQ,OAAO,CAAC,WAAW,CAAC,OAAO,KAAK;AAEjF,SAAS,kBAAkB,QAAQ;AACjC,SAAO;AAAA,IACL,GAAG;AAAA,IACH,OAAO,OAAO,gBAAgB,OAAO;AAAA,IACrC,OAAO,OAAO;AAAA,EAChB;AACF;AAEO,SAAS,oBAAoB,SAAS;AAC3C,QAAM,iBAAiB,QAAQ,aAAa,OAAO,GAAG,CAAC,WAAW,OAAO,KAAK;AAC9E,SAAO,OAAO,KAAK,cAAc,EAAE;AAAA,IACjC,CAAC,aAAa,UAAU;AACtB,YAAM,SAAS,eAAe;AAC9B,UAAI,MAAM,QAAQ,MAAM,KAAK,OAAO,SAAS,GAAG;AAE9C,oBAAY,MAAM,KAAK;AAAA,UACrB,WAAW;AAAA,UACX,OAAO,OAAO,IAAI,iBAAiB;AAAA,QACrC,CAAC;AAAA,MACH,OAAO;AACL,oBAAY,MAAM,KAAK,kBAAkB,OAAO,EAAE,CAAC;AAAA,MACrD;AACA,aAAO;AAAA,IACT;AAAA,IACA,EAAE,WAAW,OAAO,OAAO,CAAC,EAAE;AAAA,EAChC;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/plugins/filterable/index.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export { FilterablePlugin } from './FilterablePlugin';\n"],
|
|
5
|
-
"mappings": "AAAA;
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,wBAAwB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -30,7 +30,9 @@ function useFilterableState(grid) {
|
|
|
30
30
|
} = grid.getInstance();
|
|
31
31
|
body.current.scrollTop = 0;
|
|
32
32
|
setFilters(nextFilters);
|
|
33
|
-
grid.observeRows(
|
|
33
|
+
grid.observeRows(
|
|
34
|
+
(rows) => onFiltersChange(nextFilters, queryFromFilters, rows)
|
|
35
|
+
);
|
|
34
36
|
};
|
|
35
37
|
const addFilter = (filter, column) => {
|
|
36
38
|
let hasBeenCalled = false;
|