Skip to content

Commit

Permalink
Merge pull request #642 from revolist/filter-update-2
Browse files Browse the repository at this point in the history
feat: filters improve
  • Loading branch information
revolist authored Nov 28, 2024
2 parents bdc9c0f + 5f17840 commit 10e2104
Show file tree
Hide file tree
Showing 7 changed files with 157 additions and 95 deletions.
12 changes: 6 additions & 6 deletions src/components.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { HTMLStencilElement, JSXBase } from "@stencil/core/internal";
import { AfterEditEvent, AllDimensionType, ApplyFocusEvent, BeforeCellRenderEvent, BeforeEdit, BeforeRangeSaveDataDetails, BeforeRowRenderEvent, BeforeSaveDataDetails, Cell, CellTemplateProp, ChangedRange, ColumnDataSchemaModel, ColumnGrouping, ColumnProp, ColumnRegular, ColumnType, DataFormat, DataType, DimensionCols, DimensionRows, DimensionSettingsState, DimensionType, DimensionTypeCol, DragStartEvent, EditCell, EditorCtr, Editors, ElementScroll, ExtraNodeFuncConfig, FocusAfterRenderEvent, FocusRenderEvent, FocusTemplateFunc, InitialHeaderClick, MultiDimensionType, Nullable, PluginBaseComponent, PositionItem, Providers, RangeArea, RangeClipboardCopyEventProps, RangeClipboardPasteEvent, RowDefinition, RowDragStartDetails, RowHeaders, SaveDataDetails, SelectionStoreState, TempRange, Theme, ViewportData, ViewPortResizeEvent, ViewPortScrollEvent, ViewportState, ViewSettingSizeProp } from "./types/index";
import { GridPlugin } from "./plugins/base.plugin";
import { AutoSizeColumnConfig } from "./plugins/column.auto-size.plugin";
import { ColumnFilterConfig, FilterCaptions, FilterCollection, LogicFunction, MultiFilterItem, ShowData } from "./plugins/filter/filter.types";
import { ColumnFilterConfig, FilterCaptions, FilterCollectionItem, LogicFunction, MultiFilterItem, ShowData } from "./plugins/filter/filter.types";
import { SortingConfig } from "./plugins/sorting/sorting.types";
import { GroupingOptions } from "./plugins/groupingRow/grouping.row.types";
import { VNode } from "@stencil/core";
Expand All @@ -23,7 +23,7 @@ import { EventData } from "./components/overlay/selection.utils";
export { AfterEditEvent, AllDimensionType, ApplyFocusEvent, BeforeCellRenderEvent, BeforeEdit, BeforeRangeSaveDataDetails, BeforeRowRenderEvent, BeforeSaveDataDetails, Cell, CellTemplateProp, ChangedRange, ColumnDataSchemaModel, ColumnGrouping, ColumnProp, ColumnRegular, ColumnType, DataFormat, DataType, DimensionCols, DimensionRows, DimensionSettingsState, DimensionType, DimensionTypeCol, DragStartEvent, EditCell, EditorCtr, Editors, ElementScroll, ExtraNodeFuncConfig, FocusAfterRenderEvent, FocusRenderEvent, FocusTemplateFunc, InitialHeaderClick, MultiDimensionType, Nullable, PluginBaseComponent, PositionItem, Providers, RangeArea, RangeClipboardCopyEventProps, RangeClipboardPasteEvent, RowDefinition, RowDragStartDetails, RowHeaders, SaveDataDetails, SelectionStoreState, TempRange, Theme, ViewportData, ViewPortResizeEvent, ViewPortScrollEvent, ViewportState, ViewSettingSizeProp } from "./types/index";
export { GridPlugin } from "./plugins/base.plugin";
export { AutoSizeColumnConfig } from "./plugins/column.auto-size.plugin";
export { ColumnFilterConfig, FilterCaptions, FilterCollection, LogicFunction, MultiFilterItem, ShowData } from "./plugins/filter/filter.types";
export { ColumnFilterConfig, FilterCaptions, FilterCollectionItem, LogicFunction, MultiFilterItem, ShowData } from "./plugins/filter/filter.types";
export { SortingConfig } from "./plugins/sorting/sorting.types";
export { GroupingOptions } from "./plugins/groupingRow/grouping.row.types";
export { VNode } from "@stencil/core";
Expand Down Expand Up @@ -827,9 +827,9 @@ declare global {
columns: ColumnCollection;
order: Record<ColumnProp, 'asc' | 'desc' | undefined>;
};
"beforefilterapply": { collection: FilterCollection };
"beforefilterapply": { collection: Record<ColumnProp, FilterCollectionItem> };
"beforefiltertrimmed": {
collection: FilterCollection;
collection: Record<ColumnProp, FilterCollectionItem>;
itemsToFilter: Record<number, boolean>;
};
"beforetrimmed": {
Expand Down Expand Up @@ -1442,12 +1442,12 @@ declare namespace LocalJSX {
/**
* Emitted before applying a filter to the data source. Use e.preventDefault() to prevent cell focus change. Modify if you need to change filters.
*/
"onBeforefilterapply"?: (event: RevoGridCustomEvent<{ collection: FilterCollection }>) => void;
"onBeforefilterapply"?: (event: RevoGridCustomEvent<{ collection: Record<ColumnProp, FilterCollectionItem> }>) => void;
/**
* Emitted before applying a filter to the data source. Use e.preventDefault() to prevent the default behavior of trimming values and applying the filter. Modify the `collection` property if you want to change the filters. Modify the `itemsToFilter` property if you want to filter the indexes for trimming.
*/
"onBeforefiltertrimmed"?: (event: RevoGridCustomEvent<{
collection: FilterCollection;
collection: Record<ColumnProp, FilterCollectionItem>;
itemsToFilter: Record<number, boolean>;
}>) => void;
/**
Expand Down
6 changes: 3 additions & 3 deletions src/components/revoGrid/revo-grid.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ import type { Observable } from '../../utils';
import type { GridPlugin } from '../../plugins/base.plugin';
import { ColumnCollection, getColumnByProp, getColumns } from '../../utils/column.utils';
import { WCAGPlugin } from '../../plugins/wcag';
import { ColumnFilterConfig, FilterCollection } from '../../plugins/filter/filter.types';
import { ColumnFilterConfig, FilterCollectionItem } from '../../plugins/filter/filter.types';
import { PluginService } from './plugin.service';
import { SortingConfig } from 'src/plugins/sorting/sorting.types';

Expand Down Expand Up @@ -471,7 +471,7 @@ export class RevoGridComponent {
* Use e.preventDefault() to prevent cell focus change.
* Modify if you need to change filters.
*/
@Event() beforefilterapply: EventEmitter<{ collection: FilterCollection }>;
@Event() beforefilterapply: EventEmitter<{ collection: Record<ColumnProp, FilterCollectionItem> }>;

/**
* Emitted before applying a filter to the data source.
Expand All @@ -480,7 +480,7 @@ export class RevoGridComponent {
* Modify the `itemsToFilter` property if you want to filter the indexes for trimming.
*/
@Event() beforefiltertrimmed: EventEmitter<{
collection: FilterCollection;
collection: Record<ColumnProp, FilterCollectionItem>;
itemsToFilter: Record<number, boolean>;
}>;

Expand Down
2 changes: 2 additions & 0 deletions src/plugins/filter/filter.indexed.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
// filter.indexed.ts

import eq, { notEq } from './conditions/equal';
import gtThan from './conditions/number/greaterThan';
import gtThanEq from './conditions/number/greaterThanOrEqual';
Expand Down
2 changes: 2 additions & 0 deletions src/plugins/filter/filter.panel.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
// filter.panel.tsx

import {
h,
Component,
Expand Down
Loading

0 comments on commit 10e2104

Please sign in to comment.