Skip to content

Commit 10e2104

Browse files
authored
Merge pull request #642 from revolist/filter-update-2
feat: filters improve
2 parents bdc9c0f + 5f17840 commit 10e2104

File tree

7 files changed

+157
-95
lines changed

7 files changed

+157
-95
lines changed

src/components.d.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { HTMLStencilElement, JSXBase } from "@stencil/core/internal";
88
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";
99
import { GridPlugin } from "./plugins/base.plugin";
1010
import { AutoSizeColumnConfig } from "./plugins/column.auto-size.plugin";
11-
import { ColumnFilterConfig, FilterCaptions, FilterCollection, LogicFunction, MultiFilterItem, ShowData } from "./plugins/filter/filter.types";
11+
import { ColumnFilterConfig, FilterCaptions, FilterCollectionItem, LogicFunction, MultiFilterItem, ShowData } from "./plugins/filter/filter.types";
1212
import { SortingConfig } from "./plugins/sorting/sorting.types";
1313
import { GroupingOptions } from "./plugins/groupingRow/grouping.row.types";
1414
import { VNode } from "@stencil/core";
@@ -23,7 +23,7 @@ import { EventData } from "./components/overlay/selection.utils";
2323
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";
2424
export { GridPlugin } from "./plugins/base.plugin";
2525
export { AutoSizeColumnConfig } from "./plugins/column.auto-size.plugin";
26-
export { ColumnFilterConfig, FilterCaptions, FilterCollection, LogicFunction, MultiFilterItem, ShowData } from "./plugins/filter/filter.types";
26+
export { ColumnFilterConfig, FilterCaptions, FilterCollectionItem, LogicFunction, MultiFilterItem, ShowData } from "./plugins/filter/filter.types";
2727
export { SortingConfig } from "./plugins/sorting/sorting.types";
2828
export { GroupingOptions } from "./plugins/groupingRow/grouping.row.types";
2929
export { VNode } from "@stencil/core";
@@ -827,9 +827,9 @@ declare global {
827827
columns: ColumnCollection;
828828
order: Record<ColumnProp, 'asc' | 'desc' | undefined>;
829829
};
830-
"beforefilterapply": { collection: FilterCollection };
830+
"beforefilterapply": { collection: Record<ColumnProp, FilterCollectionItem> };
831831
"beforefiltertrimmed": {
832-
collection: FilterCollection;
832+
collection: Record<ColumnProp, FilterCollectionItem>;
833833
itemsToFilter: Record<number, boolean>;
834834
};
835835
"beforetrimmed": {
@@ -1442,12 +1442,12 @@ declare namespace LocalJSX {
14421442
/**
14431443
* Emitted before applying a filter to the data source. Use e.preventDefault() to prevent cell focus change. Modify if you need to change filters.
14441444
*/
1445-
"onBeforefilterapply"?: (event: RevoGridCustomEvent<{ collection: FilterCollection }>) => void;
1445+
"onBeforefilterapply"?: (event: RevoGridCustomEvent<{ collection: Record<ColumnProp, FilterCollectionItem> }>) => void;
14461446
/**
14471447
* 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.
14481448
*/
14491449
"onBeforefiltertrimmed"?: (event: RevoGridCustomEvent<{
1450-
collection: FilterCollection;
1450+
collection: Record<ColumnProp, FilterCollectionItem>;
14511451
itemsToFilter: Record<number, boolean>;
14521452
}>) => void;
14531453
/**

src/components/revoGrid/revo-grid.tsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ import type { Observable } from '../../utils';
8383
import type { GridPlugin } from '../../plugins/base.plugin';
8484
import { ColumnCollection, getColumnByProp, getColumns } from '../../utils/column.utils';
8585
import { WCAGPlugin } from '../../plugins/wcag';
86-
import { ColumnFilterConfig, FilterCollection } from '../../plugins/filter/filter.types';
86+
import { ColumnFilterConfig, FilterCollectionItem } from '../../plugins/filter/filter.types';
8787
import { PluginService } from './plugin.service';
8888
import { SortingConfig } from 'src/plugins/sorting/sorting.types';
8989

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

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

src/plugins/filter/filter.indexed.ts

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
// filter.indexed.ts
2+
13
import eq, { notEq } from './conditions/equal';
24
import gtThan from './conditions/number/greaterThan';
35
import gtThanEq from './conditions/number/greaterThanOrEqual';

src/plugins/filter/filter.panel.tsx

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
// filter.panel.tsx
2+
13
import {
24
h,
35
Component,

0 commit comments

Comments
 (0)